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

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

思路:要实现三个功能,将代码分为三个块写,首先实现注册功能,因为现在还没有学习数据库,所以直接使用一个变量去记录输入的账号与密码,然后再对比变量是否一致(待以后学习了连接数据库可以继续完善)。
登录功能,与注册时定义的两个变量进行对比,一致则标记为已登录,登录使用循环结构,给出三次机会。
抽奖功能,声明一个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);
    }
}

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

猜你喜欢

转载自blog.csdn.net/yzccc/article/details/53114167