IDEA
ATMTest.java
/** * */ package code0407; /** * ATMTest.java Copyright (c) 2016 ChongQing University All rights reserved. */ public class ATMTest { public static void main(String[] args) throws Exception { ATM atm = new ATM(); atm.Welcome(); atm.Load_Sys(); } }
Account.java
/** * */ package code0407; import java.io.*; /** * Account.java Copyright (c) 2016 ChongQing University All rights reserved. */ class Account { private String number = null; // 卡号 private String name = null; // 客户姓名 private String password = null; // 客户密码 private double money = 0.0; // 余额 /***** 构造方法,以生成多个储户信息 ***********/ public Account(String number, String name, String password, double money) { this.number = number; this.name = name; this.password = password; this.money = money; } protected String get_number() { return number; } protected String get_Name() { return name; } protected String get_Password() { return password; } public double get_Money() { return money; } protected void sub_Balance(double mon) { // 余额减少 money -= mon; } protected void add_Balance(double mon) { // 余额增加 money += mon; } }
ATM.java
/** * */ package code0407; /** * ATM.java * Copyright (c) 2016 ChongQing University All rights reserved. */ import java.io.*; import java.util.Scanner; class ATM { Account act; public ATM() { act = new Account("000", "test", "111", 5000); // 生成Account实例 } /*********** 欢迎界面 ***********/ protected void Welcome() { String str = "---------------------------------"; System.out.print(str + "\n"); System.out.print(" 1.取款." + "\n" + " 2.查询." + "\n" + " 3.存款." + "\n" + " 4.退出系统." + "\n"); System.out.print(str + "\n"); } /********** 登陆系统 **********/ protected void Load_Sys() throws Exception { String card, pwd; int counter = 0; BufferedReader br = new BufferedReader(new InputStreamReader(System.in));// 创建标准输入输出流,详见第8章 do { System.out.println("请输入您的卡号:"); card = br.readLine(); // 读取键盘输入信息 System.out.println("请输入您的密码:"); pwd = br.readLine(); if (!isRight(card, pwd)) { System.out.println("您的卡号或密码输入有误."); counter++; } else SysOpter(); } while (counter < 3); System.exit(1); // 应用退出 } /********** 系统操作提示 **********/ protected void SysOpter() throws Exception { int num; System.out.println("请选择您要操作的项目(1-4):"); // BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // num = br.read(); // num为ASICC码转换的整数 Scanner scanner = new Scanner(System.in); num = scanner.nextInt(); switch (num) { case 49: BetBalance(); break; case 50: Inqu_Info(); break; case 51: AddBalance(); break; case 52: Exit_Sys(); break; } System.exit(1); } /********** 信息查询 **********/ protected void Inqu_Info() throws Exception { System.out.print("---------------------\n" + "账号:" + act.get_number() + "\n" + "姓名:" + act.get_Name() + "\n" + "余额:" + act.get_Money() + "\n" + "-----------------------\n"); SysOpter(); } /********** 取款 **********/ public void BetBalance() throws Exception { String str = null, str1; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); do { System.out.println("请输入取款数目:"); str = br.readLine(); double qu = Double.valueOf(str).doubleValue(); // 将字符串转换为double类型 if (qu > act.get_Money()) { System.out.println("余额不足,请重新输入您要取的数目:"); } else { act.sub_Balance(qu); System.out.println("取款成功,您的账户余额为:" + act.get_Money()); Welcome(); SysOpter(); } } while (true); } /********** 存款 **********/ public void AddBalance() throws Exception { String str = null, str1; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); do { System.out.println("请输入存款数目:"); str = br.readLine(); double qu = Double.valueOf(str).doubleValue(); act.add_Balance(qu); System.out.println("存款成功,您的账户余额为:" + act.get_Money()); Welcome(); SysOpter(); } while (true); } /********** 判断卡内是否有钱 **********/ protected boolean isBalance() { if (act.get_Money() < 0) { return false; } return true; } /******** 卡号密码是否正确 ******/ protected boolean isRight(String card, String pwd) { if (act.get_number().equals(card) && act.get_Password().equals(pwd)) return true; else return false; } /********** 结束系统 **********/ protected void Exit_Sys() { System.out.println("感谢您使用本系统,再见!"); System.exit(1); } }