Account.java

package ATM;//信1705-1 20173628 赵路仓

public class Account {
private int balance;//余额
private int amount;//取钱
private String ID;//卡号
private String passWord;//密码
private String name;//客户姓名
private String inputNum;//输入账户
private String inputWord;//输入密码

public double getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
public double getMoney() {
return amount;
}
public void setMoney(int money) {
this.amount = money;
}
public String getCardsNum() {
return ID;
}
public void setCardsNum(String cardsNum) {
this.ID = cardsNum;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getInputNum() {
return ID;
}
public void setInputNum(String inputNum) {
this.ID = inputNum;
}
public String getInputWord() {
return ID;
}
public void setInputWord(String inputWord) {
this.inputWord = inputWord;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

AccountManager.java

package ATM;

import java.util.Scanner;

public class AccountManager {
Input input = new Input();

public void choose(Account atm) {
input.out();
System.out.println("请选择您要操作的项目(1-4):");
Scanner sc1 = new Scanner(System.in);
int num = sc1.nextInt();
switch (num) {
case 1:
getMoney(atm);
break;
case 2:
query(atm);
break;
case 3:
setPasswrod(atm);
break;
case 4:
exit();
break;
default:
error();
break;
}
}
public boolean getMoney(Account atm){
// input.out();
System.out.println("***************************************************************");
System.out.println("欢迎使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("请输入取款金额;");
System.out.println("****************************************************************");
for(int i= 0;i<3;i++){
Scanner sc = new Scanner(System.in);
atm.setMoney(sc.nextInt());
if(atm.getMoney() > atm.getBalance()){
System.out.println("超过已有的钱数,请重新输入您要取的数目:");

}else{

System.out.println("取款成功,请收好您的钱");
return true;
}
}
return false;
}

public void query(Account atm){
System.out.println("客户账号:"+atm.getCardsNum());
System.out.println("客户名:"+atm.getName());
System.out.println("客户账户余额:"+atm.getBalance());
}

public void setPasswrod(Account atm){
System.out.println("请重新输入密码:");
Scanner sc1 = new Scanner(System.in);
String num = sc1.next();
atm.setPassWord(num);
System.out.println("您的密码为:"+"\n"+atm.getPassWord());
}

public void exit(){

System.out.println("感谢您使用本系统,欢迎下次再来,再见!");
System.exit(0);
}

public void error(){
//shurude shuju
System.out.println("输入的数据有误");
}
}

input.java

package ATM;

import java.util.Scanner;

public class Input {
public void out(){
System.out.println("***************************************************************");
System.out.println("欢迎使用中国工商银行自助柜员系统");
System.out.println(" ");
System.out.println("*********************************************");
System.out.println("1.取款.\n2.>查询信息.\n3.密码设置.\n4.退出系统.");
}
public boolean input(String card, String password){

for (int i = 0; i < 3; i++) {
System.out.println("***************************************************************");
System.out.println("欢迎使用中国工商银行自动柜员系统");
System.out.println("***************************************************************");
System.out.println("\t请输入您的账户:");
System.out.println("***************************************************************");
Scanner sc1 = new Scanner(System.in); // 输入卡号
String inputCard = sc1.next();
System.out.println("***************************************************************");
System.out.println("欢迎使用中国工商银行自动柜员系统");
System.out.println("***************************************************************");
System.out.println("\t请输入您的密码:");
System.out.println("***************************************************************");
Scanner sc2 = new Scanner(System.in); //输入密码
String inputWord = sc2.next();

if (card == inputCard && password == inputWord) {
return true;
}else {
if (i == 2) {
System.out.println("对不起,输入错误已达三次,您的卡已经被没收");
}else {
System.out.println("您的卡号或密码输入有误.");
}
}
}
return false;
}
}

Testdocuments.java

package ATM;

public class Testdocumets {

public static void main(String[] args) {
Account atm = new Account();
atm.setBalance(2000);
atm.setCardsNum("20173628");
atm.setPassWord("20173628");
atm.setName("赵路仓");

Input input = new Input();
input.out();
boolean result = input.input(atm.getCardsNum(), atm.getPassWord());

AccountManager operation = new AccountManager();
if (result) {
operation.choose(atm);
}
}
}

Atm 测试的更多相关文章

  1. [CareerCup] 12.6 Test an ATM 测试一个自动取款机

    12.6 How would you test an ATM in a distributed banking system? 这道题问我们如何来测试一个自动取款机,我们首先要询问下列问题: - 谁来 ...

  2. JAVA Atm测试实验心得

    通过一个假期的自学,完成了老师布置的样卷任务.使用Escipse编写一个学生成绩的管理系统. 一开始两眼摸黑,通过观看Java课程的视频,地址:https://www.bilibili.com/vid ...

  3. 模拟ATM机将输入的数据插入数据库

    ATM抽象类 public abstract class ATM { private double balance; private String idcard; private String pas ...

  4. java 使用线程做一个简单的ATM存取款实例.(转)

    线程 Thread 类,和 Runable 接口 比较两者的特点和应用领域. 可以,直接继承线程Thread类.该方法编写简单,可以直接操作线程,适用于单重继承情况,因而不能在继承其他类 实现Runn ...

  5. java测试ATM自助操作系统

    开学第一周系主任安排了一项测试,测试要求:模拟ATM自助取款机用文件进行存储账户信息,密码等,并进行存款取款,转账,查询记录等操作,而且要进行文件的读取与录入. 这是一个ATM自助取款的操作系统,进行 ...

  6. Java课堂测试--实现ATM的基本操作体会

    9月20的周四的Java课堂第一节课上就是有关于实现ATM的考试内容,在实现的过程中我了解到自己本身还是有很多的不足之处,例如在实现工程方面的相似性上面还有些许就的欠缺,再者就是回宿舍拿电源的原因导致 ...

  7. Java测试笔记(ATM)

    本次Java测试主要是做一个与ATM相似的系统,用文本文件来作为用户数据库,实现存款.取款.转账.修改密码.查询余额的功能.在做这次测试之前老师并没有讲解与Java相关的知识,所以这就需要我们自学Ja ...

  8. 关于课堂测试ATM系统的总结

    第一节课就是考试,是要求用Java语言编写模仿ATM的系统操作,说实话真的好难,Java语言,王主任是让我们自学的,然后就让我们写一个这比较大的程序,好难,也可能是我太笨了吧... 不过话说回来,说到 ...

  9. ATM开学测试(未完成)

    package ATM_design; //信1705-2 20173456 张浩 import java.util.*; import java.io.File; import java.io.Fi ...

随机推荐

  1. 从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之四Nlog记录日志至数据库

    为什么要进行日志记录呢?为什么要存至数据库呢?只能说日志记录是每个系统都应当有的. 好的日志记录方式可以提供我们足够多定位问题的依据.查找系统或软件或项目的错误或异常记录.程序在运行时就像一个机器人, ...

  2. Python之高阶函数如何理解?

    我们先要了解一下什么是所谓的高阶函数: 看定义:什么是高阶函数? 高阶函数:我们知道一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),如果满足 ...

  3. python 27 异常处理

    目录 异常处理 1. 错误分类 2. 异常 3. 异常处理 4. 异常处理的两种方法 5. try的结构 5.1 结构一:单分支结构 5.2 结构二:多分支结构 5.3 结构三:万能异常 5.4 结构 ...

  4. Delphi - cxGrid字段类型设定为ComboBox 并实现动态加载Item

    cxGrid设定字段类型为ComboBox 在cxGrid中选中需要设定的字段: 单击F11调出属性控制面板,在Properties下拉选项中选中ComboBox,完成字段类型的设定. cxGrid ...

  5. dataGrip连接数据库失败[08001]的一种可能原因

      我使用的是mac系统,并且由于机型较老,容量不高,为减轻系统负荷,没有设置开机自动启动MYSQL服务.这导致我在一次重启后,重新开启服务,然后就出现了dataGrip连接不上数据库: 在网上查找相 ...

  6. ccflow关于流程引擎的父子流程的基本概念

    关键字:驰骋BPM jflow,ccflow, 驰骋工作流引擎 父子流程概念:在管理活动中,通用的部分,公用的部分,可以被重复执行的部分的流程管理活动我们把他独立出来,成为子流程,可以被其他流程的管理 ...

  7. poj 3177 Redundant Paths(tarjan边双连通)

    题目链接:http://poj.org/problem?id=3177 题意:求最少加几条边使得没对点都有至少两条路互通. 题解:边双连通顾名思义,可以先求一下连通块显然连通块里的点都是双连通的,然后 ...

  8. CF990C Bracket Sequences Concatenation Problem 思维 第五道 括号经典处理题目

     Bracket Sequences Concatenation Problem time limit per test 2 seconds memory limit per test 256 meg ...

  9. mariadb 离线安装

    [root@localhost local]# cd /var/local[root@localhost local]# lsmariadb[root@localhost local]# cd /ma ...

  10. Spotlight on Oracle注册码破解(亲测可用)

    了解到该工具监控十分强大,该工具优点: 我就是为了监控一个Oracle数据库,查阅各种资料,真是费了十牛二虎之力,才破解完成.#_# 在客户端安装好了,连接监控的服务器,提示得要注册码,这外国的软件基 ...