1. 程式人生 > >java基礎練習——ATM銀行管理系統

java基礎練習——ATM銀行管理系統

1.需求說明

 

2.建立屬性類

package ATM;

/*
 * 定義賬號和密碼
 */
public class ATMbean {
	//定義使用者名稱和密碼
	private String username = "張三";
	private String password = "123";
	//定義初始賬餘額
	private double money = 5000;
	
	
	public ATMbean() {
		super();
	}
	public ATMbean(String usename, String password, double money) {
		super();
		this.username = usename;
		this.password = password;
		this.money = money;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public double getMoney() {
		return money;
	}
	public void setMoney(double money) {
		this.money = money;
	}
	@Override
	public String toString() {
		return "ATMbean [username=" + username + ", password=" + password + ", money=" + money + "]";
	}
	
	
}

3.實現類

package ATM;

import java.util.Scanner;

public class ATMtest {
	//例項化ATMbean
			ATMbean atm = new ATMbean();
			
			Scanner s = new Scanner(System.in);
			//定義一個計數器記錄修改密碼的次數,修改密碼不得超過三次
			int i = 1;
	public void Select() {
		
		
		//使用者輸入使用者名稱和密碼去和已經定義的使用者名稱密碼做比較,相同則進入系統,不相同則報錯
		System.out.println("==========歡迎進入ATM銀行管理系統==========");
		System.out.println("請輸入使用者名稱:");
		String name = s.next();
		System.out.println("請輸入密碼:");
		String password = s.next();
		//將使用者輸入的使用者名稱和密碼與系統中的使用者名稱密碼相比是否相同,相同則進入系統
		if(name.equals(atm.getUsername()) && password.equals(atm.getPassword())) {
			System.out.println("登入成功!");
			
			//在此處可以進行迴圈
			while(true) {
				System.out.println("請選擇需要選擇的專案:1.取錢    2.存錢    3.查詢餘額    4.轉賬    5.修改密碼    6.重新登入  7.退出登入");
				switch(s.nextInt()) {
					case 1:
						//呼叫取錢的方法
						getMoney();
						break;
					case 2:
						//呼叫存錢的方法
						saveMoney();
						break;
					case 3:
						//呼叫查詢餘額的方法
						selectMoney();
						break;
					case 4:
						//呼叫轉賬的方法
						zhuanzhangMoney();
						break;
					case 5:
						//呼叫修改密碼的方法
						updateMoney();
						break;
					case 6:
						//呼叫重新登入的方法,也就是呼叫自己
						Select();
						break;
					case 7:
						System.out.println("歡迎下次登入該系統!");
						System.exit(0);
						break;
					default:
						System.out.println("你輸入有誤!請重新輸入!");
						break;
				}
			}
			//不相同。則報錯
		}else {
			System.out.println("使用者名稱或密碼錯誤!請重新輸入!");
			Select();
		}
	}
	

	//定義取錢的方法
	public void getMoney() {
		//輸入取錢的金額,判斷餘額是否夠
		System.out.println("請輸入取錢金額(元):");
		double money = s.nextDouble();
		if(money<=atm.getMoney()) {
			//如果夠了,則取錢,後計算餘額並賦值
			money = atm.getMoney() - money;
			atm.setMoney(money);
			System.out.println( "     取款成功!");
			System.out.println("  請取回您的現金!");
		}else {
			System.out.println("餘額不足!");
		}
	}
	
	
	//定義存錢的方法
	public void saveMoney() {
		System.out.println("請輸入存錢金額:");
		double money = s.nextDouble();
		money = money + atm.getMoney();
		atm.setMoney(money);
		System.out.println("存錢成功");
	}
	
	
	//定義查詢餘額的方法
	public void selectMoney() {
		System.out.println("您的餘額為:"+atm.getMoney()+"元");
	}
	
	
	//定義轉賬的方法
	public void zhuanzhangMoney() {
		System.out.println("請輸入轉賬人賬號:");
		String name = s.next();
		System.out.println("請輸入轉賬金額:");
		double money = s.nextDouble();
		//判斷轉賬的金額與你的餘額的大小
		if(money<=atm.getMoney()) {
			money = atm.getMoney()-money;
			atm.setMoney(money);
			System.out.println("轉賬成功!");
		}else {
			System.out.println("你確定你有那麼多的錢嗎!");
		}
	}
	
	
	//定義修改密碼的方法
	public void updateMoney() {
		
			System.out.println("請輸入原密碼:");
			String password = s.next();
			//判斷原密碼是否是你輸入的密碼
			if(password.equals(atm.getPassword())) {
				System.out.println("請輸入新密碼:");
				String newpassword = s.next();
				System.out.println("請再次輸入新密碼:");
				String newpassword01 = s.next();
				//判斷二次輸入的密碼是否相同
				if(newpassword.equals(newpassword01)) {
					System.out.println("修改成功!即將重新登入!");
					atm.setPassword(newpassword01);
					Select();
					
				}else {
					System.out.println("您輸入的密碼與之間的密碼不相同!");
					updateMoney();
				}
			}
			//如果輸入的密碼不是原密碼,則重新輸入
			else {
				if(i>=3) {
					System.out.println("您三次輸入密碼都是錯的!");
					System.out.println("您輸入錯誤密碼的次數超限!即將退出系統!");
					System.exit(0);
				}
				System.out.println("您輸入的密碼與原密碼不相同!請重新輸入!");
				i++;
				updateMoney();
				
			}
	}	
}

4.主方法   main

package ATM;

public class ATMmain {
	public static void main(String[] args) {
		ATMtest atm = new ATMtest();
		atm.Select();
	}
}

5.控制檯輸出結果(在此不做錯誤的輸出,但是程式可以實現各種錯誤

==========歡迎進入ATM銀行管理系統==========
請輸入使用者名稱:
張三
請輸入密碼:
123
登入成功!
請選擇需要選擇的專案:1.取錢    2.存錢    3.查詢餘額    4.轉賬    5.修改密碼    6.重新登入  7.退出登入
1
請輸入取錢金額(元):
4212
     取款成功!
  請取回您的現金!
請選擇需要選擇的專案:1.取錢    2.存錢    3.查詢餘額    4.轉賬    5.修改密碼    6.重新登入  7.退出登入
2
請輸入存錢金額:
3124
存錢成功
請選擇需要選擇的專案:1.取錢    2.存錢    3.查詢餘額    4.轉賬    5.修改密碼    6.重新登入  7.退出登入
3
您的餘額為:3912.0元
請選擇需要選擇的專案:1.取錢    2.存錢    3.查詢餘額    4.轉賬    5.修改密碼    6.重新登入  7.退出登入
4
請輸入轉賬人賬號:
123
請輸入轉賬金額:
5
轉賬成功!
請選擇需要選擇的專案:1.取錢    2.存錢    3.查詢餘額    4.轉賬    5.修改密碼    6.重新登入  7.退出登入
5
請輸入原密碼:
123
請輸入新密碼:
234
請再次輸入新密碼:
234
修改成功!即將重新登入!
==========歡迎進入ATM銀行管理系統==========
請輸入使用者名稱:
張三
請輸入密碼:
234
登入成功!
請選擇需要選擇的專案:1.取錢    2.存錢    3.查詢餘額    4.轉賬    5.修改密碼    6.重新登入  7.退出登入
6
==========歡迎進入ATM銀行管理系統==========
請輸入使用者名稱:
張三
請輸入密碼:
234
登入成功!
請選擇需要選擇的專案:1.取錢    2.存錢    3.查詢餘額    4.轉賬    5.修改密碼    6.重新登入  7.退出登入
7
歡迎下次登入該系統!