java超市积分抽奖系统_java__抽奖管理系统(基础版)

这是一个使用Java编写的超市积分抽奖系统,包括用户注册、登录和抽奖功能。用户通过菜单选择注册或登录,登录后可参与抽奖。系统首先判断用户是否已注册,然后根据用户输入的幸运数字与随机生成的数字进行匹配,决定是否中奖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例结果展示:

e053c4bc6116

ScreenClip [2].png

e053c4bc6116

ScreenClip [3].png

思路分析

根据案例得知,

1

我们首先要有一个菜单栏,还有一个while循环(不能让用户输完选项就结束),还有有一个条件用来停止while(这里我们设置的是当输入为“exit”时,满足条件,即退出循环)

2

获取用户输入的值,然后执行相关操作。例如 如果用户输入的1,则我们进入注册的页面。(这里选择用的是switch条件判断)

3

注册

先要有两个变量保存输入的用户名和密码.但是如果这位用户之前注册过,数据会重复,所以我们还要做个判断,判断是否之前注册过.

判断是否注册(regist)

登录

同理,我们也要先判断一下,用户是否之前注册过.

如果注册过,就可以登录,如果没注册,那就去注册

抽奖

判断是否登录,如果用户没有登录,那么先登录

如果用户登录了,那么进行注册

判断登录的方法(islogin)

先随机出4个数,若用户输入的数等于随机出来的数,则中奖了,否则没有.

随机数的方法(rand)

import java.sql.Blob;

import java.util.Arrays;

import java.util.Random;

import java.util.Scanner;

import javax.swing.text.html.HTML.Tag;

//1菜单

public class Menu {

static String userName = "";// 用户名

static String passWord = "";// 密码

static int i = 0;// 登陆次数

static boolean islogin = false;// 登录状态,默认是没有登录的

public static void main(String[] args) {

while (true) {

// \t制表符 \n 换行

System.out.println("********欢迎进入抽奖系统********");

System.out.println("\t1. 注册");

System.out.println("\t2. 登录");

System.out.println("\t3. 参加抽奖");

System.out.println("***********************************");

System.out.println("请选择菜单");

// 用户输入

Scanner sc = new Scanner(System.in);

int num = sc.nextInt();

// 根据用户的输入,进行相关的操作

// 调用函数

doSomeBySelect(num);

System.out.println("是否退出:(exit)");

String str = sc.next();

if ("exit".equals(str)) {

break;

}

}

}

// 2根据用户的输入,执行相应的操作

static void doSomeBySelect(int num) {

if (num > 3 || num < 1) {// 1,2,3

System.out.println("输入错误,请重新执行");

return;

}

switch (num) {

case 1: {

System.out.println("[抽奖系统 > " + "注册]");

// 1.判断是否注册,如果注册过,就不要注册了

boolean regist = isRegist();

if (regist) {

System.out.println("已经注册过了,请执行其他操作");

} else {

// 注册

// 2.用两个变量保存一下用户名和密码

Scanner sc = new Scanner(System.in);

System.out.println("请输入用户名:");

userName = sc.next();

System.out.println("请输入密码:");

passWord = sc.next();

// 3.注册成功,用户名为

System.out.println("注册成功,用户名为" + userName);

}

break;

}

// 登录

case 2: {

System.out.println("[抽奖系统 > " + "登录]");

// 1判断是否注册过,如果注册过,可以登录,否则去注册

if (islogin) {

System.out.println("已登录");

break;

}

boolean regist = isRegist();

if (regist) {// 注册过

login();

}

;

break;

}

case 3: {

System.out.println("[抽奖系统 > " + "抽奖]");

// 判断是否登录状态

// 如果登录状态 抽奖 否则登录

if (islogin == false) {

System.out.println("未登录,请先登录");

return;

}

// 抽奖 1:输入4位幸运数字

System.out.println("请输入您的幸运编号(4位数字)");

Scanner sc = new Scanner(System.in);

int luckyNum = sc.nextInt();

// 获取随机出来的幸运数字

int[] arr = getArr();

// 2:随机一个数组{1234,5455,5464,4785}

// 如果输入的数字 在数组中 中将了 否则谢谢惠顾

for (int i = 0; i < arr.length; i++) {

if (luckyNum == arr[i]) {

System.out.println("恭喜您,中奖了");

return;

}

}

System.out.println("努努力,恭喜下次中奖");

break;

}

default:

System.out.println("请重新选择");

break;

}

}

// 判断是否注册

// true注册过 false 未注册

static boolean isRegist() {

// 字符串写在前面 null是没有equals方法的

if ("".equals(userName) || userName == null || "".equals(passWord)

|| passWord == null) {

return false;

}

return true;

}

// 登陆验证

static boolean login(String name, String password) {

if (Menu.userName.equals(userName) && (Menu.passWord).equals(password)) {

i = 0;// 归0

return true;

}

return false;

}

// 登录

static void login() {

// 执行登录

// 注册

// 2.用两个变量保存一下用户名和密码

Scanner sc = new Scanner(System.in);

System.out.println("请输入用户名:");

String userName = sc.next();

System.out.println("请输入密码:");

String passWord = sc.next();

System.out.println("注册成功,用户名为" + userName);

// 判断用户名和密码是否相等

boolean login = login(userName, passWord);

if (login) {

System.out.println("登陆成功,请执行其他操作");

Menu.islogin = true;// 把当前的状态标记成登陆成功

} else {// 未注册过

System.out.println("请重新登录");

if (i >= 3) {

System.out.println("登录次数过多,程序终止");

return;

}

i++;

login();

}

}

// 随机一个数组

static int[] getArr() {

// 1初始化一个数组

int[] numArr = new int[5];

// 随机 1000-9999数字放到数组中,不能重复

int index = 0;// 记录下标

boolean tag = false;

while (numArr[4] == 0) {

tag = false;

int num = rand(1000, 1010);

for (int i = 0; i < index; i++) {

if (numArr[i] == num) {

tag = true;

break;

}

}

if (tag) {

continue;

}

numArr[index] = num;

index++;

}

return numArr;

}

// 定义一个函数,生成[min,max]的随机数

static int rand(int min, int max) {

if (min < 0 || max == 0) {

return -1;

}

// 生成随机数

Random rand = new Random();

return rand.nextInt(max - min + 1) + min;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值