Explication détaillée de la mise en œuvre JAVA de la loterie des utilisateurs
Tutoriel Java BasicLa colonne présente comment implémenter la loterie des utilisateurs :
JAVA implémente la loterie des utilisateurs
Analyse des exigences
1) Implémentez trois fonctions de base : connexion, inscription et loterie.
2) Connexion : l'utilisateur saisit le compte et le mot de passe pour se connecter. Après avoir entré le compte, l'utilisateur enregistré sera mis en correspondance. Si l'utilisateur saisi n'existe pas, quittez. Il existe trois possibilités pour saisir le mot de passe. Après une connexion réussie, l'interface principale affichera les informations du compte de l'utilisateur connecté.
3) Inscription : L'utilisateur saisit d'abord le nom du compte. Le système vérifie si le nom existe, l'utilisateur est invité à modifier le nom. Sinon, saisissez le mot de passe. Une fois l'enregistrement réussi, le système attribue de manière aléatoire un numéro d'identification à quatre chiffres unique aux utilisateurs existants.
4) Loterie : Condition préalable à la mise en œuvre de la fonction : L'utilisateur doit être connecté. Lorsque cette condition préalable est remplie, le système sélectionne au hasard 5 utilisateurs différents parmi les utilisateurs existants et les marque comme utilisateurs chanceux, et détermine si l'utilisateur connecté a été sélectionné.
5) Stockage des données : utilisez le système de fichiers, importez le package java.io.*,
6) Structure des données : les informations de connexion de l'utilisateur sont stockées dans ArrayList, le numéro d'utilisateur chanceux et l'identifiant sont stockés dans HasMap
Obtenir des résultats
1) Connexion : 2) S'inscrire :
3) Tirage au sort :
Notes
运行代码之前务必在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 pour mettre en œuvre la loterie des utilisateurs
Analyse des exigences
1) Implémentez trois fonctions de base : connexion, inscription et loterie.
2) Connexion : l'utilisateur saisit le compte et le mot de passe pour se connecter. Après avoir entré le compte, l'utilisateur enregistré sera mis en correspondance. Si l'utilisateur saisi n'existe pas, quittez. Il existe trois possibilités pour saisir le mot de passe. Après une connexion réussie, l'interface principale affichera les informations du compte de l'utilisateur connecté.
3) Inscription : L'utilisateur saisit d'abord le nom du compte. Le système vérifie si le nom existe, l'utilisateur est invité à modifier le nom. Sinon, saisissez le mot de passe. Une fois l'enregistrement réussi, le système attribue de manière aléatoire un numéro d'identification à quatre chiffres unique aux utilisateurs existants.
4) Loterie : Condition préalable à la mise en œuvre de la fonction : L'utilisateur doit être connecté. Lorsque cette condition préalable est remplie, le système sélectionne au hasard 5 utilisateurs différents parmi les utilisateurs existants et les marque comme utilisateurs chanceux, et détermine si l'utilisateur connecté a été sélectionné.
5) Stockage des données : utilisez le système de fichiers, importez le package java.io.*,
6) Structure des données : les informations de connexion de l'utilisateur sont stockées dans ArrayList, le numéro d'utilisateur chanceux et l'identifiant sont stockés dans HasMap
Obtenir des résultats
1) Connexion : 2) S'inscrire :
3) Tirage au sort :
Notes
运行代码之前务必在user.txt中创建五个以上的用户。
Recommandations d'apprentissage gratuites associées : Tutoriel de base Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.
