純java代碼實現(xiàn)抽獎系統(tǒng)
本文實例為大家分享了java實現(xiàn)抽獎系統(tǒng) 的具體代碼,供大家參考,具體內(nèi)容如下
模擬一個在終端登陸注冊的頁面
public class Cjtest {
public static void main(String[] args) {
String isGoOn = "n"; //循環(huán)的判斷條件是否繼續(xù)
do {
System.out.println("*********幸運52********");
System.out.println("1.注冊");
System.out.println("2.登錄");
System.out.println("3.幸運大抽獎");
System.out.println("***********************");
System.out.println("請選擇菜單");
//接收用戶選擇的菜單
Scanner scanner = new Scanner(System.in);
String meunNum = scanner.nextLine();
//根據(jù)用戶的選擇 來執(zhí)行對應(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("歡迎下次使用");
}
//選擇對應(yīng)的方法
public static void meunChoose(String meunNum) {
switch (meunNum) {
case "1":
System.out.println("抽獎系統(tǒng)----注冊");
//調(diào)用 注冊的方法
Register.register();
case "2":
System.out.println("抽獎系統(tǒng)----登錄");
//調(diào)用登錄的方法
User.isLogin=Login.login();
break;
case "3":
System.out.println("抽獎系統(tǒng)----幸運抽獎");
LuckDraw.lukcDraw();
break;
default:
System.out.println("輸入錯誤請重新輸入");
break;
}
}
}
不連接數(shù)據(jù)庫所以模擬一個注冊時用戶信息所存放的位置
public class User {
//用戶名
public static String userName = "";
//密碼
public static String passWord = "";
//幸運數(shù)字
public static int luckNumber = 0;
//用戶的登錄狀態(tài)
public static boolean isLogin = false;
}
注冊功能實現(xiàn)
public class Register {
public static void register() {
System.out.println("請注冊用戶的個人信息");
Scanner scanner = new Scanner(System.in);
System.out.println("用戶名");
//接收用戶名 放在用戶信息中
User.userName = scanner.nextLine();
System.out.println("密碼");
//接收到用戶信息中
User.passWord = scanner.nextLine();
//隨機一個四位的1000-2000的數(shù) 保存到用戶中。
User.luckNumber = (int)(Math.random()*(2000-1000+1)+1000);
//顯示用戶的注冊信息
System.out.println("用戶名"+User.userName);
System.out.println("密碼"+User.passWord);
System.out.println("幸運數(shù)字"+User.luckNumber);
//scanner.close();標(biāo)記:注意scanner 只能關(guān)閉一次 關(guān)閉后在本程序執(zhí)行中 在創(chuàng)建也不能接收鍵盤信息了
}
}
登陸
public class Login {
static int number = 0;//控制循環(huán)輸入密碼三次
public static boolean login() {
System.out.println("請輸入用戶名:");
//接收用戶名
Scanner scanner = new Scanner(System.in);
String userName = scanner.nextLine();
System.out.println("請輸出賬號:");
String passWord = scanner.nextLine();
//判斷用戶名密碼是否匹配
if(userName.equals(User.userName)&&passWord.equals(User.passWord)) {
//登陸成功
System.out.println("登陸成功");
//返回一個登錄狀態(tài)
return true;
}else {
//登錄失敗 有重新登錄三次機會。
number++;
System.out.println("你還有"+(3-number)+"次機會");
if (number !=3) {
//還有登陸的機會
login();
}else {
//三次機會已用 登錄失敗
System.out.println("三次機會已用完 登錄失敗");
}
//寫返回值的時候要保證每一個分支都要有返回值
return false;
}
}
}
抽獎系統(tǒng)邏輯
public class LuckDraw {
//記錄輸入卡號注冊
static int number = 0;
public static void lukcDraw() {
//是否注冊 沒注冊不能抽
if(User.userName.length() ==0 ) {
//沒注冊 下面都不執(zhí)行
System.out.println("你沒注冊");
return;
}
//是否登錄 沒登錄不讓抽
if(!User.isLogin) {
System.out.println("你沒登錄");
return;
}
//如果卡號沒輸對 也不讓抽獎 直接return
if (!isLuckNumber()) {
System.out.println("卡號不對!不能登錄");
return;
}
//真的 可以抽獎了
//定義一個 變量保存中獎的結(jié)果
boolean isLucky = false;
//隨機五個數(shù) 打印出結(jié)果 并判斷是否匹配幸運號碼
//定義一個變量 來保存累加的字符串
String s = "本次幸運的數(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;
}
//判斷是否中獎
if(User.luckNumber==num);
//中獎
isLucky = true;
}
//打印幸運數(shù)字
System.out.println(s);
if (isLucky) {
System.out.println("你中獎了");
}else {
System.out.println("你沒中獎");
}
}
public static boolean isLuckNumber() { //判斷卡號是個輸入正確
//抽獎
System.out.println("請輸入卡號");
Scanner scanner = new Scanner(System.in);
int luckNumber = scanner.nextInt();
//判斷用戶輸入的卡號是不是 這個用戶之前隨機出來的那個數(shù)
if (luckNumber==User.luckNumber) {
System.out.println("輸入正確抽獎馬上運行");
return true;
//卡號相同可以抽獎
}else {
//卡號不相同 重新輸入三次機會
number++;
if (number!=3) {
isLuckNumber();
}else {
System.out.println("三次機會已用盡");
}
return false;
}
}
}
更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot多級緩存實現(xiàn)方案總結(jié)
所謂多級緩存,是指在整個系統(tǒng)架構(gòu)的不同系統(tǒng)層面進行數(shù)據(jù)緩存,以提升訪問速度,多級緩存就是為了解決項目服務(wù)中單一緩存使用不足的缺點,本文我們將給大家總結(jié)了SpringBoot多級緩存實現(xiàn)方案,需要的朋友可以參考下2023-08-08
IDEA 重新導(dǎo)入依賴maven 命令 reimport的方法
這篇文章主要介紹了IDEA 重新導(dǎo)入依賴maven 命令 reimport的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
基于Hibernate中配置文件的學(xué)習(xí)(分享)
下面小編就為大家?guī)硪黄贖ibernate中配置文件的學(xué)習(xí)(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
Springboot多數(shù)據(jù)源配置之整合dynamic-datasource方式
這篇文章主要介紹了Springboot多數(shù)據(jù)源配置之整合dynamic-datasource方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
springboot 默認(rèn)靜態(tài)路徑實例解析
這篇文章主要介紹了springboot 默認(rèn)靜態(tài)路徑實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11

