zoukankan      html  css  js  c++  java
  • day4幸运抽奖系统更新

    代码:

    import java.util.Random;
    import java.util.Scanner;
    
    public class Day4ProjectUpdate {
        static String confirm ;                       //confirm存放对是否继续操作的确认
        static String registerName = null;            //存放注册用户名*
        static String registerPassword = null;        //存放注册密码*
        static String loginName = null;               //存放登录用户名
        static String loginPassword = null;           //存放登录密码
    
        static int userNum = 0 ;                      //存放会员号*
        static int loginFlag = 0;                      //用于存放是否已经登录*
        static int lotteryFlag = 0 ;                   //用于存放是否已抽奖*
        static int registerFlag = 0 ;                  //用于存放是否已注册*
        static Random rand = new Random();            //用于生成随机数
        static Scanner input = new Scanner(System.in);//用于获取输入流
        static int[] rands = new int[5];         //用于存放随机出的抽奖号
        static String[][] users = new String[10][6];
        static int k = 0;
        public static void main(String[] args)  {
    
            do {
                menu();
                System.out.print("请选择菜单");
                int choose = input.nextInt();//choose存放菜单选择结果
                switch (choose){
                    case 1:
                        register();
                        break;
                    //case1注册模块
                    case 2:
                            login();
                        break;
                    //case2登录模块
                    case 3:
                        lottery();
                        break;
                    //case3 抽奖模块
                    case 4:
                        exit();
                    default:
                        System.out.println("您的输入有误,请输入1-4之间的数字实现菜单选择");
                }//switch 针对不同菜单选择做出的输出
                System.out.println("是否继续使用系统(y/n)");
                confirm = input.next();
            }while(confirm.equals("y") );
            if (!confirm.equals("n")) {
                System.out.println("输入错误,默认退出系统");
            }
            exit();//对于是否退出系统的判断 其他字符或n 退出系统
        }//main函数
    
    
        public static void menu(){
            System.out.println(" ~~~欢迎进入会员抽奖系统~~~");
            System.out.println(" |      1.注册会员       |");
            System.out.println(" |      2.会员登录       |");
            System.out.println(" |      3.开始抽奖       |");
            System.out.println(" |      4.退出程序       |");
            System.out.println(" ~~~~~~~~~~~~~~~~~~~~~~~ ");
        }//界面
    
        public static boolean judge(int tag){
            switch (tag){
                case 1:
                    return true;//case1判断是否注册
                case 2:
                    return true;//case2判断是否登录
                case 3:
                case -1:
                    System.out.println("您抽过奖啦,不要贪心哦");
                    if (tag == 3){
                        System.out.println("上次抽奖结果为:中奖");
                    }else
                        System.out.println("上次抽奖结果为:未中奖");
                    return true;//case3,4对是否抽奖和抽奖结果进行判断
                default:
                    return false;//没有做过返回false
            }//switch
        }//judge方法判断当前用户状态
    
        public static String inputName(String users){
            do {
                if (users == null)
                    System.out.print("请输入用户名(邮箱格式)");
                else
                    System.out.println("输入错误,请重新输入(邮箱格式)");
                users = input.next();
            }while (!users.matches("[\w]+@[\w]+.[\w]+") );//用户名格式判断
            System.out.println("用户名格式正确");
            return users;
        }//用户名输入
    
        public static String inputPassword(String password){
            do {
                if (password == null )
                    System.out.print("请输入密码(不小于6位数字)");
                else
                    System.out.println("请重新输入密码(不小于6位数字)");
                password=input.next();
            }while (!(password.length() >= 6) );
            System.out.println("密码格式正确");
            return password;
        }//密码输入
    
        public static void register(){
            if(!judge(registerFlag) ) {
                System.out.println("会员抽奖系统->注册会员");
                users[k++][0] = inputName(users[0][1]);
                registerPassword = inputPassword(registerPassword);
                userNum = rand.nextInt(10);//int randNumber =rand.nextInt(MAX - MIN + 1) + MIN; 即int randNumber =rand.nextInt(9999 - 1000 + 1) + 1000;randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数
                //注册信息输入
                printSign();
                registerFlag = 1;
            }else
                System.out.println("您已注册,不需要再注册啦");
        }//register注册方法
    
        public static void printSign (){
            System.out.println("注册成功,请记好您的用户信息");
            System.out.println("用户名:" + registerName);
            System.out.println("密码:" + registerPassword);
            System.out.println("会员卡号:" + userNum);
        }//输出注册后的信息
    
        public static void login(){
            System.out.println("会员抽奖系统->会员登录");
            if (!judge(registerFlag)){
                System.out.println("您还未注册,请先注册");
            }
            else if(!judge(loginFlag)) {
                int i;
                for (i = 0; i < 3; i++) {
                    System.out.println("请输入用户名和密码,你还有" + (3 - i) + "次机会");
                    loginName = inputName(loginName);
                    loginPassword = inputPassword(loginPassword);
                    if (loginName.equals(registerName)  && loginPassword.equals(registerPassword) ) {
                        System.out.println("用户名密码正确");
                        break;
                    }
                    System.out.println("输入的用户名或密码错误");
                }//for 3次匹配账号密码的机会
                if (i == 3) {
                    System.out.println("您输入错误次数过多,即将退出系统..");
                    exit();
                }//3次错误退出系统
                else {
                    System.out.println("登陆成功");
                    loginFlag = 2;
                }//错误次数不够3次,登录成功,并修改loginTag值
            }//if未登录登录
            else System.out.println("您已登录");
        }//login登录方法
    
        public static boolean compare(int[] arry ,int randNum){
            for (int i = 0; i < 5; i++) {
                if (arry[i] == randNum) {
                    return false;
                }
            }
            return true;
        }//compare函数比较随机数是否重复
    
        public static void createRands(int[] randList){
            for( int i = 0; i < 5; i++){
                int tans2 = rand.nextInt(10);
                if(compare(randList,tans2))
                    randList[i] = tans2;
                else
                    i--;
            }
        }//createRands产生不重复随机数
    
        public static void lottery(){
            System.out.println("会员抽奖系统->开始抽奖");
            if (!judge(loginFlag)){
                System.out.println("您还未登录,不能抽奖");
            }//判断是否已登录
            else if(!judge(lotteryFlag)) {
                createRands(rands);
                System.out.println("您已登录,欢迎进行抽奖");
                System.out.println("您的会员号为" + userNum);
                System.out.print("今日中奖会员号为");
                for (int i = 0; i < 5; i++) {
                    System.out.print(rands[i] + ",");
                }//打印测试抽奖号
                System.out.println();
                int j;
                for (j = 0; j < 5; j++) {
                    if (userNum == rands[j]) {
                        System.out.println("恭喜您,中奖啦!");
                        lotteryFlag = 1;
                        break;
                    }
                }//for 比较是否中奖
                if (j == 5) {
                    System.out.println("很遗憾,没有中奖");
                    lotteryFlag = -1;
                }
            }//else if登录并为抽过奖可以抽奖
        }//lottery抽奖方法
    
        public static void exit() {
            System.out.println("即将退出...");
            System.out.println("系统退出,感谢使用!");
            input.close();//结束程序前关闭输入流
            System.exit(0);//用exit指令退出程序,0表示正常退出,程序正常执行结束退出,1是非正常退出,就是说无论程序正在执行与否,都退出,
        }//退出系统
    
    }//class类
    
    

    现在回看之前的代码.注释冗余

    tips :

    • int [] randLIst = createrand (5);//java数组可以
      
    • for(int i : randList){
          System.out.print(i + "	");
      }//用增强for(for each)打印全部数组元素
      
  • 相关阅读:
    如何学习 websocket ?
    如何使用 C++ Inja html template 模板
    使用 QSqlTableModel 模型向数据库中插入数据时,为什么使用 rowCount 函数只能返回 256 最大值?
    windows 如何配置 Go 环境(Zip archive 方式)?
    qt 如何使用 lamda 表达式接收线程中发射的数据,并在里面更新 UI ?
    如何使用 VLD 检测程序中的内存泄漏?
    Qt 在相同的线程中可以在信号中传递未注册的元对象,在非相同线程中则不能传递未测试的对象,为什么呢?
    《LeetBook》leetcode题解(5):Longest Palindromic [M]——回文串判断
    《LeetBook》leetcode题解(4): Median of Two Sorted Arrays[H]——两个有序数组中值问题
    《Algorithms算法》笔记:元素排序(4)——凸包问题
  • 原文地址:https://www.cnblogs.com/zzz1zzz/p/14268072.html
Copyright © 2011-2022 走看看