1. 程式人生 > >java ATM模擬程序

java ATM模擬程序

manager tlist 初始化 基本功 父類 false 改密碼 private str2

//基本功能已經完善,文件讀取沒有問題,文件重寫尚未完成。

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("錯誤,請重新輸入!\n");
			}}while(!"q".equals(option));
			System.out.println("成功退出系統!\n");}
		} 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("文件導出成功\n");
		}
	}
	//讀取賬戶流水信息庫
	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("文件導出成功\n");
		}
	}
	//導入賬戶基本信息庫
	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("\n");
	s.append("\t*************************************************\n");
	s.append("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
	s.append("\t*************************************************\n");
	s.append("\t\t\t1.存款;\n");
	s.append("\t\t\t2.取款;\n");
	s.append("\t\t\t3.轉賬匯款;\n");
	s.append("\t\t\t4.修改密碼;\n");
	s.append("\t\t\t5.查詢余額;\n");
	s.append("\t*************************************************\n");
	s.append("\t(輸入q退出系統)\n");
	s.append("請操作\n");
	System.out.println(s);
	}
	//打印登陸賬號界面
	public static boolean loginAccount() throws IOException  {
		System.out.println("\t*************************************************\n");
		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
		System.out.println("\t*************************************************\n");
        System.out.println("\t\t請輸入您的賬號:\n");
            String checkAccount = s.next();
			if (a.getAccountID().equals (checkAccount)){
                System.out.println("輸入賬號成功,系統跳轉到輸入密碼界面\n");
                return true ;
          }else {
                   System.out.println("該賬號不存在\n");
                   return false ;
                }
	}
    //打印登陸密碼界面
	public static boolean loginPwd() throws IOException {
		System.out.println("\t*************************************************\n");
		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
		System.out.println("\t*************************************************\n");
        for (int i = 3 ;i>0;i--){
        	System.out.println("\t\t請輸入您的密碼:\n");
            String checkPwd = s.next();
            if (a.getAccountpassword().equals (checkPwd)){
                System.out.println("輸入密碼成功,系統跳轉到主界面!\n");
                return true ;
          }else {
                if ( i ==1 ){
                    System.out.println("該賬號三次錄入密碼錯誤,該卡已被系統沒收,請與工行及時聯系處理\n");
                   return false ;
                }
                System.out.println("密碼錄入錯誤!今日剩余次數:"+ (i-1));
           }
        }
		return false;
  
	}
	//存款
	private static void handmoney() {
		System.out.println("\t*************************************************\n");
		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
		System.out.println("\t*************************************************\n");
		System.out.println("\t\t請輸入存款金額:\n");
		int number=s.nextInt();
		a.setAccountbalance(a.getAccountbalance() + number);
		System.out.println("\t*************************************************\n");
		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
		System.out.println("\t*************************************************\n");
		System.out.println("\t\t當前賬戶存款操作成功\n");
		System.out.println("\t\t當前賬戶余額為"+a.getAccountbalance()+"元\n");
		System.out.println("\t*************************************************\n");
		Menu();
		System.out.println("\t\t請繼續操作\n");
	}
	//取款
	public static void getmoney() {
		a.setAccountbalance(a.getAccountbalance());
		System.out.println("\t*************************************************\n");
		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
		System.out.println("\t*************************************************\n");
		System.out.println("\t\t當前賬戶每日可以支取2萬元\n");
		System.out.println("\t\t1.100元\n");
		System.out.println("\t\t2.500元\n");
		System.out.println("\t\t3.1000元\n");
		System.out.println("\t\t4.1500元\n");
		System.out.println("\t\t5.2000元\n");
		System.out.println("\t\t6.5000元\n");
		System.out.println("\t\t7.其他金額\n");
		System.out.println("\t\t8.退卡\n");
		System.out.println("\t\t9.返回\n");
		System.out.println("\t*************************************************\n");
		int num1=100,num2=500,num3=1000,num4=1500,num5=2000,num6=5000;
		int str=s.nextInt();
		if (a.getAccountbalance() <str ){
          System.out.println("賬戶余額不足!!\n");
          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("退卡成功\n");
        }else if(str==9){
    		System.out.println("返回成功\n");
        }
		System.out.println("\t*************************************************\n");
		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
		System.out.println("\t*************************************************\n");
		System.out.println("\t\t當前賬戶存款操作成功\n");
		System.out.println("\t\t當前賬戶余額為"+a.getAccountbalance()+"元\n");
		System.out.println("\t*************************************************\n");
		 Menu();
	    }

	//轉賬匯款
	public static void moneygogogo() {
		a.setAccountbalance(a.getAccountbalance());
		System.out.println("\t*************************************************\n");
		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
		System.out.println("\t*************************************************\n");
		System.out.println("\t\t請輸入轉賬賬戶\n");
		String str=s.next();
		if(a.getAccountID().equals(str)) {
			System.out.println("\t*************************************************\n");
			System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
			System.out.println("\t*************************************************\n");
			System.out.println("\t\t請輸入轉賬金額\n");
			int num=s.nextInt();
			if(a.getAccountbalance()<=num){
				System.out.println("賬戶余額不足\n");
			}else {
	    		a.setAccountbalance(a.getAccountbalance() - num);
	    		System.out.println("\t*************************************************\n");
	    		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
	    		System.out.println("\t*************************************************\n");
	    		System.out.println("\t\t當前賬戶向"+a.getAccountID()+"成功轉賬"+str+"元");
	    		System.out.println("\t\t當前賬戶余額為"+a.getAccountbalance()+"元\n");
	    		System.out.println("\t*************************************************\n");
			}
		}
		Menu();
	}
	//修改密碼
	public static void update() throws IOException {
		fileout();
		System.out.println("\t*************************************************\n");
		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
		System.out.println("\t*************************************************\n");
		System.out.println("\t\t請輸入當前密碼:\n");
		String str=s.next();
		if(!a.getAccountpassword().equals(str)) {
			System.out.println("當前密碼錄入錯誤");
		}else {
			System.out.println("\t\t請輸入修改密碼:\n");
			String str1=s.next();
			System.out.println("\t\t請輸入確認密碼:\n");
			String str2=s.next();
			if(!str1.equals(str2)) {
				System.out.println("修改密碼與確認密碼不一致\n");
			}else {
	    		System.out.println("\t*************************************************\n");
	    		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
	    		System.out.println("\t*************************************************\n");
	    		System.out.println("\t\t當前賬戶密碼修改成功");
	    		System.out.println("\t*************************************************\n");
			}
		}
		Menu();
	}
	//查詢余額
	public static void moneyhere() {
		System.out.println("\t*************************************************\n");
		System.out.println("\t  歡迎全世界最有錢的人使用中國工商銀行自助櫃員系統\n");
		System.out.println("\t*************************************************\n");
		System.out.print("\t\t當前賬戶余額為"+a.getAccountbalance()+"元\n");
		System.out.print("\t\t賬戶清單信息為:\n");
		System.out.print("\t\t操作日期"+a.getOperatedate()+" 操作類型"+a.getOperatetype()+"操作金額"+a.getAmount()+"\n");
		System.out.println("\t*************************************************\n");
		Menu();
	}
}

  

java ATM模擬程序