java ATM模拟程序

Posted 任伟强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java ATM模拟程序相关的知识,希望对你有一定的参考价值。

//基本功能已经完善,文件读取没有问题,文件重写尚未完成。

Account类

public class Account {
		//初始化参数
		private String accountID;
		private String accountname;
		private String operatedate;
		private int operatetype;
		private String accountpassword;
		private int accountbalance=0;
		private int amount;
		//构造读取和设置变量信息的方法
		public void setAccountID(String accountID) {this.accountID=accountID;}
		public String getAccountID() {return accountID;}
		public void setAccountname(String accountname) {this.accountname=accountname;}
		public String getAccountname() {return accountname;}
		public void setOperatedate(String operatedate) {this.operatedate=operatedate;}
		public String getOperatedate() {return operatedate;}
		public void setOperatetype(int operatetype){this.operatetype=operatetype;}
		public int getOperatetype() {return operatetype;}
		public void setAccountpassword(String accountpassword) {this.accountpassword=accountpassword;}
		public String getAccountpassword() {return accountpassword;}
		public void setAccountbalance(int accountbalance) {this.accountbalance=accountbalance;}
		public int getAccountbalance() {return accountbalance;}
		public void setAmount(int amount) {this.amount=amount;}
		public int getAmount() {return amount;}
		//构造方法有参数
		public Account(String accountID,String accountname,String operatedate,int operatetype,String accountpassword,int accountbalance,int amount) {
			this.accountID=accountID;
			this.accountname=accountname;
			this.operatedate=operatedate;
			this.operatetype=operatetype;
			this.accountpassword=accountpassword;
			this.accountbalance=accountbalance;
			this.amount=amount;
		}
		//构造方法无参数
		public Account() {}
		//参数统一类型
		public String toString() {
			return (accountID+" "+accountname+" "+operatedate+" "+operatetype+" "+accountpassword+" "+accountbalance+" "+amount);
		}
	}

  AccountManager类

//20173685  任伟强  信1705-2

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import java.util.Scanner;

public class AccountManager extends Account{
	//继承父类
	public AccountManager(String accountID,String accountname,String operatedate,int operatetype,String accountpassword,int accountbalance,int amount) {
		super(accountID,accountname,operatedate,operatetype,accountpassword,accountbalance,amount);
	}
	public AccountManager() {
	}
	//全局定义
	static Account a=new Account();
	static Scanner s=new Scanner(System.in);
	//选择
	public static void main(String[]args) {
		try {
			fileout();
			waterout();
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		}
		try {
			if(loginAccount()&&loginPwd()) {
			Menu();
			String option;
			do {
			option=s.next();
			switch(option) {
			case"1":    handmoney();break;
			case"2":	getmoney();break;
			case"3":	moneygogogo();break;
			case"4":	update();break;
			case"5":	moneyhere();break;
			case "q":	           ;break;
			default:	System.out.println("错误,请重新输入!
");
			}}while(!"q".equals(option));
			System.out.println("成功退出系统!
");}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	//读取账户基本信息库
	public static void fileout() throws FileNotFoundException {
		try {
		FileReader fr=new FileReader("D:\eclipse\eclipse\Account\src\accountinformation.txt");
		Scanner sc=new Scanner(fr);
		while(sc.hasNext()) {
		a.setAccountID(sc.next());
		a.setAccountname(sc.next());
		a.setAccountpassword(sc.next());
		a.setAccountbalance(sc.nextInt());
		}
		sc.close();
		fr.close();
		} catch (IOException e) {
			System.out.println("文件导出成功
");
		}
	}
	//读取账户流水信息库
	public static void waterout() throws FileNotFoundException {
		try {
		FileReader fr=new FileReader("D:\eclipse\eclipse\Account\src\accountlist.txt");
		Scanner sc=new Scanner(fr);
		while(sc.hasNext()) {
		a.setAccountID(sc.next());
		a.setAccountname(sc.next());
		a.setOperatedate(sc.next());
		a.setOperatetype(sc.nextInt());
		a.setAmount(sc.nextInt());
		}
		sc.close();
		fr.close();
		} catch (IOException e) {
			System.out.println("文件导出成功
");
		}
	}
	//导入账户基本信息库
	public static void filein() throws IOException {
		int i;
		FileReader fr=new FileReader("D:\eclipse\eclipse\Account\src\accountinformation.txt");
		FileWriter fw=new FileWriter("D:\eclipse\eclipse\Account\src\accountinformation.txt");
		i=fr.read();
		while(i!=-1) {
			fw.write(i);
			fr.read();
		}
		fr.close();
		fw.close();
	}
	//导入账户基本信息库
	public static void waterin() throws IOException {
		int i;
		FileReader fr=new FileReader("D:\eclipse\eclipse\Account\src\accountlist.txt");
		FileWriter fw=new FileWriter("D:\eclipse\eclipse\Account\src\accountlist.txt");
		i=fr.read();
		while(i!=-1) {
			fw.write(i);
			fr.read();
		}
		fr.close();
		fw.close();
	}
	//打印菜单
	public static void Menu(){
	StringBuffer s=new StringBuffer("
");
	s.append("	*************************************************
");
	s.append("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
	s.append("	*************************************************
");
	s.append("			1.存款;
");
	s.append("			2.取款;
");
	s.append("			3.转账汇款;
");
	s.append("			4.修改密码;
");
	s.append("			5.查询余额;
");
	s.append("	*************************************************
");
	s.append("	(输入q退出系统)
");
	s.append("请操作
");
	System.out.println(s);
	}
	//打印登陆账号界面
	public static boolean loginAccount() throws IOException  {
		System.out.println("	*************************************************
");
		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
		System.out.println("	*************************************************
");
        System.out.println("		请输入您的账号:
");
            String checkAccount = s.next();
			if (a.getAccountID().equals (checkAccount)){
                System.out.println("输入账号成功,系统跳转到输入密码界面
");
                return true ;
          }else {
                   System.out.println("该账号不存在
");
                   return false ;
                }
	}
    //打印登陆密码界面
	public static boolean loginPwd() throws IOException {
		System.out.println("	*************************************************
");
		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
		System.out.println("	*************************************************
");
        for (int i = 3 ;i>0;i--){
        	System.out.println("		请输入您的密码:
");
            String checkPwd = s.next();
            if (a.getAccountpassword().equals (checkPwd)){
                System.out.println("输入密码成功,系统跳转到主界面!
");
                return true ;
          }else {
                if ( i ==1 ){
                    System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理
");
                   return false ;
                }
                System.out.println("密码录入错误!今日剩余次数:"+ (i-1));
           }
        }
		return false;
  
	}
	//存款
	private static void handmoney() {
		System.out.println("	*************************************************
");
		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
		System.out.println("	*************************************************
");
		System.out.println("		请输入存款金额:
");
		int number=s.nextInt();
		a.setAccountbalance(a.getAccountbalance() + number);
		System.out.println("	*************************************************
");
		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
		System.out.println("	*************************************************
");
		System.out.println("		当前账户存款操作成功
");
		System.out.println("		当前账户余额为"+a.getAccountbalance()+"元
");
		System.out.println("	*************************************************
");
		Menu();
		System.out.println("		请继续操作
");
	}
	//取款
	public static void getmoney() {
		a.setAccountbalance(a.getAccountbalance());
		System.out.println("	*************************************************
");
		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
		System.out.println("	*************************************************
");
		System.out.println("		当前账户每日可以支取2万元
");
		System.out.println("		1.100元
");
		System.out.println("		2.500元
");
		System.out.println("		3.1000元
");
		System.out.println("		4.1500元
");
		System.out.println("		5.2000元
");
		System.out.println("		6.5000元
");
		System.out.println("		7.其他金额
");
		System.out.println("		8.退卡
");
		System.out.println("		9.返回
");
		System.out.println("	*************************************************
");
		int num1=100,num2=500,num3=1000,num4=1500,num5=2000,num6=5000;
		int str=s.nextInt();
		if (a.getAccountbalance() <str ){
          System.out.println("账户余额不足!!
");
          str=0;
	    }else if(str==1){
    		a.setAccountbalance(a.getAccountbalance() - num1);
	    }else if(str==2){
    		a.setAccountbalance(a.getAccountbalance() - num2);
        }else if(str==3){
    		a.setAccountbalance(a.getAccountbalance() - num3);
        }else if(str==4){
    		a.setAccountbalance(a.getAccountbalance() - num4);
        }else if(str==5){
    		a.setAccountbalance(a.getAccountbalance() - num5);
        }else if(str==6){
    		a.setAccountbalance(a.getAccountbalance() - num6);
        }else if(str==7){
    		
        	str=s.nextInt();
    		a.setAccountbalance(a.getAccountbalance() - str);
        }else if(str==8){
    		System.out.println("退卡成功
");
        }else if(str==9){
    		System.out.println("返回成功
");
        }
		System.out.println("	*************************************************
");
		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
		System.out.println("	*************************************************
");
		System.out.println("		当前账户存款操作成功
");
		System.out.println("		当前账户余额为"+a.getAccountbalance()+"元
");
		System.out.println("	*************************************************
");
		 Menu();
	    }

	//转账汇款
	public static void moneygogogo() {
		a.setAccountbalance(a.getAccountbalance());
		System.out.println("	*************************************************
");
		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
		System.out.println("	*************************************************
");
		System.out.println("		请输入转账账户
");
		String str=s.next();
		if(a.getAccountID().equals(str)) {
			System.out.println("	*************************************************
");
			System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
			System.out.println("	*************************************************
");
			System.out.println("		请输入转账金额
");
			int num=s.nextInt();
			if(a.getAccountbalance()<=num){
				System.out.println("账户余额不足
");
			}else {
	    		a.setAccountbalance(a.getAccountbalance() - num);
	    		System.out.println("	*************************************************
");
	    		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
	    		System.out.println("	*************************************************
");
	    		System.out.println("		当前账户向"+a.getAccountID()+"成功转账"+str+"元");
	    		System.out.println("		当前账户余额为"+a.getAccountbalance()+"元
");
	    		System.out.println("	*************************************************
");
			}
		}
		Menu();
	}
	//修改密码
	public static void update() throws IOException {
		fileout();
		System.out.println("	*************************************************
");
		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
		System.out.println("	*************************************************
");
		System.out.println("		请输入当前密码:
");
		String str=s.next();
		if(!a.getAccountpassword().equals(str)) {
			System.out.println("当前密码录入错误");
		}else {
			System.out.println("		请输入修改密码:
");
			String str1=s.next();
			System.out.println("		请输入确认密码:
");
			String str2=s.next();
			if(!str1.equals(str2)) {
				System.out.println("修改密码与确认密码不一致
");
			}else {
	    		System.out.println("	*************************************************
");
	    		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
	    		System.out.println("	*************************************************
");
	    		System.out.println("		当前账户密码修改成功");
	    		System.out.println("	*************************************************
");
			}
		}
		Menu();
	}
	//查询余额
	public static void moneyhere() {
		System.out.println("	*************************************************
");
		System.out.println("	  欢迎全世界最有钱的人使用中国工商银行自助柜员系统
");
		System.out.println("	*************************************************
");
		System.out.print("		当前账户余额为"+a.getAccountbalance()+"元
");
		System.out.print("		账户清单信息为:
");
		System.out.print("		操作日期"+a.getOperatedate()+" 操作类型"+a.getOperatetype()+"操作金额"+a.getAmount()+"
");
		System.out.println("	*************************************************
");
		Menu();
	}
}

  

 

以上是关于java ATM模拟程序的主要内容,如果未能解决你的问题,请参考以下文章

ATM java

java ATM模拟程序

用java做一个简易的ATM机具体流程在下面

用java编写的ATM机源代码

Java编程实现程序用于模拟ATM取款机。

模拟ATM机银行系统