Java注册登录抽奖系统模块化设计
来源:互联网 发布:高级系统数据库工程师 编辑:程序博客网 时间:2024/05/19 05:34
分析
将整体系统分为以下部分:
测试类
注册类
登录类
抽奖类
保存用户信息的类
思考:
1、将用户信息保存在类中,并且定义为static,方便其他类调用
2、遇到需要的功能,尽量新建方法,在main方法中代码量尽量的少
3、设置变量定义登录与否的状态,在抽奖的时候通过用户名长度判断是否注册,通过记录登录状态的变量判断是否登录
通过卡号与用户信息中数据进行匹配判断卡号是否正确
4、在登录次数、和输错次数判断的时候,利用递归函数,就是使用if else语句,判断语句外定义变量,并且自增或者自减,
当if语句满足或者不满足条件的时候,继续执行函数,知道满足条件跳出判断语句
测试类代码:
public class CJTest {public static void main(String[] args) {//循环的判断条件 是否继续String isGoon = "";do {System.out.println("************幸运52***********");System.out.println("1.注册");System.out.println("2.登录");System.out.println("3.幸运大抽奖");System.out.println("***************************");System.out.println("请选择菜单");Scanner scanner = new Scanner(System.in);String menuNum = scanner.nextLine();//调用menuChoose方法menuChoose(menuNum);System.out.println("是否继续---输入y/n");//判断是否继续输入isGoon = scanner.nextLine();}while(isGoon.equals("y"));//循环结束提示System.out.println("欢迎下次使用");}//选择对应的方法public static void menuChoose(String menuNum) {//根据用户的选择来执行对应的功能switch (menuNum) {case "1":System.out.println("注册");Register.register();break;case "2":System.out.println("登录");//调用登录的方法,保存登录状态User.isLogin = Login.login();//直接调用有返回值的方法,不会报错。case "3":System.out.println("幸运抽奖");LuckDraw.luckDraw();break;default:System.out.println("输入错误,请重新输入");break;}}}
注册类代码:
public class Register {public static void register() {System.out.println("请注册用户的个人信息");Scanner scanner =new Scanner(System.in);//scanner只能关闭一次,关闭后在本程序执行中再创建也不能接收键盘信息了System.out.println("用户名");//接收用户名,放在用户信息中User.name = scanner.next();System.out.println("密码");User.password =scanner.nextInt();System.out.println("卡号");//随机一个1000~2000的数,保存到用户中User.luckNumber = (int)(Math.random()*1001+1000);//显示用户的注册信息System.out.println("显示用户的注册信息");System.out.println("用户名:"+User.name);System.out.println("密码"+User.password);System.out.println("卡号"+User.luckNumber);}}
登录类代码:
public class Login {//控制循环输入密码三次public static int number = 0;public static boolean login() {Scanner scanner = new Scanner(System.in);System.out.println("请输入用户名");String username = scanner.nextLine();System.out.println("请输入密码");int password = scanner.nextInt();//判断用户名、密码是否匹配if(username.equals(User.name)&&password==User.password) {//登录成功System.out.println("登录成功");return true;}else{//登录失败,有三次机会重新登录System.out.println("登录失败");number++;System.out.println("你还有"+(3-number)+"次机会");if(number!=3) {login();}else {//三次机会已经使用 登录失败System.out.println("登录失败");}//写返回值的时候每一个分支都要有返回值return false;}}}
抽奖类代码:
public class LuckDraw {static int a =0;public static void luckDraw() {//是否注册,注册不能抽,判断用户名是否存在//是否登录,没登录不让抽if(User.name.length()==0) {//没注册,下面都不执行System.out.println("没注册");return ;}if(!User.isLogin) {System.out.println("没登录");return;}//卡号是否正确if(!isLuckNumber()) {return;}//抽奖//首先定义一个变量保存中奖的结果Boolean isluck = false ;//随机五个数打印出结果,并判断是否匹配幸运号码//定义一个变量保存累加的字符串String s = "本次幸运数据:";for(int i = 0; i < 5; i++) {int num = (int)(Math.random()*1001+1000);//判断是否中奖if(User.luckNumber==num) {isluck = true;}//拼接要打印的字符串if(i!=4) {s = s + num+","; }else {s = s + num;}}//打印幸运数字System.out.println(s);//判断下,根据isluck打印结束语if(isluck) {System.out.println("恭喜你中奖了");}else {System.out.println("您没有中奖");}}public static boolean isLuckNumber() {System.out.println("请输入卡号");Scanner scanner = new Scanner(System.in);int luckNumber = scanner.nextInt();//判断用户输入的卡号是不是这个用户之前随机出来的那个数if(User.luckNumber==luckNumber) {//卡号相同 抽奖System.out.println("抽奖马上进行");return true;}else {//卡号不同 三次机会System.out.println("卡号不正确,请继续输入");a++;if(a!=3) {luckDraw();}else {System.out.println("机会使用完毕");}return false;}}}
用户信息类代码:
public class User {public static String name;public static int password;public static int luckNumber;public static boolean isLogin; //登录状态,用于抽奖的时候进行判断}
阅读全文
0 0
- Java注册登录抽奖系统模块化设计
- 注册登录会员抽奖系统
- JAVA之模拟注册登录幸运抽奖
- 抽奖系统数据库设计
- 设计一个抽奖系统
- 抽奖系统的设计
- 抽奖系统概率设计
- JAVA用户抽奖系统设计(幸运大转盘作业)
- java中登录和注册系统
- Java开发之注册登录系统
- 注册和登录设计
- 系统登录注册模块
- 注册登录系统
- 基于JAVA的抽奖系统
- 小东吖 之 java 抽奖系统
- 对于设计抽奖系统的感悟
- java学习笔记(二十四)注册登录系统
- Java程序---学生管理系统的登录和注册
- keil中如何实现在线仿真, 查看波形
- Belt Analyst 15(传送带仿真软件)免费下载附安装教程
- 关于在list的值在循环中remove时出现的错误的总结
- 【1701H1】【穆晨】【171211】连续第六十二天总结
- 注册登录页面跳转
- Java注册登录抽奖系统模块化设计
- mysql of python
- linux 用户和组管理
- JAVA入门笔记二
- Android Bundle类
- 用Makefile模拟实现进度条
- 《给你一个公司,看你怎么管》笔记
- FastDFS
- 数据结构实验之查找一:二叉排序树