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. Eclipse中安装JRebel热部署教程

    Eclipse中安装JRebel热部署教程 前言        Eclipse安装JRebel插件可快速实现热部署,节省了大量重启时间,提高开发效率. 本文只介绍Eclipse安装JRebel插件版本 ...

  2. Fortigate防火墙常用命令

    命令结构 #config 对策略,对象等进行配置 #get  查看相关对象的参数 #show 查看配置文件 #diagnose 诊断命令 #execute  常用的工具命令,如ping treacer ...

  3. netty无缝切换rabbitmq、activemq、rocketmq实现聊天室单聊、群聊功能

    netty的pipeline处理链上的handler:需要IdleStateHandler心跳检测channel是否有效,以及处理登录认证的UserAuthHandler和消息处理MessageHan ...

  4. python 35 多线程

    目录 多线程 1. 线程 2. 线程vs进程 3. 开启线程的两种方法. 4. 线程的特性 5. 线程的相关方法 6. join 阻塞 7. 守护线程 daemon 8. 互斥锁 多线程 1. 线程 ...

  5. 马蜂窝视频编辑框架设计及在 iOS 端的业务实践

    (马蜂窝技术公众号原创内容,ID: mfwtech) 熟悉马蜂窝的朋友一定知道,点击马蜂窝 App 首页的发布按钮,会发现发布的内容已经被简化成「图文」或者「视频」. 长期以来,游记.问答.攻略等图文 ...

  6. Leetcode之深度优先搜索&回溯专题-491. 递增子序列(Increasing Subsequences)

    Leetcode之深度优先搜索&回溯专题-491. 递增子序列(Increasing Subsequences) 深度优先搜索的解题详细介绍,点击 给定一个整型数组, 你的任务是找到所有该数组 ...

  7. Mac应用程序无法打开或文件损坏的处理方法你知道吗?

    很多用户在安装Mac软件的时候,经常会遇到提示“xxx.app已损坏,打不开.您应该将它移到废纸篓“或”打不开的xxx.app,因为它来自身份不明的开发者”,如下图的样子: 真的损坏了么?是不是真的要 ...

  8. P1415 拆分数列 DP

    传送门: 题意: 将一个数字串分成许多不同的小串,使得这些小串代表的数字严格递增,要求最后一个数字尽可能地小. 然后满足字典序尽可能大. 思路: 由于最后一个数字要尽可能地小,所以先处理出每个数的L[ ...

  9. gym/101955/problem/E - The Kouga Ninja Scrolls 线段数 维护 切比雪夫距离 2018沈阳icpc

    传送门 思路: 这道题要把给定的每个坐标利用切比雪夫坐标表示,这样两个点的距离就是max(dx,dy),而不是一开始的dx + dy,有利于线段树的维护,又由于询问的是区间的最大差值,限制是两个点是属 ...

  10. 洛谷- P1306 斐波那契公约数 - 矩阵快速幂 斐波那契性质

    P1306 斐波那契公约数:https://www.luogu.org/problemnew/show/P1306 这道题目就是求第n项和第m项的斐波那契数字,然后让这两个数求GCD,输出答案的后8位 ...