java:模拟ATM取款密码程序

  1. 背景
    假设一个简单的在ATM的取款过程如下:首先提示用户输入密码(password),
    最多只能输入3次,超过3次则提示用户"密码错误,请取卡"交易结束。
    如果用户密码正确,再提示用户输入金额(amount),ATM只能输出100元的纸币,一次取钱数要求最低0元,最高1000元。
    如果用户输入的金额符合上述要求,则打印输出用户取的钱数,最后提示用户"交易完成,请取卡",否则提示用户重新输入金额。假设用户密码是"111111"。

    		打印格式:
    		
    		第一种情况:三次密码输入错误
    		请输入密码:2
    		密码错误,请重新输入:3
    		密码错误,请重新输入:4
    		密码错误,请取卡
    		
    		第二种情况:密码输入正确,可以取款
    		请输入密码:2
    		密码错误,请重新输入:111111
    		请输入取款金额:3000
    		您输入的取款金额有误,请重新输入:999
    		请取走现金:999元
    		交易完成,请取卡.
    
  2. 需求分析
    1.密码的判别次数已经确定,可以用for或者while循环来完成;
    2.在输入金额是不确定的循环次数,可以考虑活用死循环.
    3.其余的就是涉及到密码判定的if条件语句,和输入金额判定的条件语句;

  3. 代码如下

package com.itheima.kuihuabaodian;
import java.util.Scanner;
public class Case05 {
    public static void main(String[] args) {
        Scanner num = new Scanner(System.in);
        int count=3;
        int amount;
        while (count>0){
            System.out.println("请输入密码( 输错"+count+"次后锁卡 ):");
            int password=num.nextInt();
            if(password==111111){
                System.out.println("请输入取款金额(0-100内的整百):");
                while(true){
                    amount=num.nextInt();
                    if (amount%100==0 && amount>=0 && amount<=1000){
                        System.out.println("请取走现金"+amount);
                        System.out.println("交易完成,请取卡.");
                        System.exit(0);
                    }else {
                        System.out.println("请重新输入取款金额(0-100内的整百):");
                    }
                }

            }
            count--;
        }
        System.out.println("密码错误,请取卡.");
    }
}

代码输出:
		"D:\IDEA\IntelliJ IDEA 2019.3.3\jbr\bin\java.exe" "-javaagent:D:\IDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=55199:D:\IDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath D:\IDEA\IDEAcode\baseclass\out\production\day04code com.itheima.kuihuabaodian.Case05
		请输入密码( 输错3次后锁卡 ):
		22222
		请输入密码( 输错2次后锁卡 ):
		9999
		请输入密码( 输错1次后锁卡 ):
		111111
		请输入取款金额(0-100内的整百):
		5555
		请重新输入取款金额(0-100内的整百):
		1000
		请取走现金1000
		交易完成,请取卡.

Process finished with exit code 0

分析:
无.

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值