Java 小程式:實現一個購物流程的功能(2)
阿新 • • 發佈:2019-01-30
/** *@ author 黃偉 *@ version V1.00 *@ date 2014/4/6 *@ time 15:08 */ import java.util.Scanner; public class Shopping2 { public static void main(String[] args) { /* * 需求:使用者輸入登入,如果登入失敗,繼續重新登入,失敗次數超過三次,退出系統 */ int loginIndex = 0;// 定義一個變數,存放使用者登入失敗的次數 Scanner input = new Scanner(System.in); while (true) { // 展示登入選單 System.out.println("\t\t歡迎使用我行我素購物管理系統1.0版\n"); System.out.print("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"); System.out.println(""); System.out.println("\t\t\t1. 登入系統\n"); System.out.println("\t\t\t2. 退出系統\n"); System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"); // 提示使用者輸入選項 System.out.print("請輸入您的選項:"); int choice1 = input.nextInt(); // 判斷使用者輸入選項是否正確 if (choice1 == 1) {/* 登入系統 */ // 登入系統要實現的功能:提示使用者輸入使用者名稱和密碼 System.out.print("請輸入使用者名稱:"); String username = input.next(); System.out.print("請輸入密碼:"); String password = input.next(); // 判斷使用者輸入的使用者名稱是否為admin,密碼是否為1111 /* 整數判斷可以用==;字串是否相等判斷,用equals方法 */ if ("admin".equals(username) && "1111".equals(password)) { System.out.println("登入成功!"); // 登入成功之後,展示購物系統頁面 while (true) { System.out.println("\t\t 歡迎使用我行我素購物管理系統\n"); System.out.print("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"); System.out.println(""); System.out.println("\t\t\t1. 客 戶 信 息 管 理\n"); System.out.println("\t\t\t2. 購 物 結 算\n"); System.out.println("\t\t\t3. 真 情 回 饋\n"); System.out.println("\t\t\t4. 返回上一級\n"); System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); //輸入相應選項,實現各自功能 System.out.println("請輸入你的選擇:"); int choice2 = input.nextInt(); if (choice2 == 1) { while (true) {// 輸入1,展示客戶資訊管理 System.out.println("我行我素購物管理系統 > 客戶資訊管理\n"); System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); System.out.println(""); System.out.println("\t\t\t1. 顯 示 所 有 客 戶 信 息\n"); System.out.println("\t\t\t2. 添 加 客 戶 信 息\n"); System.out.println("\t\t\t3. 修 改 客 戶 信 息\n"); System.out.println("\t\t\t4. 查 詢 客 戶 信 息\n"); System.out.println("\t\t\t5. 返回上一級\n"); System.out.print("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); System.out.println(""); // 根據客戶資訊管理頁面,再實現顯示客戶資訊功能,新增、修改、查詢等功能後期完善 System.out.println("請輸入你的選擇:"); int choice3 = input.nextInt(); if (choice3 == 1) {//顯示所有客戶資訊 System.out.println("客戶編號\t\t客戶姓名\t\t客戶生日\t\t客戶積分"); System.out.println("1001\t\t\t小貓\t\t\t1992-7-10\t\t20000"); System.out.println("1002\t\t\t小狗\t\t\t1992-6-17\t\t25000"); System.out.println("1003\t\t\t小馬\t\t\t1992-7-10\t\t30000"); System.out.println("1004\t\t\t小狐狸\t\t\t1992-11-1\t\t10000"); System.out.println("1005\t\t\t大象\t\t\t1992-11-17\t\t10000"); System.out.println("請按任意鍵繼續!"); String str1 = input.next(); if (str1 != "\0") {//if語句表示只要輸入的字串不是回車,繼續執行迴圈語句 continue; } } //因部分實現功能的程式碼出現問題,這段先註釋掉,以後再修改 /*else if (choice3 == 2) { System.out.println("歡迎新增客戶!"); System.out.println("請輸入新的客戶名稱(2-8個字元):"); // String name=input.next(); System.out .println("請輸入新客戶的生日(格式:YYYY-MM-DD):"); // int yy=input.nextInt(); // int mm=input.nextInt(); // int dd=input.nextInt(); * if((mm<1||mm>12)){ * System.out.println("新的客戶生日輸入異常,新增失敗"); * System.out.println("請按任意鍵繼續!"); String * str2 = input.next(); if(str2 != "\0"){ * continue; } } System.out.println("請輸入新客戶的積分:"); // long score=input.nextLong(); System.out.println("恭喜,客戶新增成功!"); System.out.println("請按任意鍵繼續!"); String str3 = input.next(); if (str3 != "\0") { continue; } } else if (choice3 == 3) { System.out.println("請輸入您想要修改的客戶編號:"); // long number=input.nextLong(); System.out .println("客戶編號\t\t客戶姓名\t\t客戶生日\t\t客戶積分\n"); // System.out.println(number+"\t\t"+a+"\t\t"+b+"\t\t"+c+"\n"); System.out .println("請選擇你要修改的內容:1. 姓名 2.生日 "); System.out.println("請輸入您的選擇:"); int cho = input.nextInt(); if (cho == 1) { System.out .println("請輸入新的客戶姓名(2-8個字串):"); String str = input.next(); if (str.length() > 1 && str.length() < 9) { System.out.println("修改成功!"); System.out.println("請按任意鍵繼續!"); String str0 = input.next(); if (str0 != "\0") { continue; } } else { System.out .println("請輸入新的客戶生日(格式:YYYY-MM-DD):"); // int yy1=input.nextInt(); int mm1 = input.nextInt(); // int dd1=input.nextInt(); if ((mm1 < 1 || mm1 > 12)) { System.out .println("新的客戶生日輸入異常,新增失敗"); System.out.println("請按任意鍵繼續!"); String str4 = input.next(); if (str4 != "\0") { continue; } } System.out.println("修改成功!"); System.out.println("請按任意鍵繼續!"); String str5 = input.next(); if (str5 != "\0") { continue; } } } } else if (choice3 == 4) { System.out.println("請輸入你要查詢的客戶編號:"); // long number2=input.nextLong(); System.out .println("客戶編號\t\t客戶姓名\t\t客戶生日\t\t客戶積分\n"); // System.out.println(number+"\t\t"+a+"\t\t"+b+"\t\t"+c+"\n"); System.out.println("請按任意鍵繼續!"); String str6 = input.next(); if (str6 != "\0") { continue; } }*/ else { break; } continue; } } // 顯示購物結算頁面 else if (choice2 == 2) { System.out.println("歡迎進入購物系統!"); System.out.println("現有商品如下:"); System.out.println("商品編號\t商品名稱\t\t商品價格 "); System.out.println("1\t\t雲南白藥\t\t¥18.00"); System.out.println("2\t\t小米手機\t\t¥1998.00"); System.out.println("3\t\t小黑\t\t\t¥4998.00"); System.out.println("4\t\t拖鞋\t\t\t¥25.80"); System.out.println("5\t\t醬油\t\t\t¥5.60 "); System.out.println("6\t\t汽車模型\t\t¥350.00"); System.out.println("7\t\t坦克模型\t\t¥400.00"); System.out.println("8\t\t玩具槍\t\t\t¥99.80"); System.out.println("請輸入你要購買的產品編號: "); int number = input.nextInt(); System.out.println("請輸入你要購買的產品數量: "); int count = input.nextInt(); String GoodsName = ""; double price = 0; double totalPrice = 0; // 以下的Switch語句主要實現使用者購買的何種商品以及它的數量 switch (number) { case 1: GoodsName = "雲南白藥"; price = 18.00; totalPrice = count * price; break; case 2: GoodsName = "小米手機"; price = 1998.00; totalPrice = count * price; break; case 3: GoodsName = "小黑"; price = 4998.00; totalPrice = count * price; break; case 4: GoodsName = "拖鞋"; price = 25.00; totalPrice = count * price; break; case 5: GoodsName = "醬油"; price = 5.60; totalPrice = count * price; break; case 6: GoodsName = "汽車模型"; price = 350.00; totalPrice = count * price; break; case 7: GoodsName = "坦克模型"; price = 400.00; totalPrice = count * price; break; case 8: GoodsName = "玩具槍"; price = 99.80; totalPrice = count * price; break; default: System.out.println("對不起,沒有你需要的商品。"); break; } //顯示使用者購買的商品資訊以及付款情況 System.out.println("尊敬的使用者:小貓"); System.out.println("產品名稱\t產品單價\t產品數量\t產品總價"); System.out.println(GoodsName + "\t\t¥" + price+ "\t\t" + count + "\t\t¥" +(float)(totalPrice)); System.out.println("您購買的商品總價為:"+ (float)(totalPrice)); System.out.println("按您當前的積分,您的折扣為:0.85"); double pay = totalPrice * 0.85; //提示使用者付款,付款不夠,繼續付款 System.out.println("您的應付款為:"+(float)(pay)); System.out.print("請付款:"); while(true){ double money = input.nextDouble(); if (money >= pay) { System.out.println("付款成功!"); System.out.println("找零:"+ (float)(money - pay)); System.out.println("歡迎下次光臨!"); break; } else {//付款不足,執行迴圈結構 System.out.println("您付款金額不足,請重新付款:"); continue; } } System.out.println("請按任意鍵繼續!"); String str11 = input.next(); if (str11 != "\0") { continue; } } // 顯示真情回饋頁面 else if (choice2 == 3) { while (true) { System.out.println("我行我素購物管理系統 > 真情回饋\n"); System.out.print("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); System.out.println(""); System.out.println("\t\t\t1. 幸 運 大 放 送\n"); System.out.println("\t\t\t2. 幸 運 抽 獎\n"); System.out.println("\t\t\t3. 生 日 問 候\n"); System.out.println("\t\t\t4. 返 回 上 一 級\n"); System.out.print("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); System.out.println(""); //按頁面所示,輸入相應選項 System.out.println("請輸入您的選擇:"); int cho1 = input.nextInt(); if (cho1 == 1) { System.out.println("積分最高的客戶是:"); System.out.println("客戶編號\t\t客戶姓名\t\t客戶生日 "); System.out.println(" "); System.out.println("恭喜以上使用者,獲得一個價值¥50.00的話費充值卡"); System.out.println("請按任意鍵繼續!"); String str6 = input.next(); if (str6 != "\0") { continue; } } else if (cho1 == 2) { System.out.println("幸運客戶是:"); System.out.println("客戶編號\t\t客戶姓名\t\t客戶生日 "); System.out.println(" "); System.out .println("恭喜以上使用者,獲得一個價值¥13.50的黑人牙膏"); System.out.println("請按任意鍵繼續!"); String str7 = input.next(); if (str7 != "\0") { continue; } } else if (cho1 == 3) { System.out.println("對不起,今天沒有過生日的客戶!"); System.out.println("請按任意鍵繼續!"); String str8 = input.next(); if (str8 != "\0") { continue; } } else { break; } continue; } } else { break; } continue; } } else { loginIndex++; if (loginIndex > 2) { System.out.println("輸入錯誤次數已經超過限制,傻逼,警察叔叔來找你了。。。"); System.exit(1); } System.out.println("呀咩碟,大傻逼啊,使用者名稱或者密碼有誤,請重新登入"); continue; } } else if (choice1 == 2) {/* 退出系統 */ System.out.println("哈大喜哇,下次光臨"); System.exit(1);// 系統退出 } else {/* 大傻逼啊,沒有這個選項 */ System.out.println("呀咩碟,大傻逼啊,沒有這個選項,請重新登入"); continue; } } } }
關於此段程式碼,是對上次的補充,如果看過我上次寫的程式碼,你會發現出現最大的不同是迴圈結構的語句全部換成while語句了,上次寫的for語句,另外對於返回上一級的程式碼用到了break語句和continue語句,前者是執行跳出迴圈動作,而後者則是結束當前語句,從迴圈開始語句開始執行。
程式中用到了很多if-else-else if 語句,應注意條件判斷的依據,熟悉箇中關係.
最後,還得說聲抱歉,因部分知識掌握不深,購物功能尚有部分未實現,在下次寫的部落格-實現購物功能(3)中全部實現,盡請各位期待。
以下是程式執行的介面:
1.登入系統,設使用者名稱和密碼分別為admin和1111 。
2 . 選擇顯示所有客戶資訊,其他功能下次再實現(抱歉啊!)
3. 選擇2,實現購物結算:
4. 選擇3,實現真情回饋(關於使用者資訊未打印出,後期改善)
5.實現返回上一級功能:
6. 返回上一級並退出系統: