完整代码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登录注册抽奖完整代码_Java抽奖系统(附完整代码)相关推荐

  1. 沃拼图游戏软件测试,超完整的手机拼图游戏附测试代码本科毕业论文.doc

    超完整的手机拼图游戏附测试代码本科毕业论文 本 科 毕 业 设 计 设 计 题 目 基于J2ME手机拼图游戏的关键技术研究与实现 姓名(学号) 系 别 专 业 通信工程 导 师 姓 名 二○一二 年 ...

  2. 基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码)

    系列文章目录 lstm系列文章目录 1.基于pytorch搭建多特征LSTM时间序列预测代码详细解读(附完整代码) 2.基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码 ...

  3. java登录注册抽奖完整代码_JAVA实现用户抽奖功能(附完整代码)

    需求分析 1)实现三个基本功能:登录.注册.抽奖. 2)登录:用户输入账号密码进行登录,输入账号后会匹配已注册的用户,若输入用户不存在则退出,密码有三次输入机会,登录成功后主界面会显示已登录用户的账号 ...

  4. java登录注册功能怎么实现_使用Java代码实现登录注册功能

    实现思路:分别创建5个包和5个类{cn.f.pojo(User.java):cn.f.Dao(UserDao.java):cn.f.Dao.impl(UserDaoImpl.java): cn.f.g ...

  5. Java 登录注册系统 【java基础案例教程 案例2-6】

    案例要求 编写程序实现简单的登录注册系统.程序包括以下4个功能. 1)登录功能,用户输入正确的账号密码可成功登录 2)注册功能,输入用户名和密码进行注册 3)查看功能,查看所有的用户名和密码 4)退出 ...

  6. java结束全部操作代码_Java创建与结束线程代码示例

    这篇文章主要介绍了Java创建与结束线程代码示例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考. 本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程 ...

  7. java创建线程代码_Java创建与结束线程代码示例

    本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程同步.调度.线程池等内容将会在后续章节中逐步深入. 创建线程 创建普通线程有两种方式,继承Thread类 ...

  8. java 静态变量加载顺序_java 成员变量 静态变量代码块 静态代码快加载顺序

    序言 基类A 类B继承实现了A类 1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B 3,装载父类A后 ...

  9. java 组织机构代码_JAVA实现社会统一信用代码校验的方法|chu

    网上找了几个,写的都不太适合,有的写出来了,也没有给出参考的算法链接.这样就导致了如果产生错误我们无法排查(不懂原理怎么排查对吧). 如果在使用过程中有疑虑,请参考:较验规则 package com. ...

  10. java 组织机构代码_JAVA实现社会统一信用代码较验

    网上找了几个,写的都不太适合,有的写出来了,也没有给出参考的算法链接.这样就导致了如果产生错误我们无法排查(不懂原理怎么排查对吧). 如果在使用过程中有疑虑,请参考:较验规则 代码实现 package ...

最新文章

  1. Python 多线程抓取网页 牛人 use raw socket implement http request great
  2. mediumtext 长度_InnoDB表行长度超限问题的处理和思考
  3. SCL定时 1500_iPhone12开售当天黄牛加价1500,哪里买最划算?
  4. 规格示例_最佳引导示例
  5. php留言板翻页,php翻页函数 - 沐攸的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  6. 通讯录 app 使用哪种协议查找服务器上存储的联系人?,uniapp通讯录查找
  7. 3.3、苏宁百万级商品爬取 代码讲解 商品爬取
  8. Alluxio部署(local模式)
  9. 转帖-win2003各版本的区别
  10. VC与VS的版本对应关系,VC到底是什么?为啥总提示缺少VC
  11. [How To]在Linux下设置无线网络桥接
  12. B 站顶流何同学对话苹果 CEO 库克
  13. vim菜鸟学习-杂篇(windows篇)
  14. Java基础篇--集合(collection)
  15. 腾讯优图计算机招聘视觉大咖(2022届校招+实习)
  16. 电脑投屏到电视怎么操作_无线投屏器应用
  17. jmeter原件使用
  18. Kubernetes上的有状态工作负载迎来转折点
  19. IBM IEEE 1394黄色感叹号
  20. 英特尔实感SDK 代码示例

热门文章

  1. 微信小程序客服系统怎么使用?小程序客服消息有没有什么限制?
  2. 小学数学计算机教案模板,小学数学教案模板5篇
  3. 漂亮的PPT模板:三步搞定年终报告
  4. 2020年南海区青少年信息学奥林匹克竞赛(小学甲组) 第5题 恢复数组【题解】
  5. 分析U盘文件系统(以FAT32为例)
  6. java drawstring 绘制歌词_java-Graphics.drawString()未绘制
  7. 墨尔本大学计算机科学硕士,墨尔本大学计算机专业硕士已经开放申请
  8. 蓝牙音频广播杰理AC7016C方案
  9. 网络云存储技术Windows server 2012 (项目十九 iSCSI磁盘的在线扩容)
  10. 使用事件把子函数的消息传输到主界面中