幸运抽奖系统模拟

项目描述 运用Java变量、数组、选择结构、循环结构等知识为某商场开发一套幸运抽奖系统,客户必须首先注册成为商场会员,登录后,参加抽奖活动。
功能实现:1、注册;2、登录;3、抽奖
准备: 实现菜单的输出显示。 如果编号选择错误,输出“你的输入有误!”

import java.util.Scanner;

/**
 * Lucky_people class
 * 抽奖系统
 * @author Huanghao
 * @date 2022/04/09
 */
public class Lucky_people {
    static Scanner input = new Scanner(System.in);
    static String userName = "";
    static String passWord = "";
    /**存放生成的幸运号码*/
    static int[] luckNum = new int[5];
    static int vipCard = 0;
    /**用来判断是否登录*/
    static boolean isRes = false;

    /**
     * 模拟用户抽奖,相同的用户只能抽一次
     */
    static int[] vip_sys = new int[100];
    static int count = 0;


    public static void main(String[] args) {
        lucky_num();
        while (true) {
            System.out.println("*****欢迎进入奖客富翁系统****");
            System.out.println("\t1.注册");
            System.out.println("\t2.登录");
            System.out.println("\t3.抽奖");
            System.out.println("**************************");
            System.out.print("请选择菜单:");
            Scanner input = new Scanner(System.in);
            int item = input.nextInt();
            switch(item){
                case 1:
                    System.out.println("奖客富翁系统 > 注册");
                    regitSys();
                    break;
                case 2:
                    System.out.println("奖客富翁系统 > 登录");
                    LoginSys();
                    break;
                case 3:
                    System.out.println("奖客富翁系统 > 抽奖");
                    vip_Luck();
                    break;
                default:
            }
            if(item<1||item>3) {
                System.out.println("您的输入有误!");
            }
                System.out.println("继续吗?(y/n)");
                String choose = input.next();
                if(choose.equalsIgnoreCase("y")){
                    System.out.println();
                    continue;
                }
                System.out.println("即将退出....");
                return;

        }
    }

    /**
     * 用户注册
     */
    private static void regitSys() {
        System.out.println("请填写个人信息:");
        System.out.print("用户名:");
        userName = input.next();
        System.out.print("密码:");
        passWord = input.next();
        isRes = true;
        vipCard = (int)(Math.random()*9000)+1000;
        for (int i = 0; i < vip_sys.length; i++) {
            if(vip_sys[i]==0){
                vip_sys[i] = vipCard;
                break;
            }
            if(i ==vip_sys.length-1){
                System.out.println("vip系统已满,等待更新系统");
                return;
            }
        }

        System.out.println("注册成功,请记住您的会员卡号");
        System.out.println("用户名\t密码\t\t会员卡号");
        System.out.println(userName+"\t"+passWord+"\t\t"+vipCard);

        //只要有新用户登录,就重置这个计数器
        count = 0;

    }

    /**
     * 用户登录
     */
    private static void LoginSys() {
        if(!isRes){
            System.out.println("您还未注册,请先注册后再登录!");
            return;
        }
        int count = 3;
        while (true) {
            System.out.print("请输入用户名:");
            String logName = input.next();
            System.out.print("请输入用户名:");
            String logPwd = input.next();
            if(logName.equals(userName)&&logPwd.equals(passWord)){
                System.out.println("欢迎您:"+logName);
                break;
            }else {
                if(--count<1){
                    System.out.println("无法登录,请重新操作");
                    break;
                }
                System.out.println("输入的用户名或密码不匹配,您还有"+count+"次机会");
            }
        }
    }

    /**
     * 会员抽奖
     */
    private static void vip_Luck() {

        if(vipCard==0){
            System.out.println("您还未登录,请先登录后再抽奖!");
            return;
        }

        /**
         * 模拟用户抽奖,相同的用户只能抽一次
         */
        for (int vip_sy : vip_sys) {
            if(vip_sy == vipCard && count != 0){
                System.out.println("您已经抽过奖了,请不要重复操作!");
                return;
            }
        }

        System.out.println("您的初识卡号是:"+vipCard);
        System.out.print("本日的幸运数字:");
        for (int i : luckNum) {
            System.out.print(i+" ");
        }
        System.out.println();
        boolean isLucky = false;
        for (int i : luckNum) {
            if(i==vipCard){
                isLucky = true;
                break;
            }
        }
        for (int i : luckNum) {
            if(!isLucky){
                System.out.println("抱歉,您不是本日幸运会员");
                count++;
                return;
            }
            if(isLucky){
                System.out.println(userName+"恭喜您,中奖了!!");
                count++;
                return;
            }
        }


    }

    /**
     * 生成幸运数字
     */
    private static void lucky_num(){
        for (int i = 0; i < luckNum.length; i++) {
            luckNum[i] = (int)(Math.random()*9000)+1000;
        }
    }
}

运行截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结:
本次编写比较顺利,基本上没有需要很多的思考,只是在一些时间逻辑上需要更加严谨的时候,做了很多优化,这个会比较花时间
比如:
1.会员系统的当天的中奖号码唯一
2.抽过奖之后不能再次抽奖
3.新用户进来之后还是能够继续抽奖
4,要先注册才能登录,先登录才能抽奖

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值