目錄
四、UI Model Use Case Diagram UI模塊用例圖
一、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。如果用戶輸入錯誤的登錄信息,系統提醒“賬號密碼輸入錯誤!”。如果連續三次輸入錯誤,系統將自動退出。登錄通過後可以看到系統操作菜單。
Use Case2 存款
1、用戶輸入存款金額爲非數字,提示:“金額輸入錯誤,存款操作已經取消”如圖:
2、用戶輸入存款金額爲負數或零,系統提示“金額爲負數或零,存款操作已經取消”如圖:
3、用戶選擇的菜單序號不合法,系統自動關閉,如圖:
Goal in Context 簡要說明:
通過系統服務菜單,輸入“1”選擇“存款”服務,系統提示“輸入存款金額”,存款成功後,系統提示“已存款XXX”。如果存款金額輸入非數字或負數,系統給出相應提示,並停止存款服務,同時顯示系統菜單,允許用戶再次操作。
Use Case3 取款
1、用戶輸入取款金額爲非數字,提示:“金額輸入錯誤,取款操作已經取消”如圖:
2、用戶輸入存款金額爲負數或零,系統提示“金額爲負數或零,取款操作已經取消”如圖:
3、用戶輸入的取款金額超過其存款總額,系統提示“餘額不足,取款操作已經取消”如圖:
Goal in Context 簡要說明:
通過系統服務菜單,輸入“2”選擇“取款”服務,系統提示“輸入取款金額”,取款成功後,系統提示“已取款XXX”。如果取款金額輸入非數字或負數,系統給出相應提示,並停止取款服務,同時顯示系統菜單,允許用戶再次操作。如果取款金額超出存款總額,提示“餘額不足”。
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);
}
}