博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ATM机
阅读量:4980 次
发布时间:2019-06-12

本文共 2861 字,大约阅读时间需要 9 分钟。

需求:模拟ATM机的存取钱功能

用户类
/**
* 用户类
* @author hp
*
*/
public class Person {
String name=”zs”;//姓名
int pwd=123456;//密码
}
import java.util.Scanner;
ATM类
/**
* ATM类
*
* @author hp
*
*/
public class ATM {
double lastMoney = 1000;// 账户余额

/** * 插卡开始 */public void start() {    boolean flag = login();    if (flag) {        Scanner sc = new Scanner(System.in);        int num = 0;        do {            System.out.println("1.查询\t" + "2.存款\t" + "3.取款\t" + "0.退出");            System.out.print("请选择你需要办理的业务:");            num = sc.nextInt();            switch (num) {            case 0:                exit();                break;            case 1:                showMoney();                break;            case 2:                addMoney();                break;            case 3:                takeMoney();                break;            default:                System.out.println("您输入数字有误!");                break;            }        } while (num != 0);    }}/** * 登录 */public boolean login() {    Person p = new Person();    boolean flag = false;    Scanner sc = new Scanner(System.in);    for (int i = 0; (i < 3) && (!flag); i++) {        System.out.println("请输入用户名:");        String nowName = sc.next();        if (p.name.equals(nowName)) {            for (int j = 0; j < 3; j++) {                System.out.println("请输入密码:");                int nowPWD = sc.nextInt();                if (nowPWD == p.pwd) {                    System.out.println("登录成功");                    flag = true;                    break;                } else {                    System.out.println("密码错误,您还有" + (2 - i) + "次机会!");                    i++;                }            }        } else {            System.out.println("用户名错误,您还有" + (2 - i) + "次机会!");        }    }    return flag;}/** * 查询方法 */public void showMoney() {    System.out.println("****\n当前余额为:" + lastMoney + "****\n");}/** * 存钱方法 */public void addMoney() {    Scanner sc = new Scanner(System.in);    System.out.print("请输入存款金额:");    double money = sc.nextDouble();    if (money % 100 == 0) {        lastMoney += money;        System.out.println("存款成功");    } else {        System.out.println("存款失败");    }    System.out.println("\n****当前余额为:" + lastMoney + "****");}/** * 取钱方法 */public void takeMoney() {    Scanner sc = new Scanner(System.in);    System.out.print("请输入取款金额:");    double money = sc.nextDouble();    if (money > lastMoney || money % 100 != 0) {        System.out.println("取款失败");    } else {        lastMoney -= money;        System.out.println("取款成功");    }    System.out.println("\n****当前余额为:" + lastMoney + "****\n");}/** * 退出方法 */public void exit() {    System.out.println("取卡,谢谢使用!");}

}

ATM测试类
/**
* ATM测试类
*
* @author hp
*
*/
public class ATMTest {
public static void main(String[] args) {
ATM atm = new ATM();
atm.start();
}
}
运行图
这里写图片描述

转载于:https://www.cnblogs.com/wangqilong/p/8279808.html

你可能感兴趣的文章
实战c++中的vector系列--再谈vector的insert()方法(都是make_move_iterator惹的祸)
查看>>
每日一小练——求质数
查看>>
LeetCode Add Binary
查看>>
字符串处理:如何实现字符串的反转
查看>>
mycat mysql读写分离
查看>>
使用 XMPP 构建一个基于 web 的通知工具
查看>>
primary key与unique的区别
查看>>
【基础】数字三角形
查看>>
马的遍历
查看>>
Operation is not valid due to the current state of the object解决方法
查看>>
《程序是怎样跑起来的》第三章有感
查看>>
Computer Networking: Application layer
查看>>
2.HTML+CSS制作一闪一闪亮晶晶的星星(stars)
查看>>
c语言实现队列举例
查看>>
线程中访问控件
查看>>
L1-048. 矩阵A乘以B
查看>>
进程调度之FCFS算法(先来先运行算法)
查看>>
题目1419:文献排序----包含空格的字符串的输入和排序;toLow()函数没有改变字符串本身;gets()得多写一次,可能是为了接受回车;...
查看>>
如何解决vs2012出现无法启动IIS Express Web服务器的问题
查看>>
python中得到shell命令输出的方法
查看>>