小型抽奖系统的一个总结

package com.Test;

import java.util.Arrays;
import java.util.Scanner;

public class Test2 {
    /**
     主要功能
        注册
        登录
        幸运抽奖 

    需求说明
        输出菜单
        选择菜单编号,输出菜单信息
        如果编号选择错误,输出“您的输入有误!”
    需求说明
        系统询问用户是否继续
        如果用户选择继续,则可以继续选择菜单,否则程序结束,退出系统
    需求说明
        输入用户名和密码,系统产生4位随机数作为卡号。
        注册成功,显示注册信息并修改注册标识为true
    需求说明
        输入注册时的用户名和密码,登录成功,提示欢迎信息
        如果用户名和密码输入错误,提示用户继续输入,最多有
        3次输入机会
    需求说明
        登录成功后,用户选择幸运抽奖菜单,进入幸运抽奖功能
        输入会员卡号,系统生成5个4位随机数作为幸运数字
        如果会员卡号是其中之一,则成为本日幸运会员;否则不是幸运会员 

     * @param args
     */
    static int index=0;
    static String[][] users=new String[1024][3];
    static Scanner input=new Scanner(System.in);
    public static void menu(){
        System.out.println("*****************欢迎使用玩玩玩抽奖系统***************\n" +
                "*1、注册\n" +
                "*2、登陆\n" +
                "*3、幸运抽奖\n" +
                "*4、输入其他退出\n" +
                "****************************************************\n");

    }
    public static String validateRegist(String id,String name){
        /*if(name==null||name.equals("")){
            return "注册失败,用户名不能为空!";
        }*/
        //键盘输入不需要非空验证
        for(int i=0;i<=index;i++){
            if(users[i][0]==null){
                return "注册成功!";
            }else if(users[i][1].equals(name)){
                return "注册失败,该用户名已存在!";
            }else if(users[i][0].equals(id)){
                return "注册失败,系统id冲突!";
            }
        }
        return "注册成功!";
    }
    public static void main(String[] args){

        while(true){
            input=new Scanner(System.in);
                menu();
                int i=0;
                try{
                    i=input.nextInt();
                }catch(Exception e){
                    exit();
                    continue;
                }

                switch(i){
                case 1:
                    System.out.println("***********************玩玩玩抽奖系统>>用户注册**********************");
                    while(true){
                        System.out.println("请输入用户名:");
                        String name=input.next();
                        System.out.println("请输入密码:");
                        String password=input.next();
                        String id=String.valueOf((int)(Math.random()*9000+1000));
                        String message=validateRegist(id,name);
                        boolean flag=message.equals("注册成功!");

                        if(flag){
                            users[index][0]=id;
                            users[index][1]=name;
                            users[index][2]=password;
                            System.out.println("您的会员号是:"+id);
                            index++;
                            System.out.println(message);
                        }else{
                            System.out.println(message);//不考虑数组越界的问题
                            continue;
                        }
                        System.out.println("输入1再次注册,输入其他数回到主菜单。");
                        try{
                            if(input.nextInt()!=1){
                                break;
                            }
                        }catch(Exception e){
                            break;
                        }

                    }
                    break;
                case 2:
                    boolean flag=false;
                    while(!flag){
                        System.out.println("请输入用户名:");
                        String name=input.next();
                        System.out.println("请输入密码:");
                        String password=input.next();
                        for(int j=0;j<index;j++){
                            if(users[j][1].equals(name)&&users[j][2].equals(password)){
                                flag=true;
                                break;
                            }
                        }
                        if(flag){
                            System.out.println("登陆成功!");
                        }else{
                            System.out.println("登陆失败,无法识别的用户名和密码组合!");
                            System.out.println("输入1再试一次,输入其他数回到主菜单。");
                            try{
                                if(input.nextInt()!=1){
                                    break;
                                }
                            }catch(Exception e){
                                break;
                            }

                        }
                    }
                    break;
                case 3:
                    System.out.println("*********************玩玩玩抽奖系统>>幸运抽奖*****************");

                    while(true){
                        System.out.println("*1、输入幸运号进入抽奖\n" +
                                "*2、找回幸运号\n" +
                                "*输入其他返回主菜单");
                        int a=0;
                        try{
                            a=input.nextInt();
                            switch(a){
                            case 1:
                                System.out.println("请输入id");
                                String id=input.next();
                                if(!checkId(id)){
                                    System.out.println("您输入的会员号不存在!");
                                    break;
                                }
                                int k=0;//抽奖次数
                                while(k<3){
                                    System.out.println("输入1抽奖:");
                                    int cj=input.nextInt();
                                    if(cj==1){
                                        int returnmes=isLucklyid(id);
                                        if(returnmes!=-1){
                                            System.out.println("恭喜您,您抽中了幸运奖,一颗恐龙蛋!");
                                        }else{
                                            System.out.println("很遗憾,您没有中奖!");
                                        }
                                        k++;
                                    }

                                }
                                System.out.println("您的抽奖次数已经用完,每天只有3次机会哦!");
                                break;
                            case 2:
                                break;
                            }
                        }catch(Exception e){
                            break;
                        }
                    }
                    break;
                default:
                    exit();
                }

        }

    }

    public static void exit(){
        System.out.println("要退出系统吗?(s/n)");
        //Scanner in=new Scanner(System.in);
        input=new Scanner(System.in);
        String goon=input.next();

        if(goon.equals("s")){
            System.out.println("谢谢使用!");
            System.exit(0);
        }
    }

    public static int isLucklyid(String id){//不是幸运号输返回-1

            String[] lucklyids=new String[5];
            for(int i=0;i<5;i++){
                lucklyids[i]=String.valueOf((int)(Math.random()*9000+1000));
            }
            return Arrays.binarySearch(lucklyids, id);

    }
    public static boolean checkId(String id){//存在返回true,不存在返回false
            for(int i=0;i<index;i++){
                if(users[i][0]==id){
                    return true;
                }
            }
            System.out.println();
            for(int i=0;i<index;i++){
                System.out.print(users[i][0]==id+"\t");
            }
            return false;

    }

}

几个总结:

做项目心不要太大,一点一点吃。

比如要求,先不要考虑什么键盘输入的值类型错误报异常或者用户使用中胡乱输入的情况。也可以先不考虑将注册的值全部存入数组中,使用变量接受,只考虑走一次的情况。在完成基本的要求后再在原来的基础上优化,清除bug。

定义String变量初始值的时候,如果可以的话,使用""替代null,因为null的话在一些应用中会报空指针。

时间: 2024-10-04 23:13:24

小型抽奖系统的一个总结的相关文章

【小型系统】抽奖系统

一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽奖中获取多个奖项. 二.系统总体框架 系统需求比较简单,采用Java Swing技术可以很好的实现,系统的总体类框架图如下 说明:基于主要的三个类就可以完成所需要的功能,Frame有Panel类型与MouseAdapter类型的成员,Panel主要用户存放具体的控件和绘制相应的信息,MouseAda

【小型系统】抽奖系统-使用Java Swing完成

一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽奖中获取多个奖项. 二.系统总体框架 系统需求比较简单,采用Java Swing技术可以很好的实现,系统的总体类框架图如下 说明:基于主要的三个类就可以完成所需要的功能,Frame有Panel类型与MouseAdapter类型的成员,Panel主要用户存放具体的控件和绘制相应的信息,MouseAda

C#实现一个简答的抽奖系统

Lottery 这是一个款简单的抽奖系统 语言:C 技术点 NPOI:操作Execl的读.写 BindingList:实现对控件的动态绑定List的转换BindingList:new BindingList(List); GitHub 原文地址:https://www.cnblogs.com/2828sea/p/12153999.html

抽奖系统-使用Java Swing完成

一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽奖中获取多个奖项. 二.系统总体框架 系统需求比较简单,采用Java Swing技术可以很好的实现,系统的总体类框架图如下 说明:基于主要的三个类就可以完成所需要的功能,Frame有Panel类型与MouseAdapter类型的成员,Panel主要用户存放具体的控件和绘制相应的信息,MouseAda

开源Asp.Net Core小型社区系统

参考页面: http://www.yuanjiaocheng.net/ASPNET-CORE/core-identity.html http://www.yuanjiaocheng.net/ASPNET-CORE/core-authorize-attribute.html http://www.yuanjiaocheng.net/ASPNET-CORE/core-identity-configuration.html http://www.yuanjiaocheng.net/ASPNET-COR

jquery实现抽奖系统

闲来无事做了一个抽奖的系统: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>抽奖系统</title> <script src="source/jquery.js"></script> <style> #box{ width:450px; margi

简易抽奖系统的实现,键盘控制

一个简易的抽奖系统! JS原理:建立一个数组用来存储抽奖内容,例如 iphone6 等,当点击开始的时候,开启定时器,产生一个随机数,把对应文本的innerHTML改成数组所对应的内容. 如果想让某个抽奖几率变高,可以让数组中某个值重复次数多点.接下来看代码.. JavaScript代码 1 window.onload = function(){ 2 var data = [ 3 "iphone 6s plus", 4 "苹果Mac 笔记本", 5 "美的

基于SignalR的小型IM系统

这个IM系统真是太轻量级了,提供的功能如下: 1.聊天内容美化 2.用户上下线提示 3.心跳包检测机制 4.加入用户可群聊 下面来一步一步的讲解具体的制作方法. 开篇准备工作 首先,巧妇难为无米之炊,这是总所周知的.这里我们需要两个东西,一个是Asp.net MVC4项目:另一个是Signalr组件. 新建一个Asp.net MVC4项目,然后通过以下命令安装Signalr组件: Install-Package Microsoft.AspNet.SignalR -Version 1.1.3 这样

揭秘:网上抽奖系统如何防止刷奖

本文来自网易云社区 营销活动中,抽奖系统刷奖.刷票.刷券的人群,俗称羊毛党,常以低成本甚至零成本换取利润.对于羊毛党,大家是又爱又恨.爱他的人认为羊毛党们虽然撸了点小便宜,但是帮活动拉升了人气,至少在活动数据上好看些.恨他的人觉得这些羊毛党们截取了用户福利,影响了用户体验,花钱引来了"假群众". 羊毛党通过大量的手机号和IP.接入打码平台,批量注册各类电商以及O2O帐号,使用批量操作软件刷取商家活动资源,已经实现赚钱自动化和产业化,(俗称"躺着赚钱").羊毛党可使用