#Java 基本チュートリアル 列では、ユーザー抽選の実装方法を紹介します。
2) ログイン: ユーザーは、アカウントとパスワードを入力してログインします。アカウントを入力すると、登録されているユーザーと一致します。入力したユーザーが存在しない場合は、終了します。パスワードを入力する機会は 3 回あります。ログインに成功すると、メイン インターフェイスにログイン ユーザーのアカウント情報が表示されます。
3) 登録: ユーザーは最初にアカウント名を入力します。システムはその名前が存在するかどうかを確認します。存在する場合、ユーザーは名前の変更を求められます。存在しない場合は、パスワードを入力します。パスワードには 6 桁の文字列が必要です登録が成功すると、システムは既存のユーザーとは異なる 4 桁の ID 番号をランダムに割り当てます。
4) 抽選: 機能実装の前提条件: ユーザーがログインしている必要があります。この前提条件が満たされると、システムは既存のユーザーから 5 人の異なるユーザーをランダムに選択して幸運なユーザーとしてマークし、ログインしているユーザーが選択されたかどうかを判断します。
5) データストレージ: ファイルシステムを使用し、java.io.* パッケージをインポートします。
6) データ構造: ログインユーザー情報は ArrayList に格納され、ラッキーユーザー番号と ID は HasMap
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>用户:["+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("****** 登 录 ******");
System.out.println("****** 注 册 ******");
System.out.println("****** 抽 奖 ******");
System.out.println("****** 退 出 ******");
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()请输入您的登录密码:");
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> lucklyUsers=new HashMap();
public void getLuckly() {
if (!Dos.logined) {
System.out.println("===>警告:没有用户登录,无法抽奖!");
return ;
}
while(lucklyUsers.size() u;
while((u=(new operatorFile(id=String.valueOf ((int) (Math.random()*9000+1000)))).getUserMess(1)).size()恭喜以下用户获得幸运称号:");
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){ }
}}</string></string></string></string></string></string></string>
#要件分析1) ログイン、登録、抽選の 3 つの基本機能を実装します。
2) ログイン: ユーザーは、アカウントとパスワードを入力してログインします。アカウントを入力すると、登録されているユーザーと一致します。入力したユーザーが存在しない場合は、終了します。パスワードを入力する機会は 3 回あります。ログインに成功すると、メイン インターフェイスにログイン ユーザーのアカウント情報が表示されます。3) 登録: ユーザーは最初にアカウント名を入力します。システムはその名前が存在するかどうかを確認します。存在する場合、ユーザーは名前の変更を求められます。存在しない場合は、パスワードを入力します。パスワードには 6 桁の文字列が必要です登録が成功すると、システムは既存のユーザーとは異なる 4 桁の ID 番号をランダムに割り当てます。
4) 抽選: 機能実装の前提条件: ユーザーがログインしている必要があります。この前提条件が満たされると、システムは既存のユーザーから 5 人の異なるユーザーをランダムに選択して幸運なユーザーとしてマークし、ログインしているユーザーが選択されたかどうかを判断します。 5) データストレージ: ファイルシステムを使用し、java.io.* パッケージをインポートします。
6) データ構造: ログインユーザー情報は ArrayList に格納され、ラッキーユーザー番号と ID は HasMap
達成結果
1) ログイン:
2) 登録:
3) 抽選: 注
运行代码之前务必在user.txt中创建五个以上的用户。rree

関連する無料の学習に関する推奨事項:
以上がユーザー抽選のJAVA実装の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、さまざまなJava Garbage Collectionアルゴリズム(シリアル、パラレル、CMS、G1、ZGC)、そのパフォーマンスへの影響、および大きなヒープを持つアプリケーションの適合性について説明します。

この記事では、Java Virtual Machine(JVM)について説明し、さまざまなプラットフォームでJavaプログラムを実行する際の役割について詳しく説明しています。 JVMの内部プロセス、主要コンポーネント、メモリ管理、ガベージコレクション、およびパフォーマンスの最適化について説明します

Javaのナショーンエンジンは、Javaアプリ内でJavaScriptスクリプトを可能にします。重要な手順には、ナショーンのセットアップ、スクリプトの管理、パフォーマンスの最適化が含まれます。主な問題には、ナショーンのdeprecによるセキュリティ、記憶管理、将来の互換性が含まれます

Javaのリソースでの試行は、ファイルストリームやデータベース接続などのリソースを自動的に閉じることでリソース管理を簡素化し、コードの読みやすさと保守性を向上させます。

Java Enumsは、固定された値のセットを表し、カスタムメソッドとコンストラクターを介してタイプの安全性、読みやすさ、および追加の機能を提供します。それらはコード組織を強化し、効率的なバリューハンドリングのためにスイッチステートメントで使用できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター
