編寫Java程序_銀行終端服務系統

目錄

一、General description 總體概述

二、About the Project 項目介紹

三、Soft function 軟件功能

四、UI Model Use Case Diagram  UI模塊用例圖

Use Case1 賬號登錄

Use Case2 存款

Use Case3 取款

Use Case4 查詢

五、需求分級

六、實現代碼


一、General description 總體概述

定位:銀行軟件

風格:金融財務

用戶人羣:通過銀行終端獲取銀行服務的人羣

產品:湖北銀行終端服務系統

二、About the Project 項目介紹

銀行終端服務系統爲個人或企業賬號提供銀行智能終端服務,主要包括:現金取款、現金存款、餘額查詢、自助繳費、本行或異行轉賬、修改密碼等基本功能;有些多功能終端系統還提供諸如存摺打印、對賬單打印、支票存款、信封存款、繳費、充值等一系列便捷服務。本項目主要模擬了湖北銀行個人賬號終端操作的基本功能,實現了賬號金額管理和查詢的業務功能。

三、Soft function 軟件功能

1. 賬號登錄

賬號爲admin,密碼爲123,用戶三次輸入錯誤後系統自動退出。登錄驗證通過後可以看到系統操作菜單完成後續操作。

2. 功能主菜單

系統有菜單供用戶選擇操作,只用輸入數字就可以選擇相關功能。每次操作完成後菜單再次出現,提供用戶下次選擇,用戶可以直接選擇退出菜單,系統自動結束。

3. 存款

用戶在主菜單中選擇存款,系統提示用戶輸入存款金額,用戶如果輸入正確的數字,餘款將會累加。輸入錯誤的時候,系統會提示,用戶可以再次輸入。

4. 取款

用戶在主菜單中選擇取款,系統提示用戶輸入取款金額,用戶輸入正確,系統判斷餘款是否足額,如果不足,系統提示用戶,用戶可以再次輸入。用戶輸入取款額不是數字,系統也會提示用戶輸入。

5. 查詢

用戶在主菜單中選擇查詢,系統輸出用戶所有的存取款項的明細信息,包括時間和金額,同時輸出帳戶的當前餘額。

四、UI Model Use Case Diagram  UI模塊用例圖

Use Case1 賬號登錄

Goal in Context 簡要說明:

用戶使用銀行服務必須首先登錄到個人賬號,系統默認設置的個人賬號爲admin,密碼爲123。如果用戶輸入錯誤的登錄信息,系統提醒“賬號密碼輸入錯誤!”。如果連續三次輸入錯誤,系統將自動退出。登錄通過後可以看到系統操作菜單。

Description 基本事件流描述:

Use Case2 存款

1、用戶輸入存款金額爲非數字,提示:“金額輸入錯誤,存款操作已經取消”如圖:

2、用戶輸入存款金額爲負數或零,系統提示“金額爲負數或零,存款操作已經取消”如圖:

3、用戶選擇的菜單序號不合法,系統自動關閉,如圖:

Goal in Context 簡要說明:

通過系統服務菜單,輸入“1”選擇“存款”服務,系統提示“輸入存款金額”,存款成功後,系統提示“已存款XXX”。如果存款金額輸入非數字或負數,系統給出相應提示,並停止存款服務,同時顯示系統菜單,允許用戶再次操作。

Description 基本事件流描述:

Use Case3 取款

1、用戶輸入取款金額爲非數字,提示:“金額輸入錯誤,取款操作已經取消”如圖:

2、用戶輸入存款金額爲負數或零,系統提示“金額爲負數或零,取款操作已經取消”如圖:

3、用戶輸入的取款金額超過其存款總額,系統提示“餘額不足,取款操作已經取消”如圖:

Goal in Context 簡要說明:

通過系統服務菜單,輸入“2”選擇“取款”服務,系統提示“輸入取款金額”,取款成功後,系統提示“已取款XXX”。如果取款金額輸入非數字或負數,系統給出相應提示,並停止取款服務,同時顯示系統菜單,允許用戶再次操作。如果取款金額超出存款總額,提示“餘額不足”。

Description 基本事件流描述:

Use Case4 查詢

Goal in Context 簡要說明:

通過系統服務菜單,輸入“3”選擇“查詢”服務,系統按操作時間順序,顯示出用戶的歷史操作記錄及當前餘額。

五、需求分級

Requirement ID 需求ID

Requirement Name 需求名稱

Classification 需求分級

SC.01

賬號登錄

A

SC.02

存款

A

SC.03

取款

A

SC.04

查詢

A

六、實現代碼

Test 類

import java.util.Date;

import com.ww.service.UserAcountService;

public class Test {
	public static void main(String[] args) {
		UserAcountService uas=new UserAcountService();
		uas.login();
	}

}

UserAcount 類

public class UserAcount {
	//用戶類
	public String user_name;//賬號
	public String user_pwd;//密碼
	public int balance;//賬戶的餘額
	//登錄
	public boolean login(String name,String pwd){
		if (user_name.equals(name)&&user_pwd.equals(pwd)) {
			return true;
		} else {
			return false;
		}
	}
	public UserAcount(String userName, String userPwd, int balance) {
		super();
		user_name = userName;
		user_pwd = userPwd;
		this.balance = balance;
	}
	public UserAcount() {
		super();
	}
	

}

LogInfo 類

public class LogInfo {
	String checkTime;//操作時間
	String check;//操作類型
	int balance;//操作的金額
	//顯示日誌
	public void showLogInfo(LogInfo[] ls){
		for (int i = 0; i < ls.length; i++) {
			if (ls[i]!=null) {
				System.out.println(ls[i].checkTime+"\t"+ls[i].check+"\t"+ls[i].balance);
			}
		}
		//餘額
	}
	public LogInfo(String checkTime, String check, int balance) {
		this.checkTime = checkTime;
		this.check = check;
		this.balance = balance;
	}
	public LogInfo() {
	}
	
	

}

UserAcountService 類

import java.util.Date;
import java.util.Scanner;

import com.ww.entity.LogInfo;
import com.ww.entity.UserAcount;

public class UserAcountService {
	UserAcount ua;
	Scanner inputScanner=new Scanner(System.in);
	//聲明一個日誌數組,用於保存用戶的操作數據
	LogInfo[] ls=new LogInfo[10];
	
	
	//登錄的方法
	public void login(){
		initUser();//調用方法
		boolean f;
		int count=0;//登錄的次數
		do {
			System.out.println("請輸入賬號:");
			String name=inputScanner.next();
			System.out.println("請輸入密碼:");
			String pwd=inputScanner.next();
			f=ua.login(name, pwd);
			count++;
			if (!f) {
				System.out.println("登錄失敗,您還有"+(3-count)+"次機會!");
			}
		} while (f==false&&count<3);
		//1、登錄成功
		//2、失敗次數達到3次
		if (f) {
			//顯示功能菜單
			int choose;
			do {
				choose=showMenu();
				switch (choose) {
				case 1://存款
					addMoney();
					break;
				case 2://取款
					getMoney();
					break;
				case 3://查詢
					showLogInfo();
					break;

				default://退出
					System.exit(0);
					System.out.println("謝謝使用,已退出!");
					break;
				}
			} while (choose==1||choose==2||choose==3);
		}else {
			System.out.println("錯誤次數超過三次,已鎖定!");
		}
		
	}
	//查詢
	public void showLogInfo(){
		LogInfo info=new LogInfo();
		info.showLogInfo(ls);
		System.out.println("當前賬戶的餘額:"+ua.balance);
	}
	
	//取錢
	public void getMoney(){
		System.out.println("請輸入取錢的金額:");
		int money=inputScanner.nextInt();
		if (money>=0) {
			if (money<=ua.balance) {
				ua.balance-=money;
				LogInfo li=new LogInfo(new Date().toLocaleString(),"取錢",money);
				//將此日誌對象保存到數組中
				for (int i = 0; i < ls.length; i++) {
					if (ls[i]==null) {
						ls[i]=li;
						break;
					}
				}
			} else {
				System.out.println("賬戶餘額不足!");
			}
		} else {
			System.out.println("金額不對,請重新輸入!");
		}
	}
	
	//存款
	public void addMoney() {
		System.out.println("請輸入存款的金額:");
		int money=inputScanner.nextInt();
		if (money>=0) {
			ua.balance+=money;
			//保存當前存款的操作日誌:操作時間、操作類型、操作金額
			Date date=new Date();//獲取當前系統時間
			LogInfo li=new LogInfo(date.toLocaleString(),"存款",money);
			for (int i = 0; i < ls.length; i++) {
				if (ls[i]==null) {
					ls[i]=li;
					break;
				}
			}
			
		} else {
			System.out.println("金額不對,請重新輸入!");
		}
	}
	
	
	//顯示功能菜單
	public int showMenu(){
		System.out.println("1、存款");
		System.out.println("2、取款");
		System.out.println("3、查詢");
		System.out.println("4、退出");
		System.out.println("請選擇操作:");
		int choose=inputScanner.nextInt();
		return choose;
	}

	//創建一個用戶
	public void initUser(){
		ua=new UserAcount("admin", "123", 1000);
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章