ATM测试总结报告
package manage;//信1905-1 张国强 20193996
import java.util.Scanner;
import java.text.SimpleDateFormat;
import java.util.Date;
class Account
{
private String accountID;
private String accountname;
private String operatedate;
private int operatetype;
private String accountpassword;
private int accountbalance;
private int amount;
public String get_accountID()
{
return accountID;
}
public String get_accountname()
{
return accountname;
}
public String get_operatedate()
{
return operatedate;
}
public int get_operatetype()
{
return operatetype;
}
public String get_accountpassword()
{
return accountpassword;
}
public int get_accountbalance()
{
return accountbalance;
}
public int get_amount()
{
return amount;
}
public void set_accountID(String a)
{
accountID=a;
}
public void set_accountname(String a)
{
accountname=a;
}
public void set_operatedate(String a)
{
operatedate=a;
}
public void set_operatetype(int a)
{
operatetype=a;
}
public void set_accountpassword(String a)
{
accountpassword=a;
}
public void set_accountbalance(int a)
{
accountbalance=a;
}
public void set_(int a)
{
amount=a;
}
Account(String accountID,String accountname,String accountpassword,int accountbalance)
{
this.accountID=accountID;
this.accountname=accountname;
this.accountpassword=accountpassword;
this.accountbalance=accountbalance;
}
public void accountlist(String accountID,String accountname,String operatedate,int operatetype,int amount)
{
this.accountID=accountID;
this.accountname=accountname;
this.operatedate=operatedate;
this.operatetype=operatetype;
this.amount=amount;
}
}
public class AccountManager {
static int di;
static Scanner input=new Scanner(System.in);
static Account m[]=new Account[5];
static int length=5;
static void chushi()
{
m[0]=new Account("20190001", "qwe","123456",5123);
m[1]=new Account("20190002", "asd","654321",5166);
m[2]=new Account("20190003", "fgh","112233",9658);
m[3]=new Account("20190004", "uio","224466",1230);
m[4]=new Account("20190005", "jkl","445566",1504);
}
static public void faceid()//账号界面
{
System.out.println("****************************************************************");
System.out.println(" 欢迎使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入您的账号:\n");
System.out.println("****************************************************************");
}
static public void judgeid()//判断账户
{
String p;
int qq=0;
p=input.next();
int width;
width=p.length();
if(width!=8)
{
System.out.println("该卡不是工行卡");
}
for(int i=0;i<length;i++)
{
if(p.equals(m[i].get_accountID()))
{
qq=1;
di=i;
facepassword();
judgepassword();
}
}
if(qq==0)
{
System.out.println("该账号不存在");
}
}
static public void facepassword()//密码界面
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入您的密码:\n");
System.out.println("****************************************************************");
}
static public void judgepassword()//判断密码是否正确
{
String password;
password=input.next();
for(int i=0;i<3;i++)
{
if(password.equals(m[di].get_accountpassword()))
{
zhuface();
break;
}
else
{
System.out.println("密码录入错误");
}
if(i==3)
{
System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
faceid();
}
}
}
static public void zhuface()//主界面
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println("\t\t\t1.存款\n\t\t\t2.取款\n\t\t\t3.转账汇款\n\t\t\t4.修改密码\n\t\t\t5.查询余额\n");
System.out.println("****************************************************************");
}
static public void chance()//选择
{
int ss;
for(;;) {
ss=input.nextInt();
m[di].set_operatetype(ss);
switch(ss)
{
case 1:cun();break;
case 2:qu();break;
case 3:zhuan();break;
case 4:xiugai();break;
case 5:chaxun();break;
}
System.out.println("输入q返回,不返回输入continue");
String kk;
kk=input.next();
if(kk.equals("q"))
{
faceid();
judgeid();
chance();
}
else {
zhuface();
}
}
}
static public void cun()//存钱
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入存款金额:\n");
System.out.println("****************************************************************");
double l;
l=input.nextDouble();
if(l-(int)l==0)
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户存款操作成功。\n当前账户余额为:"+((int)l+m[di].get_accountbalance()));
System.out.println("****************************************************************");
m[di].set_accountbalance((int)l+m[di].get_accountbalance());
}
else
{
System.out.println("输入金额有误");
}
}
static public void qu()//取钱
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户每日可以支取2万元。\n1、100元\r\n" +
"2、500元\r\n" +
"3、1000元\r\n" +
"4、1500元\r\n" +
"5、2000元\r\n" +
"6、5000元\r\n"+"7、其他金额\r\n" +
"8、退卡\r\n" +
"9、返回");
System.out.println("****************************************************************");
int qq;
qq=input.nextInt();
int mm = 0;
switch(qq)
{
case 1:mm=100;break;
case 2:mm=500;break;
case 3:mm=1000;break;
case 4:mm=1500;break;
case 5:mm=2000;break;
case 6:mm=5000;break;
case 7:
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入取款金额:");
int ee;
ee=input.nextInt();
System.out.println("****************************************************************");
if(m[di].get_accountbalance()<ee)
{
System.out.println("账户余额不足");
}
else
{
m[di].set_accountbalance(m[di].get_accountbalance()-qq);
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户取款操作"+ee+"元成功。");
System.out.println(" 当前账户余额为:"+m[di].get_accountbalance());
}
break;
case 8:
faceid();
judgeid();
chance();
break;
case 9:
faceid();
judgeid();
chance();
break;
}
if(qq==1||qq==2||qq==3||qq==4||qq==5||qq==6)
{
if(m[di].get_accountbalance()<mm)
{
System.out.println("账户余额不足");
}
else {
m[di].set_accountbalance(m[di].get_accountbalance()-qq);
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户取款操作"+mm+"元成功。");
System.out.println(" 当前账户余额为:"+m[di].get_accountbalance());
}
}
}
static public void zhuan()//转账
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入转账账户:\n");
System.out.println("****************************************************************");
String ff;
ff=input.next();
int qian=0;
int ww=0;int dd = 0;
for(int i=0;i<5;i++)
{
if(ff.equals(m[i].get_accountID()))
{
ww=1;dd=i;
}
}
if(ww==0)
{
System.out.println("该账户不存在");
}
else
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入转账金额;");
System.out.println("****************************************************************");
qian=input.nextInt();
if(qian>m[di].get_accountbalance())
{
System.out.println("账户余额不足");
}
else
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println("请确认是否向*"+m[dd].get_accountID().substring(1,8)+"转账"+qian+"元");
System.out.println("****************************************************************");
m[dd].set_accountbalance(m[dd].get_accountbalance()+qian);
m[di].set_accountbalance(m[di].get_accountbalance()-qian);
}
}
}
static public void xiugai()//修改密码
{
for(;;)
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入当前密码:\n");
String ss;
ss=input.next();
if(ss.equals(m[di].get_accountpassword()))
{
System.out.println(" 请输入修改密码:");
String s1;
s1=input.next();
System.out.println(" 请输入修改密码:");
String s2;
s2=input.next();
if(s1.equals(s2))
{
m[di].set_accountpassword(s1);
break;
}
else
{
System.out.println("修改密码与确认密码不一致");
}
}
else
{
System.out.println("原密码错误");
}
System.out.println("****************************************************************");
}
}
static public void chaxun()//查询
{
System.out.println("****************************************************************");
System.out.println(" 欢迎"+m[di].get_accountname()+"使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户余额为:\n"+m[di].get_accountbalance());
System.out.println("账户清单信息为:");
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern("yyyy-MM-dd");
Date date = new Date();// 获取当前时间
System.out.println("现在时间:" + sdf.format(date));
System.out.println("****************************************************************");
}
public static void main(String []args)
{
faceid();
chushi();
judgeid();
chance();
}
}
截图




总结:
今天进行了Java开学测试。编译了一个关于ATM的程序。因为在平时练习中编写的程序都是比较短的。所以在看到这个程序的时候是比较慌。开始的时候没有理清头绪,开始也没有身体就直接开始敲基本数据。这样肯定就感觉思路不是很清晰。 后来就停下来认真的审了题。首先弄明白了这个题要建两个类。首先建立了一个account类。然后又建了一个accountmanage类。在account类中,我定义了基本的数据变量。并对这些数据变量。进行了,做出设置和得到的函数。 在这个程序中,遇到的问题有,首先,我对文件的操作不是十分明确。我承认在自学Java的时候,对于文件的操作不是十分熟悉。所以我在写这个程序的时候采用了数组的方法。在程序的开头,我定义了一个acount数组。先对数组进行了初始化。利用构造函数。对数组初始化了五组数据。在这一点上也遇到了一些问题。开始没有用构造函数。使用了一个。不同函数对其数据进行赋值。但是没有成功。然后便采用了构造函数的方法。 接下来我认为这个程序比较困难的一点就是,要在不同功能之间来回切换。这就需要我有清晰的思路。对程序有一个整体的把握。在编译时老师给我们提出的意见。鉴于我们先搭建整个框架,然后再添加其中的细节。这却是是做这种工程的有效方法。在编译时,为了方便我将。这个单独的页面都分成。都编译成单独的小函数。方便使用时调用。把取款,存款,转账和查询都分别编译成函数。因为在这个程序中使用。存款,取款和转账。还有账户界面之间要相互进行切换。于是我就根据题意在每个函数中给他们留下接口。F如果存款不成功的话。返回账户界面。我就会在存款函数中调用界面函数。从而能够返回账号界面。其余都采用了这种方式。 这个程序没有得满分原因有以下几点。首先,我对题目的理解不是十分透彻。所以我在审题方面就花费了很多时间。开始自己的思路不是十分清晰。也不知道从什么地方开始编译。等有了思路,已经过去了很多时间。所以以后在写程序的时候思路不能乱。首先要把程序的整个思路捋清楚。把整体的框架先搭建出来。然后再增加其中的一些细节。 在写这个程序的时候,首先在文件部分就纠结了很长时间。因为我对文件的操作不是十分熟悉。所以这个程序没有做到很完善。其中比较重要的一点就是没有进行文件的读写。接下来我会在java学习中学习对数据进行文件读写。然后比较困难的一点应该就是,在查询那一块儿。对每一条信息的执行记录没有得出来。我认为这个需求也是可以实现的。我想到了一个比较笨的方法。就是先定义时间的一个函数。然后再定义一个字符串数组。。每个操作之后就使用一次这个时间函数。并把这个时间记录在字符串数组中。操作记录也是同样的方法。也可以定义一个字符串数组。然后在里面进行记录。当然这个方法是比较笨的,大佬们有什么好的办法也可以给我提出来。我感觉在程序跳转方面的思路还是比较清晰的。各个页面之间的跳转是可以成功实现的。当时在测试时犯了一个比较低级的错误。我在修改密码之后。忘记了要返回到账号页面。因为我是用数组进行存储信息的。如果重新运行程序的话。我的密码是没有修改的。所以我如果要验证我的密码是否修改,我应该在运行的程序是可以返回到账号页面。从而验证是否密码修改成功。这可能也就是没有应用文件操作的弊端了。对文件信息的操作能够记录下来,可能是比较重要的。所以之后我应该学习这方面的技术。提高这个程序的实际应用能力。希望我的编译能力也能够不断的提高。

浙公网安备 33010602011771号