您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页JAVA实现用户抽奖功能(附完整代码)

JAVA实现用户抽奖功能(附完整代码)

来源:华拓科技网
JAVA实现⽤户抽奖功能(附完整代码)

⽬录

需求分析实现结果注意事项完整代码总结

需求分析

1)实现三个基本功能:登录、注册、抽奖。

2)登录:⽤户输⼊账号密码进⾏登录,输⼊账号后会匹配已注册的⽤户,若输⼊⽤户不存在则退出,密码有三次输⼊机会,登录成功后主界⾯会显⽰已登录⽤户的账号信息。

3)注册:⽤户⾸先输⼊账号名称,系统查询此名称是否存在,如存在则请求⽤户换⼀个名称,否则进⼊密码输⼊,密码要求6位数字字符串,注册成功后,系统随机分配⼀个与已有⽤户不重复的四位数字id编号。

4)抽奖:功能实现前提:需有⽤户处于登录状态。该前提满⾜时,系统从已存在⽤户中随机抽取5位不同的⽤户标记为幸运⽤户,并判断正在登录状态的⽤户是否被抽中。5)数据存储:采⽤⽂件系统,导⼊java.io.*包,

6)数据结构:登录⽤户信息保存于ArrayList,幸运⽤户编号和id保存于长度为5的HasMap 其中id为Key,name为Value。

实现结果

1)登录:

2)注册:

3)抽奖:

注意事项

运⾏代码之前务必在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}\

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实现⽤户抽奖功能(附完整代码)的⽂章就介绍到这了,更多相关JAVA实现⽤户抽奖内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务