详解JAVA实现用户抽奖

互联网 20-11-25

java基础教程栏目介绍实现用户抽奖方法:

JAVA实现用户抽奖

需求分析

1)实现三个基本功能:登录、注册、抽奖。 2)登录:用户输入账号密码进行登录,输入账号后会匹配已注册的用户,若输入用户不存在则退出,密码有三次输入机会,登录成功后主界面会显示已登录用户的账号信息。 3)注册:用户首先输入账号名称,系统查询此名称是否存在,如存在则请求用户换一个名称,否则进入密码输入,密码要求6位数字字符串,注册成功后,系统随机分配一个与已有用户不重复的四位数字id编号。 4)抽奖:功能实现前提:需有用户处于登录状态。该前提满足时,系统从已存在用户中随机抽取5位不同的用户标记为幸运用户,并判断正在登录状态的用户是否被抽中。 5)数据存储:采用文件系统,导入java.io.*包, 6)数据结构:登录用户信息保存于ArrayList,幸运用户编号和id保存于长度为5的HasMap<String id,String name> 其中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<String> 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<String> 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<String,String> lucklyUsers=new HashMap<>();     public void getLuckly() {         if (!Dos.logined)   {             System.out.println("===>警告:没有用户登录,无法抽奖!");             return ;         }         while(lucklyUsers.size()<5)         {             String id="";             ArrayList<String> 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<String> getUserMess(int index){         ArrayList<String> temp=new ArrayList<String>();         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<String>():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实现用户抽奖

需求分析

1)实现三个基本功能:登录、注册、抽奖。 2)登录:用户输入账号密码进行登录,输入账号后会匹配已注册的用户,若输入用户不存在则退出,密码有三次输入机会,登录成功后主界面会显示已登录用户的账号信息。 3)注册:用户首先输入账号名称,系统查询此名称是否存在,如存在则请求用户换一个名称,否则进入密码输入,密码要求6位数字字符串,注册成功后,系统随机分配一个与已有用户不重复的四位数字id编号。 4)抽奖:功能实现前提:需有用户处于登录状态。该前提满足时,系统从已存在用户中随机抽取5位不同的用户标记为幸运用户,并判断正在登录状态的用户是否被抽中。 5)数据存储:采用文件系统,导入java.io.*包, 6)数据结构:登录用户信息保存于ArrayList,幸运用户编号和id保存于长度为5的HasMap<String id,String name> 其中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<String> 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<String> 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<String,String> lucklyUsers=new HashMap<>();     public void getLuckly() {         if (!Dos.logined)   {             System.out.println("===>警告:没有用户登录,无法抽奖!");             return ;         }         while(lucklyUsers.size()<5)         {             String id="";             ArrayList<String> 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<String> getUserMess(int index){         ArrayList<String> temp=new ArrayList<String>();         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<String>():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实现用户抽奖的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 抽奖
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:linux系统下防止由于终端关闭导致workerman退出

相关资讯