杰瑞教育5

// 模拟银行系统取款

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("感谢您的使用!");

转载于:https://www.cnblogs.com/rongqingye/p/5727933.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值