Java抽奖,java实现概率抽奖

  Java抽奖,java实现概率抽奖

  

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

  如何解决写爬虫IP受阻的问题?立即使用。

  

JAVA实现用户抽奖

  

需求分析

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

  2)登录:用户输入账号密码登录,输入账号后会匹配注册用户。如果输入的用户不存在,用户将退出,密码将输入三次。成功登录后,主界面会显示登录用户的账户信息。

  3)注册:用户先输入账号名称,系统查询该名称是否存在。如果存在,则要求用户更改名称,否则,输入密码,并且密码需要6位数的字符串。注册成功后,系统会随机分配一个与现有用户不重复的四位身份证号码。

  4)抽奖:功能实现的前提:用户必须登录。当这个前提满足时,系统从现有用户中随机抽取5个不同的用户标记为幸运用户,并判断正在登录的用户是否被选中。

  5)数据存储:采用文件系统,导入java.io.*包,

  6)数据结构:登录用户信息保存在ArrayList中,幸运用户号和id保存在hasmapString id中,长度为5,字符串名,其中id为Key,name为Value。

  

实现结果

   1)登录:

  2)注册:

  3)抽奖:

  

注意事项

  运行代码之前,请确保在user.txt中创建五个以上的用户。导入Java . util . scanner;导入Java . util . ArrayList;导入Java . io . *;导入Java . util . string tokenizer;公共类Dos {

  静态布尔logined=false

  公共静态void main(String[] args) {

  User User=new User();

  int k=0;

  while( (k=Main(user))=1k5){

  开关(k){

  案例1:

  system . out . print((k=user . log in(user))==-1?该用户不存在!\ n : );

  System.out.print((k==-2)?===警告用户:[ user.userName ]已经登录,无需再次登录!\ n : );

  打破;

  案例二:

  user . regist();

  打破;

  案例三:

  user . getluckly();

  打破;

  默认值:system . exit(0);

  }

  }

  }

  静态int Main(用户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(登录?-[已登录]- (1)用户名: user.userName (2)用户帐号: user . userid :-[未登录]- (1)用户名:NaN (2)用户帐号:NaN );

  system . out . println(=====================================);

  System.out.print(###===#==请输入您的选择:);

  return(新扫描仪(System.in))。nextInt();

  } }公共类用户{

  字符串userName,userId,userPwd

  公共用户(){}

  公共用户(字符串userName,字符串userId,字符串userPwd) {

  this.userName=用户名;

  this.userId=userId

  this . user pwd=user pwd;

  }

  公共字符串getUserName() {

  返回用户名;

  }

  public void setUserName(字符串用户名){

  如果(!username . equals( ){

  ArrayListString temp

  this . userid=(temp=(new operator file(this . userName=userName))。getUserMess(0))。get(1);

  this . user pwd=temp . get(2);

  }

  }

  公共字符串getUserId() {

  返回用户标识;

  }

  公共字符串setUserId() {

  字符串userId=“”;

  while((new operator file(userId=string。((int)(数学)的值。random()* 9000 1000))).getUserMess(1).size()0){ }

  返回(这个。userId=userId);

  }

  公共字符串getUserPwd() {

  返回密码

  }

  公共(同Internationalorganizations)国际组织登录(用户u) {

  int输入时间=3;

  扫描仪扫描仪=新扫描仪(系统。在);

  操作符文件获取用户消息=新操作符文件();

  System.out.print(======请输入您的用户名:);

  字符串uName=

  获取用户消息。setuser(uName=scanner。nextline());

  ArrayList string user mess=获取用户消息。获取用户mess(0);

  if(userMess.size()1)返回-1;//返回-1表示用户不存在

  if (uName.equals(用户名))返回-2;//返回-2表示用户重复登录

  System.out.print(======请输入您的登录密码:);

  而(!scanner.next().等于(用户乱。get(2))输入乘以0)

  System.out.print(===密码输入错误!((- inputTimes)0?您还剩"输入时间"次机会!:三次机会已经用完了!输入任意退出));

  System.out.println(inputTimes0?==登录成功!您本次输入密码 4-输入次数次!:==登录失败!);

  setUserName(inputTimes0?uName:" ");

  Dos.logined=inputTimes0?真:假;

  返回0;

  }

  public void regist() {

  User u=new User();

  扫描仪扫描仪=新扫描仪(系统。在);

  System.out.print(===请输入新的用户名:);

  字符串名称;

  while(new operator file(name=scanner。nextline()).getUserMess(0).大小()0)

  System.out.print(已存在此用户,注册失败!\n===请重新输入新的用户名:);

  System.out.print(======请设置您的(六位数字)登录密码:);

  String regex=[0-9]{6} ,pwd .

  而(!(pwd=scanner.nextLine()).匹配(正则表达式))

  System.out.print(==密码格式不正确,请重新设置您的(六位数字)登录密码:);

  System.out.println(已为用户:(u.userName=name)生成唯一ID:“(u . user pwd=pwd));

  (new operatorFile()).writeuser same(u);

  System.out.println(======注册成功!);

  }

  public static HashMapString,String lucky users=new HashMap();

  public void get lucky(){

  如果(!Dos.logined) {

  System.out.println(===警告:没有用户登录,无法抽奖!);

  返回;

  }

  而(幸运用户。尺寸()5)

  {

  字符串id=

  数组列表字符串u;

  while((u=(new operator file(id=string。((int)(数学)的值。random()* 9000 1000))).getUserMess(1)).size()1){ }

  幸运的用户。put(u . get(1),u . get(0));

  }

  迭代器iterator=lucklyUsers.entrySet().迭代器();

  int no=1;

  布尔幸运=错误

  System.out.println(====恭喜以下用户获得幸运称号:);

  while(iterator.hasNext()){

  地图. Entry entry=(Map .entry)迭代器。next();

  System.out.println(幸运用户[(否)]用户名: entry.getValue()用户编号:条目。getkey());

  LUCKLY=entry.getKey().等于(this.userId)?真实:幸运地;

  }

  系统。出去。println(幸运?=========恭喜您在本次抽奖中获得幸运称号!:=========很遗憾,今日您未获奖!-_-!);

  }

  公共字符串toString(){

  归还这个。用户名 this。userid 这个。用户pwd

  } }公共类操作员文件{

  字符串用户;

  公共void setUser(字符串用户){

  this.user=用户;

  }

  公共操作员文件(字符串用户){

  this.user=用户;

  }

  public operatorFile() { }

  公共数组列表字符串getuser mess(int index){

  ArrayList string temp=new ArrayList string();

  文件文件=新文件(用户。txt’);

  字符串行="";

  尝试{

  缓冲读取器br=新缓冲读取器(新文件读取器(文件));

  while ((line=br.readLine())!=空行!=\n){

  在…之时clear();

  string tokenizer sk=new string tokenizer(line);

  while (sk.hasMoreTokens()) {

  在…之时添加(sk。nexttoken());

  }

  if (temp.get(index)).等于(这个。用户))断;

  }

  }

  catch(IOException e){}

  return (line==null)?new ArrayList string():temp;

  }

  public void write User mess(User u){

  尝试{

  缓冲编写器bw=新缓冲编写器(新文件编写器(新文件(用户。txt’),true));

  bw。write(u . tostring() \ n );

  bw。close();

  }

  catch (IOException e){ }

  }}

  

JAVA实现用户抽奖

  

需求分析

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

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

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

  4)抽奖:功能实现前提:需有用户处于登录状态。该前提满足时,系统从已存在用户中随机抽取5位不同的用户标记为幸运用户,并判断正在登录状态的用户是否被抽中。

  5)数据存储:采用文件系统,导入java.io.*包,

  6)数据结构:登录用户信息保存于数组列表,幸运用户编号和编号保存于长度为5的HasMapString id,字符串名称其中编号为密钥、名称为价值。

  

实现结果

   1)登录:

  2)注册:

  3)抽奖:

  

注意事项

   运行代码之前务必在user.txt中创建五个以上的用户导入Java。util。扫描仪;导入Java。util。ArrayList导入Java。io。*;导入Java。util。字符串标记器;公共类Dos {

  静态布尔logined=false

  公共静态void main(String[] args) {

  User User=new User();

  int k=0;

  while( (k=Main(user))=1k5){

  开关(k){

  案例1:

  系统。出去。print((k=用户。登录(用户))==-1?此用户不存在!\ n : );

  System.out.print((k==-2)?===警告用户:[用户。用户名]已处于登录状态,无需重复登录!\ n : );

  打破;

  案例二:

  用户。regist();

  打破;

  案例三:

  用户。getluckly();

  打破;

  默认值:系统。退出(0);

  }

  }

  }

  静态int Main(用户用户){

  系统。出去。println( * * * * * * * * * * * * * * * * * * * * * * *);

  系统。出去。println( * * * * * * * * * * * * * * * * * * * 主菜单********************);

  系统。出去。println( * * * * * * * * * * * * * * * * * * * * * * *);

  System.out.println(****** 1登录******);

  System.out.println(****** 2注册******);

  System.out.println(****** 3抽奖******);

  System.out.println(****** 4退出******);

  系统。出去。println( * * * * * * * * * * * * * * * * * * * * * * *);

  系统。出去。println(===============================);

  System.out.println(登录?-[已登录]- (1)用户名:用户。用户名(2)用户账号: user.userId:-[未登录]- (1)用户名:南(2)用户账号:NaN’);

  系统。出去。println(===============================);

  System.out.print(###==请输入您的选择:);

  返回(新扫描仪(System.in).nextInt();

  } }公共类用户{

  字符串用户名,用户标识,用户密码

  公共用户(){}

  公共用户(字符串用户名,字符串用户Id,字符串userPwd) {

  this .用户名=用户名;

  this.userId=用户标识

  这个。用户密码=用户密码;

  }

  公共字符串getUserName() {

  返回用户名;

  }

  公共void setUserName(字符串用户名){

  如果(!用户名。等于(“”){

  数组列表字符串温度

  这个。userid=(temp=(new operator file(this。用户名=用户名).getUserMess(0)).get(1);

  这个。用户pwd=温度。get(2);

  }

  }

  公共字符串getUserId() {

  返回用户标识;

  }

  公共字符串setUserId() {

  字符串userId=

  while((new operator file(userId=string。((int)(数学)的值。random()* 9000 1000))).getUserMess(1).size()0){ }

  返回(这个。userId=userId);

  }

  公共字符串getUserPwd() {

  返回密码

  }

  公共(同Internationalorganizations)国际组织登录(用户u) {

  int输入时间=3;

  扫描仪扫描仪=新扫描仪(系统。在);

  操作符文件获取用户消息=新操作符文件();

  System.out.print(======请输入您的用户名:);

  字符串uName=

  获取用户消息。setuser(uName=scanner。nextline());

  ArrayList string user mess=获取用户消息。获取用户mess(0);

  if(userMess.size()1)返回-1;//返回-1表示用户不存在

  if (uName.equals(用户名))返回-2;//返回-2表示用户重复登录

  System.out.print(======请输入您的登录密码:);

  而(!scanner.next().等于(用户乱。get(2))输入乘以0)

  System.out.print(===密码输入错误!((- inputTimes)0?您还剩"输入时间"次机会!:三次机会已经用完了!输入任意退出));

  System.out.println(inputTimes0?==登录成功!您本次输入密码 4-输入次数次!:==登录失败!);

  setUserName(inputTimes0?uName:" ");

  Dos.logined=inputTimes0?真:假;

  返回0;

  }

  public void regist() {

  User u=new User();

  扫描仪扫描仪=新扫描仪(系统。在);

  System.out.print(===请输入新的用户名:);

  字符串名称;

  while(new operator file(name=scanner。nextline()).getUserMess(0).大小()0)

  System.out.print(已存在此用户,注册失败!\n===请重新输入新的用户名:);

  System.out.print(======请设置您的(六位数字)登录密码:);

  String regex=[0-9]{6} ,pwd .

  而(!(pwd=scanner.nextLine()).匹配(正则表达式))

  System.out.print(==密码格式不正确,请重新设置您的(六位数字)登录密码:);

  System.out.println(已为用户:(u.userName=name)生成唯一ID:“(u . user pwd=pwd));

  (new operatorFile()).writeuser same(u);

  System.out.println(======注册成功!);

  }

  public static HashMapString,String lucky users=new HashMap();

  public void get lucky(){

  如果(!Dos.logined) {

  System.out.println(===警告:没有用户登录,无法抽奖!);

  返回;

  }

  而(幸运用户。尺寸()5)

  {

  字符串id=

  数组列表字符串u;

  while((u=(new operator file(id=string。((int)(数学)的值。random()* 9000 1000))).getUserMess(1)).size()1){ }

  幸运的用户。put(u . get(1),u . get(0));

  }

  迭代器iterator=lucklyUsers.entrySet().迭代器();

  int no=1;

  布尔幸运=错误

  System.out.println(====恭喜以下用户获得幸运称号:);

  while(iterator.hasNext()){

  地图. Entry entry=(Map .entry)迭代器。next();

  System.out.println(幸运用户[(否)]用户名: entry.getValue()用户编号:条目。getkey());

  LUCKLY=entry.getKey().等于(this.userId)?真实:幸运地;

  }

  系统。出去。println(幸运?=========恭喜您在本次抽奖中获得幸运称号!:=========很遗憾,今日您未获奖!-_-!);

  }

  公共字符串toString(){

  归还这个。用户名 this。userid 这个。用户pwd

  } }公共类操作员文件{

  字符串用户;

  公共void setUser(字符串用户){

  this.user=用户;

  }

  公共操作员文件(字符串用户){

  this.user=用户;

  }

  public operatorFile() { }

  公共数组列表字符串getuser mess(int index){

  ArrayList string temp=new ArrayList string();

  文件文件=新文件(用户。txt’);

  字符串行="";

  尝试{

  缓冲读取器br=新缓冲读取器(新文件读取器(文件));

  while ((line=br.readLine())!=空行!=\n){

  在…之时clear();

  string tokenizer sk=new string tokenizer(line);

  while (sk.hasMoreTokens()) {

  在…之时添加(sk。nexttoken());

  }

  if (temp.get(index)).等于(这个。用户))断;

  }

  }

  catch(IOException e){}

  return (line==null)?new ArrayList string():temp;

  }

  public void write User mess(User u){

  尝试{

  缓冲编写器bw=新缓冲编写器(新文件编写器(新文件(用户。txt’),true));

  bw。write(u . tostring() \ n );

  bw。close();

  }

  catch (IOException e){ }

  }}以上就是详解爪哇岛实现用户抽奖的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: