純java代碼實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)
本文實(shí)例為大家分享了java實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng) 的具體代碼,供大家參考,具體內(nèi)容如下
模擬一個(gè)在終端登陸注冊(cè)的頁(yè)面
public class Cjtest {
public static void main(String[] args) {
String isGoOn = "n"; //循環(huán)的判斷條件是否繼續(xù)
do {
System.out.println("*********幸運(yùn)52********");
System.out.println("1.注冊(cè)");
System.out.println("2.登錄");
System.out.println("3.幸運(yùn)大抽獎(jiǎng)");
System.out.println("***********************");
System.out.println("請(qǐng)選擇菜單");
//接收用戶選擇的菜單
Scanner scanner = new Scanner(System.in);
String meunNum = scanner.nextLine();
//根據(jù)用戶的選擇 來(lái)執(zhí)行對(duì)應(yīng)功能
meunChoose(meunNum);
System.out.println("是否繼續(xù)---輸入y/n");
//接收判斷循環(huán)條件
isGoOn = scanner.nextLine();
} while (isGoOn.equals("y"));
//循環(huán)結(jié)束提示
System.out.println("歡迎下次使用");
}
//選擇對(duì)應(yīng)的方法
public static void meunChoose(String meunNum) {
switch (meunNum) {
case "1":
System.out.println("抽獎(jiǎng)系統(tǒng)----注冊(cè)");
//調(diào)用 注冊(cè)的方法
Register.register();
case "2":
System.out.println("抽獎(jiǎng)系統(tǒng)----登錄");
//調(diào)用登錄的方法
User.isLogin=Login.login();
break;
case "3":
System.out.println("抽獎(jiǎng)系統(tǒng)----幸運(yùn)抽獎(jiǎng)");
LuckDraw.lukcDraw();
break;
default:
System.out.println("輸入錯(cuò)誤請(qǐng)重新輸入");
break;
}
}
}
不連接數(shù)據(jù)庫(kù)所以模擬一個(gè)注冊(cè)時(shí)用戶信息所存放的位置
public class User {
//用戶名
public static String userName = "";
//密碼
public static String passWord = "";
//幸運(yùn)數(shù)字
public static int luckNumber = 0;
//用戶的登錄狀態(tài)
public static boolean isLogin = false;
}
注冊(cè)功能實(shí)現(xiàn)
public class Register {
public static void register() {
System.out.println("請(qǐng)注冊(cè)用戶的個(gè)人信息");
Scanner scanner = new Scanner(System.in);
System.out.println("用戶名");
//接收用戶名 放在用戶信息中
User.userName = scanner.nextLine();
System.out.println("密碼");
//接收到用戶信息中
User.passWord = scanner.nextLine();
//隨機(jī)一個(gè)四位的1000-2000的數(shù) 保存到用戶中。
User.luckNumber = (int)(Math.random()*(2000-1000+1)+1000);
//顯示用戶的注冊(cè)信息
System.out.println("用戶名"+User.userName);
System.out.println("密碼"+User.passWord);
System.out.println("幸運(yùn)數(shù)字"+User.luckNumber);
//scanner.close();標(biāo)記:注意scanner 只能關(guān)閉一次 關(guān)閉后在本程序執(zhí)行中 在創(chuàng)建也不能接收鍵盤(pán)信息了
}
}
登陸
public class Login {
static int number = 0;//控制循環(huán)輸入密碼三次
public static boolean login() {
System.out.println("請(qǐng)輸入用戶名:");
//接收用戶名
Scanner scanner = new Scanner(System.in);
String userName = scanner.nextLine();
System.out.println("請(qǐng)輸出賬號(hào):");
String passWord = scanner.nextLine();
//判斷用戶名密碼是否匹配
if(userName.equals(User.userName)&&passWord.equals(User.passWord)) {
//登陸成功
System.out.println("登陸成功");
//返回一個(gè)登錄狀態(tài)
return true;
}else {
//登錄失敗 有重新登錄三次機(jī)會(huì)。
number++;
System.out.println("你還有"+(3-number)+"次機(jī)會(huì)");
if (number !=3) {
//還有登陸的機(jī)會(huì)
login();
}else {
//三次機(jī)會(huì)已用 登錄失敗
System.out.println("三次機(jī)會(huì)已用完 登錄失敗");
}
//寫(xiě)返回值的時(shí)候要保證每一個(gè)分支都要有返回值
return false;
}
}
}
抽獎(jiǎng)系統(tǒng)邏輯
public class LuckDraw {
//記錄輸入卡號(hào)注冊(cè)
static int number = 0;
public static void lukcDraw() {
//是否注冊(cè) 沒(méi)注冊(cè)不能抽
if(User.userName.length() ==0 ) {
//沒(méi)注冊(cè) 下面都不執(zhí)行
System.out.println("你沒(méi)注冊(cè)");
return;
}
//是否登錄 沒(méi)登錄不讓抽
if(!User.isLogin) {
System.out.println("你沒(méi)登錄");
return;
}
//如果卡號(hào)沒(méi)輸對(duì) 也不讓抽獎(jiǎng) 直接return
if (!isLuckNumber()) {
System.out.println("卡號(hào)不對(duì)!不能登錄");
return;
}
//真的 可以抽獎(jiǎng)了
//定義一個(gè) 變量保存中獎(jiǎng)的結(jié)果
boolean isLucky = false;
//隨機(jī)五個(gè)數(shù) 打印出結(jié)果 并判斷是否匹配幸運(yùn)號(hào)碼
//定義一個(gè)變量 來(lái)保存累加的字符串
String s = "本次幸運(yùn)的數(shù)";
for (int i = 0; i < 5; i++) {
int num = (int) (Math.random() * (2000-1000+1) + 1000);
//拼接要打印的字符串
if(i<5) {
s = s + num+",";
}else {
s = s+num;
}
//判斷是否中獎(jiǎng)
if(User.luckNumber==num);
//中獎(jiǎng)
isLucky = true;
}
//打印幸運(yùn)數(shù)字
System.out.println(s);
if (isLucky) {
System.out.println("你中獎(jiǎng)了");
}else {
System.out.println("你沒(méi)中獎(jiǎng)");
}
}
public static boolean isLuckNumber() { //判斷卡號(hào)是個(gè)輸入正確
//抽獎(jiǎng)
System.out.println("請(qǐng)輸入卡號(hào)");
Scanner scanner = new Scanner(System.in);
int luckNumber = scanner.nextInt();
//判斷用戶輸入的卡號(hào)是不是 這個(gè)用戶之前隨機(jī)出來(lái)的那個(gè)數(shù)
if (luckNumber==User.luckNumber) {
System.out.println("輸入正確抽獎(jiǎng)馬上運(yùn)行");
return true;
//卡號(hào)相同可以抽獎(jiǎng)
}else {
//卡號(hào)不相同 重新輸入三次機(jī)會(huì)
number++;
if (number!=3) {
isLuckNumber();
}else {
System.out.println("三次機(jī)會(huì)已用盡");
}
return false;
}
}
}
更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開(kāi)發(fā)》。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于Java實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)
- 簡(jiǎn)單實(shí)現(xiàn)java抽獎(jiǎng)系統(tǒng)
- Java抽獎(jiǎng)算法第二例
- Java實(shí)現(xiàn)雙色球抽獎(jiǎng)隨機(jī)算法示例
- Java簡(jiǎn)易抽獎(jiǎng)系統(tǒng)小項(xiàng)目
- JAVA實(shí)現(xiàn)用戶抽獎(jiǎng)功能(附完整代碼)
- Java抽獎(jiǎng)?chuàng)屬?gòu)算法
- java實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)系統(tǒng)
- JAVA使用隨機(jī)數(shù)實(shí)現(xiàn)概率抽獎(jiǎng)
- Java使用HashMap映射實(shí)現(xiàn)消費(fèi)抽獎(jiǎng)功能
相關(guān)文章
springcloud整合seata的實(shí)現(xiàn)代碼
這篇文章主要介紹了springcloud整合seata的實(shí)現(xiàn)方法,整合步驟通過(guò)引入spring-cloud-starter-alibaba-seata?jar包,文中結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Java異常處理之java.lang.ClassCastException問(wèn)題
這篇文章主要介紹了Java異常處理之java.lang.ClassCastException問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
在idea中創(chuàng)建SpringBoot模塊的兩種方式
這篇文章主要介紹了在idea中創(chuàng)建一個(gè)SpringBoot模塊,本文給大家分享兩種方式,每種方式分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
java錯(cuò)誤:無(wú)效的源發(fā)行版:18解決辦法圖文詳解
在Java開(kāi)發(fā)中,如果你遇到錯(cuò)誤: 無(wú)效的源發(fā)行版,這通常意味著你正在使用的Java編譯器(通常是javac)被配置為編譯一個(gè)比你的JDK 版本更高,這篇文章主要給大家介紹了關(guān)于java錯(cuò)誤:無(wú)效的源發(fā)行版:18的解決辦法,需要的朋友可以參考下2024-08-08
Spring4下validation數(shù)據(jù)校驗(yàn)無(wú)效(maven)的解決
這篇文章主要介紹了Spring4下validation數(shù)據(jù)校驗(yàn)無(wú)效(maven)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java基礎(chǔ)之打印萬(wàn)年歷的簡(jiǎn)單實(shí)現(xiàn)(案例)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)之打印萬(wàn)年歷的簡(jiǎn)單實(shí)現(xiàn)(案例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
Spring?MVC啟動(dòng)之HandlerMapping作用及實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了Spring?MVC啟動(dòng)之HandlerMapping作用及實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

