系统需求:
本系统相对于之前的系统最大的特点是,他有一种信用账户,并且信用账户允许透支,每个信用账户都有一定的信用额度,总的透支额应该在信用额度之内。此外还要求向信用账户存钱时不会有利息,但是账户透支时则会产生利息。
系统设计:
为了实现存款账户和信用账户的区别,因此我们需要引入派送类,即在系统实现上设立一个抽象类Accunte类作为SavingsAccount类和CreditAccount类的父类。然后根据SavingsAccount类和CreditAccount类各自不同的需求编写不同的方法。
画出UML类图:
根据需求画出UML类图:
Accumlator |
| Account |
| date |
-lastDate:Date -value :double -sum : double |
| -id : String -balance :double -total : double |
| -year : int -month : int -day : int -tatalDays :int |
+Accumlator(date:Date,value :double) +getSum(date:Date) :double +change(date : Dtae,value :double) +reset(date :Date, value:double) |
| +Accout(date:Date,id:int) +record(date:Date,amount:double,desc:String) +error(msg:string) +getId():int +getBalance():double +show() : +getTotal():double |
| +Date(year:int ,month:int ,day:int) +getYear( ):int +getMonth( ):int +getDay( ):int +getMaxDay( ):int +isLeapYear( ):int +show( ) +distance(date:Date) :int |
SavingAccount |
| CreditAccount |
-acc:Accumulator -rate:double |
| -acc:Accumlator -credit:double -rate:double -total:double |
+savingAccount(date:Date,id:int,rate:double) +getRate():double +deposit(date:Date,amount:double,desc:string) +withdrow(date:Date,amount:double,desc:string) +settle(date:Date) |
| -getDebt():double +creditAccount(date:Date,id:int,credit:double,rate:duble,fee:double) +getCredit():double +getRate():double +getFee():double +getAvailableCredit():double +deposit(date:Date,amount:double,desc:String) +settle()(date:Date) +show() |