您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 昭通分类信息网,免费分类信息发布

详解JAVA实现用户抽奖

2024/6/3 1:29:00发布37次查看
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()恭喜您在本次抽奖中获得幸运称号!:=========>很遗憾,今日您未获奖 !-_-!);    }    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()恭喜您在本次抽奖中获得幸运称号!:=========>很遗憾,今日您未获奖 !-_-!);    }    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实现用户抽奖的详细内容。
昭通分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录