資源簡介
1. 賬戶類(滿分50 分)
版本1:滿分10 分
設計 Account1 類,包含:
■ 一個名為id 的int 類型的私有數據域(默認值為0),長度為6 位。
■ 一個名為balance 的double 類型的私有數據域(默認值為0)。
■ 一個名為annualInterestRate 的double 類型的私有數據域存儲當前利率(默認值為0)。
假設所有的賬戶都有相同的利率。
■ 一個名為dateCreated 的Date 類型的私有數據域存儲賬戶的開戶日期。
■ 一個能創建默認賬戶的無參構造方法。
■ 一個能創建帶特定id 和初始余額的構造方法,初始余額不能為負數。
■ id、balance 和annualInterestRate 的訪問器和修改器。
■ dateCreated 的訪問器。
■ 一個名為getMonthlyInterestRate 的方法返回月利率。
■ 一個名為withDraw 的方法從賬戶提取特定金額。
■ 一個名為deposit 的方法向賬戶存人特定金額。
■ double 類型的數據域保留2 位小數。
■ 成員方法和數據域應進行基本的合理性檢查。
設計測試類ATMMachine1:
■ 創建一個有100 個賬戶的數組,其id 為0,1,2,...99, 并初始化收支為1000 美元。
■ 主菜單如下(可參考教材中文版P296 或英文版P367):
Main menu
1: check balance
2: withdraw
3: deposit
4: exit
版本2:滿分20 分
擴展 Account1 類為Account2 類:
■ Account2 類繼承Account1 類。
■ 為Account2 類新增一個名為password 的String 類型的私有數據域存儲賬號密碼。
password 只能為字母或數字,長度不能小于6 且不能大于10。密碼顯示時為*******。
■ 為Account2 類新增一個名為name 的String 類型的私有數據域存儲客戶名字。
■ 為Account2 類新增一個名為transactions 的ArrayList 類型的新數據域,其為客戶存
儲交易記錄。這要求新建一個名為Transaction 的類,類的定義請參照教材中文版P327 或英
文版P404。每筆交易都是Transaction 類的一個實例。
■ 新增一個帶初始余額的構造方法,其id 隨機產生,但不能與當前系統的id 重復。
若初始余額的參數為負數,則拋出一個自定義異常并在當前構造方法中進行處理。
■ 重寫方法withDraw,要求支取的金額為100 的整數倍,并且當日支取金額不能超過
5000,支取金額不允許透支。每進行一次操作應向transactions 數組線性表添加一筆交易。
■ 重寫方法deposit,要求每進行一次操作應向transactions 數組線性表添加一筆交易。
■ 新增一個方法changePassword,只有舊密碼正確,新密碼符合要求,且兩次輸入相
同的情況下才可以成功修改密碼
設計測試類ATMMachine2,其主菜單如下(可參考教材中文版P296 或英文版P367):
Main menu
0:create a account
1: check balance
2: withdraw
3: deposit
4:details of the transaction
5: change password
6:exit
■ 若用戶選擇新建一個賬號, 則應提示用戶輸入賬號password 、balance 和
annualInterestRate,其中id 隨機產生。新產生的賬戶應序列化到名為accounts.dat 的文件中。
所有賬戶只能通過這種方式產生。
■ 所有用戶操作結果應同步到accounts.dat 文件中相應賬戶中。
■ 所有用戶操作應有友好、簡介的提示語。
版本3:滿分20 分
請參照銀行的ATM 機界面,在Account2 類的基礎上開發一個GUI 界面的ATM 系統。
要求界面應模擬小鍵盤,并且賬戶信息讀、寫于文件accounts.dat。

代碼片段和文件信息
package?com.java.account1;
import?java.util.*;
public?class?Account1
{
????
?//private?Integer?id=new?Integer(6);??//包裝類型,定義id的長度
?private?int?id=0;?//?賬戶id
?private?Date?dateCreated;?//開戶日期
?
?private?double?balance=0;//余額
?private?double?annualInterestRate=0;???//利率
?
?
?public?Account1()??????//默認賬戶的無參構造方法
?{
?
?}
?public?Account1(int?iddouble?balance){
?this.id=id;
?if(balance<0){
?//balance=0;
?System.out.println(“初始余額不能為負!“);
?}
?this.balance=balance;
?}
?
?
?//修改器和訪問器
?public?int?getId()?{
??return?id;
?}
?public?void?setId(int?id)?{
??this.id?=?id;
?}
?
?
?public?double?getBalance(){
?return?balance;
?}
?public?void?setBalance(double?balance){
?this.balance=balance;
?}
?
?
?public?double?getAnnualInterestRate()?{
??return?annualInterestRate;
?}
?public?void?setAnnualInterestRate(double?annualInterestRate)?{
??this.annualInterestRate?=?annualInterestRate;
?}
?
?
?
?//dateCreated的訪問器
?
?public?Date?getDateCreated()?{
??return?dateCreated;
?}
?
/*?public?void?setDateCreated(Date?dateCreated)?{
??this.dateCreated?=?dateCreated;
?}*/
?
?
?
?public?double?getMonthlyInterestRate()?//返回月利率
?{
??return?annualInterestRate/12;
?}
?
?
????//向帳戶中存入特定金額
?public?void?deposit(double?money)?
?{
?balance=balance+money;?
?}
?
?
?//向賬戶中取出特定金額
?public?void?withdraw(double?money){
if(balance? System.out.println(“對不起,賬戶余額不足!“);
}
else
{
balance=balance-money;;
}
}
?
?
//?????public?static?void?main(String?args[]){
// ??Account1?acco=new?Account1(1-5);
//???}
?
?
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\
?????文件?????????301??2013-06-29?23:08??賬戶類(ATM模擬設計和實現)\BankAccount\.classpath
?????文件?????????387??2013-06-29?23:08??賬戶類(ATM模擬設計和實現)\BankAccount\.project
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\.settings\
?????文件?????????629??2013-06-29?23:08??賬戶類(ATM模擬設計和實現)\BankAccount\.settings\org.eclipse.jdt.core.prefs
?????文件?????????395??2013-09-13?21:13??賬戶類(ATM模擬設計和實現)\BankAccount\account.dat
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\bin\
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account1\
?????文件????????1818??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account1\Account1.class
?????文件????????2793??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account1\ATMMachine1.class
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account2\
?????文件????????1818??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account2\Account1.class
?????文件????????3453??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account2\Account2.class
?????文件????????4709??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account2\ATMMachine2.class
?????文件????????5894??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account2\Bank.class
?????文件????????1015??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account2\Transaction.class
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account3\
?????文件????????1818??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account3\Account1.class
?????文件????????3098??2013-09-13?20:35??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account3\Account2.class
?????文件???????27082??2013-09-13?21:13??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account3\ATMMachine3.class
?????文件????????5874??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account3\Bank.class
?????文件????????1015??2013-09-13?20:09??賬戶類(ATM模擬設計和實現)\BankAccount\bin\com\java\account3\Transaction.class
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\images\
?????文件???????20765??2013-09-03?14:43??賬戶類(ATM模擬設計和實現)\BankAccount\images\background.jpg
?????文件???????66051??2013-09-03?15:23??賬戶類(ATM模擬設計和實現)\BankAccount\images\logo.jpg
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\src\
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\src\com\
?????目錄???????????0??2013-12-29?14:59??賬戶類(ATM模擬設計和實現)\BankAccount\src\com\java\
............此處省略15個文件信息
- 上一篇:IP電話網絡組建案例
- 下一篇:人工智能綜述
評論
共有 條評論