来了来了!这不又到考试周了吗!愁人,又得复习,复习,复习!这段时间每天都在复习线代和高数!(说是复习,说实话其实是在预习,啊哈哈哈哈哈),得有一段时间都没有学到新的知识了,代码感觉都生疏了,惆怅.博客也好久都没有更新了,这不才完事。终于又可以写起来了,又可以学习新的知识了,其实说实话我写博客的主要目的就是要督促我自己学习新知识,因为自己有时候真的可懒了,再就是自己学会的知识输出出来,有的想法不对的,大家还可以一起讨论,其次也是为了帮助一些有疑难点的小白,希望你们学到同样的知识的时候,可以少走一点弯路。好啦,废话不多说,要说正事了。
因为有几天没学新的东西了,所以我就把我学校的大作业拿了出来,就当是给有帮助的人一个参考吧!(虽然网上这些也挺多的,但是还是打算把它写出来了),有需要的抓紧收藏起来哦!!!
         知识利用for、while、do-while等循环、if语句、switch语句、数组、String类之后,现在开始创建一个小型幸运抽奖系统。
任务
模拟注册登录幸运抽奖全过程
主要功能
1.注册
2.登陆
3.抽奖
 
阶段1 实现菜单的输出显示
需求说明
1.输出菜单
2.选择菜单编号,输出菜单信息
3.如果编号选择错误,输出“您的输入有误!”
 
阶段2 实现菜单循环执行功能
需求说明
1.系统询问用户是否继续
2.如果用户选择继续,则可以继续选择菜单,否则程序结束,退出系统
 
阶段3 实现注册功能
需求说明
1.输入用户名和密码,系统产生4位随机数作为卡号。
2.注册成功,显示注册信息并修改注册标识为true
 
阶段4 实现登录功能
需求说明
1.输入注册时的用户名和密码,登录成功,系统提示欢迎信息
2.如果用户名和密码输入错误,提示用户继续输入,最多有3次输入机会
 
阶段5 实现幸运抽奖功能
需求说明
1.登录成功后,用户选择幸运抽奖菜单,进入幸运抽奖功能
2.输入会员卡号,系统生成5个4位随机数作为幸运数字
3.如果会员卡号是其中之一,则成为本日幸运会员;否则不是幸运会员
 
以上五个阶段便实现了一个简单的幸运抽奖系统
说明:
在阶段3 注册的时候设置了在该系统中只能存储十个用户,而且注册时如果该用户名已经存在就会注册失败
在阶段5 抽奖的时候如果没有先进行登陆便不能进行抽奖
```
源代码:
package test;
import java.util.Scanner;
/*
 * 幸运抽奖
 * @author xxmeng
 */
public class LuckyTwo {
 public static void main(String [] args) {
  String input;
  int temp=1,countx=0,county=0; //计数器
  //注册的用户名,注册的密码,确认密码,登陆密码,会员号,幸运数
  String username1=null,userpwd1=null,reuserpwd,username2=null,userpwd2,ID=null;
  
  //数组的下标不可以超过10个,也就是用户名注册的数目不可以超过10个
  String[][] userlist=new String[10][3]; //存储用户名,密码,会员号
  Scanner inputScanner = new Scanner(System.in);  //从键盘上进行输入
  while(temp==1) { //循环系统
   int temp1=1,flag=0; //计数器
   System.out.println("******************欢迎进入xxmeng系统*******************");
   System.out.println("    1.注册"  ) ;
   System.out.println("    2.登录"  ) ;
   System.out.println("    3.抽奖"   ) ;
   System.out.println("***********************************************************") ;
   System.out.println("请选择菜单号") ;
   input=inputScanner.next();
   
   if(input.equals("1") || input.equals("2") || input.equals("3")) {
    switch(input) {
    case "1":    //注册
     int flag1=1;
     System.out.println("xxmeng系统>注册");
     System.out.println("请填写个人注册信息");
     do {//验证用户是否存在
      System.out.print("用户名: ");
      username1 = inputScanner.next();
      int i=0;
      for(i=0;i<10;i++) {
       if(username1.equals(userlist[i][0])) {
        System.out.println("用户已经存在");
        i=0;
        break;
       }
      }
      if(i!=0) {
       flag1=0;
      }
     }while(flag1==1);
     while(true) {
      System.out.print("密码 :");
      userpwd1=inputScanner.next();
      System.out.print("请确认密码 :");
      reuserpwd = inputScanner.next();
      
      //如果输入的密码和当初设定的密码相同
      if(userpwd1.equals(reuserpwd)) {
       System.out.println("  注册成功, 请记住你的会员卡号  ");
       System.out.println("  用户名  " + '\t' + "   密码   " + '\t' + "  会员卡号  ");
       
       //进行四次循环每次随机抽取一次幸运号,一个抽取四次 且抽奖的大小在1~9之间
       for(int i=0;i<4;i++) {
        int a = (int )(1 + Math.random() *(9));
        ID+=String.valueOf(a);
       }
       
       /*
        * 存储用户的信息
        */
       userlist[countx][county]=username1;//存储用户名
       System.out.print((userlist[countx][county]) + '\t');
       userlist[countx][++county]=userpwd1;//存储密码
       System.out.print((userlist[countx][county]) + '\t');
       userlist[countx][++county]=ID.substring(4); //存储会员号
       System.out.print((userlist[countx][county]));
       ID=null;
       System.out.println();
       county=0;
       countx++;
       System.out.println("是否继续(y/n)");
       
       char anserString = inputScanner.next().charAt(0);
       //如果不继续输入了
       if(anserString =='n') {
        temp=0;
        break;
       }else {
        break;
       }
       
      }else {
       System.out.println("两次密码不一样,请重新输入密码 ");//回头再次修改
       continue;
      }
     }
     
     //否则退出
     break;
     
     
     /*
      *2. 登录
      */
    case "2" :
     System.out.println(" xxmeng系统>登录 ");
     System.out.println(" 请输入用户名 : ");
     username2 = inputScanner.next();
     for(int i=0;i<10;i++) {
      flag++;
      
      //判断是否存在此用户
      if(username2.equals(userlist[i][0])) {
       while(temp1<4) {
        System.out.println("请输入密码 : ");
        userpwd2=inputScanner.next();
        
        //判断登录密码是否正确
        if(userpwd2.equals(userlist[i][1])) {
         System.out.println("欢迎您         " + userlist[i][0]);
         ID=userlist[i][2];
         temp1=4;
        }else {
         System.out.println("密码错误"); //超过三次直接退出系统
         temp1++;
         if(temp1==4) {
          temp=0;
          i=11;
         }
         continue;
        }
       }
      }
     }
     
     if(temp1==4) {
      break;
     }
     if(flag==4) {
      System.out.println("不存在此用户");
     }
     
     System.out.print("是否继续(y/n)");
     char anserString = inputScanner.next().charAt(0);
     if(anserString =='y') {
      continue;
    }
     if(anserString =='n') {
      temp=0;
     }
     break;
     /*
      * *
      * 抽奖
      */
    case "3" :
     if(ID==null) {
      System.out.println("请先登录 ");
      continue;
     }
     System.out.println("xxmeng系统>抽奖");
     System.out.println("您的卡号为 :    "  +  ID  );
     System.out.print("本日幸运数字为 : " );
     String lucknums[] = new String[5];
     String lucknumber = null;
     for(int i=0;i<lucknums.length;i++) {
      for(int j=0;j<4;j++) { //随机生成4个随机数字
       int a=(int )(1 + Math.random() *(9));
       lucknumber +=String.valueOf(a); //输入的那个数字把它转化成数字字符串
      }
      lucknums[i] = lucknumber.substring(4);
      lucknumber=null;
      System.out.println(lucknums[i] + '\t' );
     }
     System.out.println();
     for(int i=0;i<lucknums.length;i++) {
      if(lucknums[i].equals(ID)) {
       System.out.println(" 恭喜,您是本日的幸运会员 ");
      }
     }
     System.out.println(" 抱歉!您不是本日的幸运会员 ");
     System.out.println("是否继续(y/n)");
     char anserString1 =inputScanner.next().charAt(0);
     if(anserString1 == 'n') {
      temp=0;
     }
     break;
     default:
      System.out.println("  对不起!您的输入有误  ");
      continue;
   }
  }else {
   System.out.println(" 请输入正确的序号 ");
  }}
  inputScanner.close();
  System.out.println("   退出系统,谢谢使用!");
 }
}
```
运行结果如下图所示:
```
******************欢迎进入奖客富翁系统*******************
    1.注册
    2.登录
    3.抽奖
***********************************************************
请选择菜单号
1
奖客富翁系统>注册
请填写个人注册信息
用户名: xxmeng
密码 :123
请确认密码 :123
  注册成功, 请记住你的会员卡号 
  用户名      密码      会员卡号 
xxmeng 123 8944
是否继续(y/n)
y
******************欢迎进入奖客富翁系统*******************
    1.注册
    2.登录
    3.抽奖
***********************************************************
请选择菜单号
2
 奖客富翁系统>登录
 请输入用户名 :
xxmeng
请输入密码 :
123
欢迎您         xxmeng
******************欢迎进入奖客富翁系统*******************
    1.注册
    2.登录
    3.抽奖
***********************************************************
请选择菜单号
3
奖客富翁系统>抽奖
您的卡号为 :    8944
本日幸运数字为 : 7845 
6719 
4573 
4466 
7239 
 抱歉!您不是本日的幸运会员
是否继续(y/n)
n
   退出系统,谢谢使用!
```
这就是一个小的抽奖系统,很简单易懂,没有复杂的地方,其实还可以加一些界面什么的,但是没做那么复杂的,就一个学校的作业,就当给你们做一个参考吧!
明天打算更新并发,线程,进程之类的,艾玛为何感觉知识这么多,还有太多知识没有学到,学完了还忘 呜呜呜.....!
 
 
 

java小项目——抽奖系统的更多相关文章

  1. Java学习笔记三十:Java小项目之租车系统

    Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...

  2. Java小项目--坦克大战(version1.0)

    Java小项目--坦克大战<TankWar1.0> 这个小项目主要是练习j2se的基础内容和面向对象的思想.项目实现了基本的简单功能,我方一辆坦克,用上下左右键控制移动方向,按F键为发射炮 ...

  3. Java小项目之:教你做个聊天系统!

    Java小项目之:聊天系统 今天给大家带来的java练手小项目是一个简单的聊天室,界面简单,操作不难. 分为注册系统,登录系统和聊天系统三部分,很适合java小白练手. 完整的源码和素材请关注并私信我 ...

  4. Java小项目之:五子棋,你下棋下得过电脑吗?

    Java小项目之:五子棋,你下棋下得过电脑吗? Java五子棋功能要求: 1.创建窗口和设计一个棋盘界面 2.实现鼠标点击,棋子出现,黑白棋轮流下 3.能够判断五子相连输赢 4.添加重新开始,悔棋,退 ...

  5. java小项目之:植物大战僵尸,这个僵尸有点冷!内附素材源码

    Java小项目之:植物大战僵尸! <植物大战僵尸>是由PopCap Games开发的一款益智策略类单机游戏,于2009年5月5日发售,这款游戏可谓是无人不知无人不晓. 在我身边,上到40岁 ...

  6. java小项目之:抽奖系统!java初学者必备(内附源码)

    [Java]Java摇奖源码,Java抽奖源码,Java随机抽奖源码 任务描述 本次任务要求为某商场开发一套幸运抽奖系统,客户必须首先注册成为该商场会员,会员登录成功后,就可以参加抽奖活动了.注册 用 ...

  7. java小项目之:扫雷,这游戏没有你想的那么简单!

    扫雷 我之前分享的小项目和小游戏,电影购票.坦克大战.捕鱼达人.贪吃蛇等,虽然已经是耳熟能详人尽皆知的项目和游戏,但是保不齐真的有人没接触过. 今天分享的这个项目,我不相信没人接触过(仅限80后-00 ...

  8. Java小项目迷你图书管理系统

    package 迷你图书管理系统; import java.util.Scanner; public class BookMgr { public static void main(String[] ...

  9. java小项目之:象棋,羡慕你们有对象的!

    象棋,是我国传统棋类益智游戏,在中国有着悠久的历史,属于二人对抗性游戏的一种,由于用具简单,趣味性强,成为流行极为广泛的棋艺活动.中国象棋是中国棋文化也是中华民族的文化瑰宝. 象棋还有很多口诀,这是最 ...

随机推荐

  1. Java基本语法---标识符、变量、数据类型转换及进制

    Java基本语法 标识符 标识符:凡事可以自己起名字的地方,都可以叫做标志符 标识符命名规则: 26个字母大小写,数字0-9,下划线_,美元符号$ 数字不能开头 不能使用关键字和保留字,但是可以包含 ...

  2. Intellij IDEA 2020.1.1 破解 永久有效 亲测100%成功

    申明:本教程 WebStorm 破解补丁.激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除. 前言 作为一个有强迫症的码农,怎么能忍受自己的开发工具跟不上潮流呢?笔者以前一直用 ...

  3. [转]前人挖坑,后人填坑—如何把那些bug挖掘出来

    当我们放下一个项目转投下一个时,手头的东西就要转交给他人处理,或者..不再有人处理,可代码还在那里,搞不好你就引用了别人的东西,保不准哪天别人的代码里就爆出了个大 bug,当然这里的“别人”也可能是 ...

  4. Vim的三款实用插件

    Vim 是 Linux 下的常用文本编辑器,但也经常被称为是一个上古神器,因为它对于初学者而言相当不友好,也不好入门. 但是,对于高手而言,他们不仅将 Vim 玩得很溜,而且还将它当作代码开发的主要工 ...

  5. 记一次使用windbg排查内存泄漏的过程

    一.背景 近期有一个项目在运行当中出现一些问题,程序顺利启动,但是观察一阵子后发现内存使用总量在很缓慢地升高, 虽然偶尔还会往下降一些,但是总体还是不断上升:内存运行6个小时候从33M上升到80M: ...

  6. .net core 上传大文件

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Thr ...

  7. Rocket - decode - Inst Decode

    https://mp.weixin.qq.com/s/WvepB3yAzjMbQalO3Z82pQ   介绍RocketChip Instruction解码逻辑的实现.   1. RISC-V   R ...

  8. akka-typed(3) - PersistentActor has EventSourcedBehavior

    akka-typed中已经没有PersistentActor了.取而代之的是带有EventSourcedBehavior的actor,也就是一种专门支持EventSource模式的actor.Even ...

  9. Java实现 蓝桥杯 算法提高 计算超阶乘(暴力)

    试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输 ...

  10. springboot实现定时任务,异步操作,统一结果返回,全局异常处理,拦截器及事务处理

    本文是作者原创,版权归作者所有.若要转载,请注明出处. 本文都是springboot的常用和实用功能,话不多说开始吧 定时任务 1.启动类开启注解 @EnableScheduling //开启基于注解 ...