• 杰瑞教育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元 2-300元 3-500元");

               System.out.println("4-1000元 5-3000元 6-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(" 是否继续(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("感谢您的使用!");

  • 相关阅读:
    【转载】总结一下Android中主题(Theme)的正确玩法
    Android获唯一标识
    AS问题解决系列3—iCCP: Not recognizing known sRGB profile
    AS问题解决系列1—Unable to execute DX错误
    Android Studio Error2
    Android Error
    NAT简单介绍
    redis缓存工具Jedis进行跨jvm加锁(分布式应用)--不幸暂弃用--能够做第三方锁使用
    工作总结1.怎样高效跟客户确定需求?
    Sqoop处理Clob与Blob字段
  • 原文地址:https://www.cnblogs.com/rongqingye/p/5727933.html
Copyright © 2020-2023  润新知