zoukankan      html  css  js  c++  java
  • 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学习中学习对数据进行文件读写。然后比较困难的一点应该就是,在查询那一块儿。对每一条信息的执行记录没有得出来。我认为这个需求也是可以实现的。我想到了一个比较笨的方法。就是先定义时间的一个函数。然后再定义一个字符串数组。。每个操作之后就使用一次这个时间函数。并把这个时间记录在字符串数组中。操作记录也是同样的方法。也可以定义一个字符串数组。然后在里面进行记录。当然这个方法是比较笨的,大佬们有什么好的办法也可以给我提出来。我感觉在程序跳转方面的思路还是比较清晰的。各个页面之间的跳转是可以成功实现的。当时在测试时犯了一个比较低级的错误。我在修改密码之后。忘记了要返回到账号页面。因为我是用数组进行存储信息的。如果重新运行程序的话。我的密码是没有修改的。所以我如果要验证我的密码是否修改,我应该在运行的程序是可以返回到账号页面。从而验证是否密码修改成功。这可能也就是没有应用文件操作的弊端了。对文件信息的操作能够记录下来,可能是比较重要的。所以之后我应该学习这方面的技术。提高这个程序的实际应用能力。希望我的编译能力也能够不断的提高。

  • 相关阅读:
    Oracle约束详解
    查看oracle数据库中表是否被锁
    Oracle安装EMCC
    Hbuilder和夜神模拟器的使用
    Python3 进制表示、进制转换
    Python3制作图片缩略图
    flask 异步接口
    git——一段代码将本地的代码提交至远程
    centos7防火墙放开某一端口
    CentOS7安装docker
  • 原文地址:https://www.cnblogs.com/qiangini/p/13715446.html
Copyright © 2011-2022 走看看