java实现幸运抽奖功能
作者:编程小白2.0 发布时间:2023-11-27 07:24:16
标签:java,抽奖
本文实例为大家分享了java实现幸运抽奖功能的具体代码,供大家参考,具体内容如下
本系统较为简单,未使用是什么多的算法,也未添加保存文件读取文件功能,
1、任务
模拟注册登录幸运抽奖全过程
2、主要功能:
1.注册
2.登录
3.退出登录
4.抽奖
5.退出系统
首页:
1.输出菜单
2.选择菜单编号
3.如果编号选择错误,输出“您的输入有误!”
注册:
1.输入用户名和密码,系统产生4位随机数作为卡号。
2.注册成功,输出用户信息
登录:
1.输入注册时的用户名和密码,登录成功,系统提示登陆成功。
2.如果用户名和密码输入错误,提示用户继续输入。
退出登录:
1.若用户已登录则退出登录
2.若用户未登录则显示您未登录,
抽奖:
1.输入会员卡号,系统生成5个4位随机数作为幸运数字
2.如果会员卡号是其中之一,则成为本日幸运会员;否则不是幸运会员
退出系统:
若用户想结束对本系统的使用可退出系统,结束程序。
代码实现:
import java.util.Scanner;
class User{//用户
String name;
String password;
int cardid;
User(String name,String password){
this.name=name;
this.password=password;
cardid=(int)(Math.random()*9000+1000);
}
String getName(){
return name;
}
String getPassword(){
return password;
}
int getCardid(){
return cardid;
}
}
public class Lottery {//抽奖系统
public static void main(String[] args) {//main方法
User[]user=new User[10];
int total=0;//注册人数
int j=0;//是否退出系统
int x=0;//登录状态,默认未登录
int y=-1;//当前登录用户元素
do {
System.out.println("*****欢迎进入幸运抽奖系统*****");
System.out.println("\t1、注册");
System.out.println("\t2、登录");
System.out.println("\t3、退出登录");
System.out.println("\t4、抽奖");
System.out.println("\t5、退出系统");
System.out.print("\t请选择:");
int choice;
Scanner reader=new Scanner(System.in);
choice=reader.nextInt();
switch (choice){
case 1:
if (x==0)
total = getTotal(user, total);
else
System.out.println("您正在登录中,请先退出登录再注册!\n");
break;
case 2:
if (x==0) {
int i = 0;
do {
y = toLogin(user, total);
if (y==-1) {
System.out.println("您的输入有误,请重新输入!\n");
i = 1;
}else {
x = 1;
i=0;
}
} while (i == 1);
}else
System.out.println("您正在登录中!\n");
break;
case 3:
if (x==1){
x=0;
System.out.println("退出登录成功!\n");
}else
System.out.println("您未登录,请先登录!\n");
break;
case 4:
if (x==1){
toLottery(user, y);
}else
System.out.println("您未登录,请先登录!\n");
break;
case 5:
j=1;
break;
default:
System.out.println("您的输出有误,请重新输入!\n");
}
}while(j!=1);
}
private static void toLottery(User[] user, int y) {//抽奖方法
int j=0;
System.out.println("本日幸运会员卡号为:");
int cardid[]=new int[5];
cardid[0]=(int)(Math.random()*9000+1000);
cardid[1]=(int)(Math.random()*9000+1000);
cardid[2]=(int)(Math.random()*9000+1000);
cardid[3]=(int)(Math.random()*9000+1000);
cardid[4]=(int)(Math.random()*9000+1000);
for (int i=0;i<5;i++){
System.out.print(cardid[i]+" ");
if(user[y].getCardid()==cardid[i]){
j=1;
}
}
System.out.println("\n您的会员卡号为:\n"+user[y].getCardid());
if (j==1)
System.out.println("恭喜您,成为本日的幸运会员!\n");
else
System.out.println("很遗憾,您不是本日幸运会员!\n");
}
private static int toLogin(User[] user, int total) {//登录方法
Scanner reader=new Scanner(System.in);
System.out.print("请输入您的用户名:");
String name= reader.nextLine();
System.out.print("请输入您的密码:");
String password= reader.nextLine();
int j=-1;
for (int i = 0; i< total; i++) {
if (name.equals(user[i].getName())) {
if (password.equals(user[i].getPassword())) {
System.out.println("登陆成功!");
System.out.println("用户名:"+name+"\n密码:"+password+"\n会员号:"+user[i].getCardid()+"\n");
j=i;
}
}
}
return j;
}
private static int getTotal(User[] user, int total) {//注册方法
Scanner reader=new Scanner(System.in);
System.out.print("请输入您的用户名:");
String name= reader.nextLine();
System.out.print("请输入您的密码:");
String password= reader.nextLine();
for (int i=0;i<total;i++) {
if (name.equals(user[i].getName())) {
System.out.println("用户名已存在,请重新输入!\n");
return total;
}
}
user[total]=new User(name,password);
System.out.println("用户名:"+name+"\n密码:"+password+"\n会员号:"+user[total].getCardid()+"\n");
total++;
return total;
}
}
来源:https://blog.csdn.net/qq_51926288/article/details/117296834


猜你喜欢
- 首先从表现层介绍,后续后深入原理。1、先简单介绍maven如何生成jar文件方便测试<plugin>
- 一、简介什么是线程池?池的概念大家也许都有所听闻,池就是相当于一个容器,里面有许许多多的东西你可以即拿即用。java中有线程池、连接池等等。
- C#用户定义类型转换•用于自定义类和结构能够进行隐式转换和显示转换.例如:将一个自定义类类型转换成整型,浮点型等,反之亦然.C#提供隐式转换
- 本文实例为大家分享了Android学习之Broadcast的使用方法,供大家参考,具体内容如下实现开机启动提示网络的广播package co
- 前言继上次skywalking出故障《解析Arthas协助排查线上skywalking不可用问题》不到一个月,线上skywalking又出毛
- 本文实例为大家分享了Unity使用多态制作计算器,供大家参考,具体内容如下Unity中需要的组件在Unity中创建两个InputField,
- 背景:以前学的Java进行开发,多用到Mybatis,Hiberante等ORM框架,最近需要上手一个C#的项目,由于不是特别难,也不想再去
- 图片象对:经过理处过的jpg格式的位图(头像照片) 算
- 对这种懒加载问题,最后的做法是利用Spring提供的一个针对Hibernate的一个支持类,其主要意思是在发起一个页面请求时打开Hibern
- 在研究性能的时候,完全可以使用Stopwatch计时器计算一项技术的效率。但是有时想知道某想技术的性能的时候,又常常想不起可以运用Stopw
- 前言身在孤岛有很多无奈,比如说程序员属于比较偏门的职业。尤其是早些年,在行业里跳过几次槽后,可能你就已经认识整个圈子的人了。然后,再跳槽很可
- 本文实例讲述了Java实现的RSA加密解密算法。分享给大家供大家参考,具体如下:import java.awt.AlphaComposite
- Controller代码package com.keafmd.controller;import org.springframework.w
- jpa之动态插入与修改(重写save)1.动态插入@Data@Entity@DynamicInsert@Table(name = "
- 这篇文章主要讲解C#中的泛型,泛型在C#中有很重要的地位,尤其是在搭建项目框架的时候。一、什么是泛型泛型是C#2.0推出的新语法,不是语法糖
- 认识数组数组的定义数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元
- 参数说明CultureInfo.CurrentCulture获取当前线程的区域信息中,包括DateTimeFormat 日期显示格式(日期分
- 01.点明观点 C#中,非托管资源使用之后必须释放,而using()是使用非托管资源的最佳方式,可以确保资源在代码块结束之后被正确
- 首先我们定义一个可以在运行时动态的找出项目的路径WebAppRootKey,这么做的原因是为了在后面配置log4j输出文件路径的时候能随心配
- 目录1.项目gitthub地址链接: https://github.com/baisul/generateCode.git切换到master