傑瑞教育5

來源:互聯網
上載者:User

標籤:

// 類比銀行系統取款

System.out.println("請輸入密碼:");

for (int i = 1; i <= 4; i++) {

if (i == 4) {

System.out.println("密碼錯誤,請取卡!");

return;

}

int password = reader.nextInt();

if (password == 111111) {

System.out.println("請輸入金額:");

break;

} else {

System.out.println("請輸入密碼:");

}

}

int amount = reader.nextInt();

while (true) {

if (amount % 100 == 0 && amount > 0 && amount < 1000) {

System.out.println("您已取出:" + amount + "元");

System.out.println("交易完成,請取卡!");

break;

} else {

System.out.println("您輸入的 金額不合法,請重新輸入:");

amount = reader.nextInt();

continue;

}

}

// 求出4家店的最低手機價格

System.out.println("第一家店的價格:");

int a = reader.nextInt();

System.out.println("第二家店的價格:");

int b = reader.nextInt();

System.out.println("第三家店的價格:");

int c = reader.nextInt();

System.out.println("第四家店的價格:");

int d = reader.nextInt();

int min = a;

if (b < min) {

min = b;

}

if (c < min) {

min = c;

}

if (d < min) {

min = d;

}

System.out.println(min);

System.out.println("請輸入4家店的價格");

int minMoney = 0;

for (int i = 1; i < 5; i++) {

System.out.println("第" + i + "家店的價格:");

int money = reader.nextInt();

if (money <= 0) {

System.out.println("輸入不合法,請重新輸入!");

i--;

continue;

}

if (i == 1 || money < minMoney) {

minMoney = money;

}

}

System.out.println("最低價格為:" + minMoney);

 

// 古典問題:兔子(斐波那契數列)

int i;

int m[] = new int[24];

m[0] = m[1] = 1;

for (i = 0; i < 24; i++) {

if (i == 0 || i == 1) {

System.out.println("第" + (i + 1) + "個月月兔子數量為:2隻");

} else {

m[i] = m[i - 1] + m[i - 2];

System.out.println("第" + (i + 1) + "個月兔子數量為:" + 2 * m[i] + "只");

}

}

 

// 輸入任一一個小於10的正整數,求出它的階乘,並用一句話輸出。

int jie = 1;

System.out.println("請輸入一個正整數:");

int num = reader.nextInt();

while (num < 0) {

System.out.println("您輸入的不是正整數,請重新輸入!");

num = reader.nextInt();

}

for (int i = 1; i <= num; i++) {

jie *= i;

}

System.out.println("階乘為:" + jie);

輸入任一一個小於10的正整數,求出它的階乘和,並用一句話輸出。

int jie = 1;

int sum = 0;

System.out.println("請輸入一個正整數:");

int num = reader.nextInt();

while (num < 0) {

System.out.println("您輸入的不是正整數,請重新輸入!");

num = reader.nextInt();

}

for (int i = 1; i <= num; i++) {

jie *= i;

sum += jie;

}

System.out.println("階乘為:" + jie + "階乘和為:" + sum);

 

需求描述:假設一個簡單的ATM機的取款過程為:首先提示使用者輸入密碼(password),假設預設密碼為111111,最多隻能輸入3次,超過3次則提示使用者“密碼錯誤,請取卡”,結束交易。

 如果使用者密碼正確,再提示使用者選擇金額(amount),“請輸入0到6中任一數字選擇對應錢數:0 手動輸入金額,1 100元, 2 300元,3 500元, 4 1000元, 5 3000元, 6 5000元”。

 輸入數字如果錯誤,提示“輸入錯誤,是否繼續 Y/N”,選擇Y重新提示輸入錢數編號,選擇N提示“輸入錯誤,請取卡!”。選擇數字為1到6,列印對應錢數,

並提示“交易完成,請取卡”。選擇數字0,ATM機只能輸出100元紙幣,自訂錢數要求最低為100元,最高為1000元。如果使用者輸入的金額符合上述要求,則列印輸出使用者取的錢數,並提示“取款完成,是否繼續Y/N”;否則輸出一句話“金額錯誤,是否繼續 Y/N”,如果使用者輸入Y,提示使用者重新選擇取款金額,如果使用者輸入 N,列印“交易取消,請取卡!”

 ps:取款成功後,應該提示使用者是否繼續,總取款金額不能超過2萬

 

  1. 驗證密碼。

①    密碼正確,繼續執行下面的操作。

②    密碼錯誤3次,return。

  1. 取款操作。全部包含在while迴圈內部。

①    提示選擇編號。

②    根據編號給money賦值。用switch結構實現。

1~6:直接給money賦固定值。

0:手動賦值操作。

③    驗證取款是否成功。money代表本次取款金額,moneySum代表本次取款之前的總金額。判斷moneySum+money是否>20000,3種情況:如大於20000,意味著本次取款超額,但moneySum之前並不足20000,繼續下次迴圈;如等於20000,取完本次money後,剛好滿額,money可以加到moneySum上,然後return;如小於20000,取完本次money後,仍未達到上限,money可以加到moneySum上,繼續下次迴圈。

④    驗證是否繼續。while-if結構實現,有3種情況:Y/y,將小迴圈break,繼續執行取款大迴圈。N/n,直接return,停止所有操作。其他符號:continue,繼續執行小迴圈,重複輸入Y/N。

 

 

Scanner in = new Scanner(System.in);

System.out.println("***********歡迎使用ATM機取款業務**********");

       //驗證密碼

       int i = 1;

       for (; i <= 3; i++) {

           System.out.print("請輸入密碼:");

           int pwd = in.nextInt();

           if (pwd == 111111) {

              System.out.println("密碼輸入正確!");

              break;

           }

       }

       if (i>3) {

           //如果i大於3,表示3次輸入密碼全部錯誤。

           System.out.println("密碼錯誤3次!請取卡!");

           return;

       }

System.out.println("************請根據序號進行取款************");

       //取款操作

       int moneySum = 0;//取款總金額

       int money = 0;//本次取款金額

       while (true) {

           System.out.println("0-手動輸入金額");

           System.out.println("1-100元\t\t2-300元\t\t3-500元");

           System.out.println("4-1000元\t\t5-3000元\t\t6-5000元");

           System.out.print("請選擇:");

           int chooseNum = in.nextInt();

           switch (chooseNum) {

           case 1:

              money = 100;

              break;

           case 2:

              money = 300;

              break;

           case 3:

              money = 500;

              break;

           case 4:

              money = 1000;

              break;

           case 5:

              money = 3000;

              break;

           case 6:

              money = 5000;

              break;

           case 0:

              while (true) {

                  System.out.print("請輸入取款金額:");

                  money = in.nextInt();

                  if (money>=100&&money<=1000&&money%100==0) {

                     break;

                  }else{

                     System.out.print("您輸入的金額不合法,");

                     continue;

                  }

              }

              break;

           default:

              System.out.println("序號選擇錯誤!");

              break;

           }

          

           //驗證總取款金額是否超過20000

           if (moneySum+money<20000) {

              System.out.print("取款成功,本次取款"+money+"元,");

              moneySum += money;

              System.out.println("總取款"+moneySum+"元");

           }else if(moneySum+money == 20000){

              System.out.print("取款成功,本次取款"+money+"元,");

              moneySum += money;

              System.out.println("總取款"+moneySum+"元");

              System.out.print("今日取款已達上限,情取卡!");

              break;

           }else{

              System.out.println("取款失敗!每日取款上限20000元,您已取"

                     +moneySum+"元,還可取"+(20000-moneySum)+"元");

           }

 

           //驗證是否繼續

           while (true) {

              System.out.print("\n是否繼續(Y/N):");

              char isGoON = in.next().charAt(0);

              if(isGoON==‘y‘||isGoON==‘Y‘){

                  break;

              }else if(isGoON==‘n‘||isGoON==‘N‘){

                  return;

              }else{

                  System.out.print("輸入有誤,請選擇Y-繼續,N-退出,");

              }

           }

       }

       System.out.println("感謝您的使用!");

傑瑞教育5

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.