Java怎么实现抽奖系统
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,今天小编给大家分享一下Java怎么实现抽奖系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解
千家信息网最后更新 2025年11月15日Java怎么实现抽奖系统
今天小编给大家分享一下Java怎么实现抽奖系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
抽奖系统需求分析
1)实现抽奖系统的三大主要功能是登录、注册和抽奖。
2)登录需求指的是让用户输入其账号密码从而进行登录,用户输入其账号去匹配系统内已注册用户,如果输入账号不存在就退出,密码则能输入三次,登录成功后主界面会显示已登录用户的账号信息。
3)注册需求让用户先输入其账号,再有系统查询用户账号名是否已存在,如果已存在就让用户重新输入,不存在就进行下一步密码输入,密码的要求是6位数字字符串,用户注册成功后系统会随机分配与已有账号不一样的四位数字 id 编号。
4)抽奖需求功能实现的前提条件是要有用户处于已登录状态。当前提满足时系统从已存在用户中随机去抽取5位不同的用户标记为幸运用户,并接着判断此时在线的用户是否有被抽中。
5)数据存储采用的是文件系统,导入 java.io.*包,
6)登录用户信息保存在 ArrayList 中,幸运用户编号与 id 保存在长度为5的 HasMap 其中它的 id 为 Key,name 为 Value。
注意事项
在运行代码之前务必在 user.txt 中创建五个以上的用户。
完整代码
import java.util.Scanner;import java.util.ArrayList;import java.io.*;import java.util.StringTokenizer;public class Dos { static boolean logined=false; public static void main(String[] args) { User user=new User(); int k=0; while( (k=Main(user))>=1&&k<5){ switch (k){ case 1: System.out.print((k=user.login(user))==-1?"此用户不存在!\n":""); System.out.print((k==-2)?"===<<警告>>用户:["+user.userName+"]已处于登录状态,无需重复登录!\n":""); break; case 2: user.regist(); break; case 3: user.getLuckly(); break; default:System.exit(0); } } } static int Main(User user){ System.out.println("**********************************************"); System.out.println("********************主菜单********************"); System.out.println("**********************************************"); System.out.println("****** <1> 登 录 ******"); System.out.println("****** <2> 注 册 ******"); System.out.println("****** <3> 抽 奖 ******"); System.out.println("****** <4> 退 出 ******"); System.out.println("**********************************************"); System.out.println("=============================================="); System.out.println(logined ? "-[已登录]- (1)用户名:"+user.userName+" (2)用户账号:"+user.userId:"-[未登录]- (1)用户名:NaN (2)用户账号:NaN"); System.out.println("=============================================="); System.out.print("###===>请输入您的选择:"); return (new Scanner(System.in)).nextInt(); }}public class User{ String userName,userId,userPwd; public User(){} public User(String userName, String userId, String userPwd) { this.userName = userName; this.userId = userId; this.userPwd = userPwd; } public String getUserName() { return userName; } public void setUserName(String userName) { if(!userName.equals("")) { ArrayList temp; this.userId=(temp=(new operatorFile(this.userName = userName)).getUserMess(0)).get(1); this.userPwd=temp.get(2); } } public String getUserId() { return userId; } public String setUserId() { String userId=""; while((new operatorFile(userId=String.valueOf ((int) (Math.random()*9000+1000)))).getUserMess(1).size()>0){ } return (this.userId = userId); } public String getUserPwd() { return userPwd; } public int login(User u) { int inputTimes=3; Scanner scanner=new Scanner(System.in); operatorFile getUserMessage=new operatorFile(); System.out.print("======>请输入您的用户名:"); String uName=""; getUserMessage.setUser(uName=scanner.nextLine()); ArrayList userMess=getUserMessage.getUserMess(0); if(userMess.size()<1) return -1;//返回-1表示用户不存在 if (uName.equals(userName)) return -2;//返回-2表示用户重复登录 System.out.print("======>请输入您的登录密码:"); while(!scanner.next().equals(userMess.get(2))&&inputTimes>0) System.out.print("===>密码输入错误!"+((--inputTimes)>0?"您还剩"+inputTimes+"次机会!":"三次机会已经用完了!输入任意退出")); System.out.println(inputTimes>0?"==>登录成功!您本次输入密码"+(4-inputTimes)+"次!":"==>登录失败!"); setUserName(inputTimes>0?uName:""); Dos.logined=inputTimes>0?true:false; return 0; } public void regist() { User u=new User(); Scanner scanner=new Scanner(System.in); System.out.print("===>请输入新的用户名:"); String name; while(new operatorFile(name=scanner.nextLine()).getUserMess(0).size() > 0) System.out.print("已存在此用户,注册失败!\n===>请重新输入新的用户名:"); System.out.print("======>请设置您的(六位数字)登录密码:"); String regex = "[0-9]{6}", pwd; while (!(pwd = scanner.nextLine()).matches(regex)) System.out.print("==>密码格式不正确,请重新设置您的(六位数字)登录密码:"); System.out.println("已为用户:"+(u.userName=name)+" 生成唯一ID: "+(u.userPwd=pwd)); (new operatorFile()).writeUserMess(u); System.out.println("=======>注册成功!"); } public static HashMap lucklyUsers=new HashMap<>(); public void getLuckly() { if (!Dos.logined) { System.out.println("===>警告:没有用户登录,无法抽奖!"); return ; } while(lucklyUsers.size()<5) { String id=""; ArrayList u; while((u=(new operatorFile(id=String.valueOf ((int) (Math.random()*9000+1000)))).getUserMess(1)).size()<1){ } lucklyUsers.put(u.get(1),u.get(0)); } Iterator iterator=lucklyUsers.entrySet().iterator(); int no=1; boolean LUCKLY=false; System.out.println("====>恭喜以下用户获得幸运称号:"); while(iterator.hasNext()){ Map.Entry entry=(Map.Entry) iterator.next(); System.out.println("幸运用户["+(no++)+"] 用户名:"+entry.getValue()+" 用户编号:"+entry.getKey()); LUCKLY = entry.getKey().equals(this.userId) ? true : LUCKLY; } System.out.println(LUCKLY?"=========>恭喜您在本次抽奖中获得幸运称号!":"=========>很遗憾,今日您未获奖 !-_-!"); } public String toString(){ return this.userName+" "+this.userId+" "+this.userPwd; }}public class operatorFile { String user; public void setUser(String user) { this.user = user; } public operatorFile(String user) { this.user = user; } public operatorFile() { } public ArrayList getUserMess(int index){ ArrayList temp=new ArrayList(); File file=new File("user.txt"); String line=""; try{ BufferedReader br=new BufferedReader(new FileReader(file)); while ((line = br.readLine())!=null && line!="\n"){ temp.clear(); StringTokenizer sk=new StringTokenizer(line); while (sk.hasMoreTokens()) { temp.add(sk.nextToken()); } if (temp.get(index).equals(this.user)) break; } } catch(IOException e){} return (line==null)?new ArrayList():temp; } public void writeUserMess(User u){ try{ BufferedWriter bw=new BufferedWriter(new FileWriter(new File("user.txt"),true)); bw.write(u.toString()+"\n"); bw.close(); } catch (IOException e){ } }} 以上就是"Java怎么实现抽奖系统"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
用户
登录
输入
密码
系统
账号
用户名
幸运
成功
数字
知识
篇文章
需求
不同
代码
信息
内容
前提
功能
机会
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
兰德纵横网络技术股东
浙江机电软件开发公司
普陀山住宿软件开发
杭州野玛网络技术有限
通付盾 网络安全召开
珠海apk软件开发
查找数据库账号密码
商城软件开发公司电话
思科网络安全证书有哪些证
医学和软件网络安全哪个就业好
安徽私有服务器技术指导
青少年网络安全知识竞答答案
广西互联网养老软件开发公司
郑州易保网络技术有限公司
白水租房软件开发
2019年网络安全宣传
数据库在项目中是如何使用
信得过的武汉app软件开发
树形结构存储到数据库
飞行模拟器软件开发规范
通付盾 网络安全召开
软件开发各种岗位
火鸟数据库文件夹
多选题数据库设计
频繁查询数据库
软件开发临时用工
战地1服务器维护
ff14与服务器
巩义市荣邦网络技术服务有限公司
深信服务器