学习阶段小测,简单的幸运抽奖系统

来源:互联网 发布:索尼手机网络锁 编辑:程序博客网 时间:2024/04/28 20:07

任务:
为某商场开发一套幸运抽奖系统,客户首先注册成为商场会员,会员登录系统,参加抽奖活动
主要功能: 注册 登录 幸运抽奖
控制台程序,界面如下:

思路:要实现三个功能,将代码分为三个块写,首先实现注册功能,因为现在还没有学习数据库,所以直接使用一个变量去记录输入的账号与密码,然后再对比变量是否一致(待以后学习了连接数据库可以继续完善)。
登录功能,与注册时定义的两个变量进行对比,一致则标记为已登录,登录使用循环结构,给出三次机会。
抽奖功能,声明一个int类型的数组,然后向数组内存入随机数作为中奖号码,再进行遍历对比抽奖号码。
最后使用循环把三个模块连接起来。

实现代码如下:

import java.util.*;class Project1{    public static void main(String[] args)    {        //将需要使用到的一些变量先在循环外声明出来        boolean exit = true;//初始化循环变量,用于判断是否退出系统        String user = "";//记录注册的用户名        int pass = 0;//记录注册的密码        String user1 = "";//记录登录用户名        int pass1;//记录登录密码        int number = 0;//记录卡号        boolean judge = false;//记录是否已注册        boolean judge1 = false;//记录是否登录        do        {            System.out.println("**********欢迎进入奖客富翁系统**********");            System.out.println("\t\t1.注册\n\t\t2.登录\n\t\t3.抽奖");            System.out.println("****************************************");            System.out.print("请选择菜单:");            Scanner input = new Scanner(System.in);            int elect = input.nextInt();            if(elect!=1&&elect!=2&&elect!=3)//判断菜单选择是否正确            {                System.out.println("您的输入有误");            }else{                switch(elect)                {                    //注册模块                    case 1:{                        System.out.print("[奖客富翁系统>注册]\n继续吗?y/n:");                        String s1 = input.next();//判断继续或退出                        exit = "y".equals(s1);                        if(exit==true)                        {                            System.out.print("请填写个人用户信息\n用户名:");                            user = input.next();                            System.out.print("密码:");                            pass = input.nextInt();                            System.out.println("\n注册成功,请记好您的会员卡号");                            Random random = new Random();                            int kahao = random.nextInt(8999)+1000;//产生四位数随机数                            judge=true;  //标记为已成功注册                            System.out.println("用户名\t密码\t卡号");                            System.out.println(user+"\t"+pass+"\t"+kahao);                        }else{                            System.out.println("系统退出,谢谢使用");                        }                        //exit=false;                        break;                    }                    //登录模块                    case 2:{                        if(judge==false)     //如果未注册,提示用户未注册                        {                            System.out.println("抱歉,您还未注册!\n");                            break;                        }                        int k = 2; //控制循环,总共有三次密码输入机会                        do                        {                            System.out.print("[奖客富翁系统>登录]\n继续吗?y/n:");                            String s21 = input.next();//实现退出选项                            exit = "y".equals(s21);                            if(exit==false)                            {                                System.out.println("系统退出,谢谢使用");                                break;                            }                            System.out.print("请输入用户名:");                            user1 = input.next();                            System.out.print("\n请输入密码:");                            pass1 = input.nextInt();                            boolean a1 = user.equals(user1);                            if(a1==true&&pass1==pass)                            {                                System.out.print("欢迎您:"+user+"\n继续吗?y/n:");                                String s22 = input.next();//实现退出选项                                exit = "y".equals(s22);                                if(exit==false)                                {                                    System.out.println("系统退出,谢谢使用");                                    break;                                }                                judge1=true; //标记为已登录                                break;                            }else{                                System.out.println("您还剩余"+k+"次机会");                                k--;                            }                           }while(k>=0);                        break;                    }                    //抽奖模块                    case 3:{                        if(judge1==false)                        {                            System.out.println("抱歉,您还未登录!\n");                            break;                        }                        System.out.print("[奖客富翁系统>登录]\n继续吗?y/n:");                        String s31 = input.next();   //实现退出选项                        exit = "y".equals(s31);                        if(exit==false)                        {                            System.out.println("系统退出,谢谢使用");                            break;                        }                        System.out.print("请输入会员卡号");                        number = input.nextInt();                        int[] arr = new int[5];                        for(int i=0;i<arr.length;i++)    //向数组录入四位数的随机数                        {                            Random random = new Random();                            arr[i] = random.nextInt(8999)+1000;                        }                        System.out.print("本月幸运号码是:");                        for(int a=0;a<arr.length;a++)      //将选出的五个数输出到屏幕                        {                            System.out.print(arr[a]+"  ");                        }                        boolean temp = true;    //作为输出不中奖的条件                        for(int b=0;b<arr.length;b++)                        {                            if(number==arr[b])   //判断为中奖                            {                                System.out.println("恭喜,您中奖了!!!");                                temp = false;  //中奖了,改变temp                                break;                            }                        }                        if(temp==true)  //如果未中奖,temp值未改变则执行                        {                            System.out.println("抱歉,您不是本日幸运用户。\n继续吗?y/n:");                            String s32 = input.next();   //实现退出选项                            exit = "y".equals(s32);                            if(exit==false)                            {                                System.out.println("系统退出,谢谢使用");                                break;                            }                        }                        break;                    }                }            }        }while(exit==true);    }}

后记:
第一次写超过百行的代码,虽然这在实际工作中是司空见惯的事情,但是对于我自己来说,是一个很大的进步,刚开始时思路都没哟,所以我把分析全都用笔写在了纸上,瞬间感觉清晰明了,首先要明确思路,光在脑子里想是不够的,纸和笔画图是最好的工具。

0 0