银行转账模块Word格式文档下载.docx
《银行转账模块Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《银行转账模块Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
他行转账是将当前账户的金额转向其他银行自己或者他人的账户;
本行转账是将当前账户的金额转向同行自己的其它账户或者同行他人的账户。
1.1用例中的类
1.2用例的业务逻辑
用例名:
转账
前置条件:
用户已登录账户,输入对方的账户信息和转账金额后置条件:
转账成功扣除账户的余额,并记录转账信息
事件流:
1.输入对方的账号
2.输入转账金额
3.检查用户账户余额是否充足,若充足则继续否则提示错误并回到第2步
4.检查对方的账户是否存在,若存在则继续否则提示错误并回到第1步
5.检查是行内转账还是外行转账
6.处理行内转账或外行转账
7.转账成功
转账用例的活动图如下:
同一银行转账顺序图:
(1))用户在系统主界面请求转账操作,系统创建转账界面。
(2))用户输入转账信息
(3))数据库账户类确认是否存在该账户,并确认账户中的金额是否足够支付转
账款项,如可足够支付则计算新的账户余额,更新数据库中该账户的信息,发送消息给转账类,创建转账交易记录,保存转账交易记录。
(4))转账信息传递给账户(转入),查询该账户是否存在。
如存在计算账户余额,然后更新数据库的数据。
发送消息给转账类,创建转账交易记录,保存转账交易记录。
不同银行转账顺序图:
(3))数据库的账户类确认是否存在该账户,并确认账户中的金额是否足够支付
转账款项,如可足够支付则计算新的账户余额,更新数据库中该账户的信息,发送消息给转账类,创建转账交易记录,保存转账交易记录。
(4))最后,发送转账通知到另一家银行。
1.3需求描述术语表
类图描述:
账户:
用户注册的账户,里面包含金额和其他基本信息转账信息:
用户转账的记录
二、概要设计
2.1体系结构
本系统采用MVC架构,表示层显示系统应用界面,逻辑层对用户的操作进行逻辑处理,数据库层对数据库进行读写操作。
MVC架构的分层降低了耦合度使系统更加的内聚。
三、详细设计
银行转账模块将自己账户存款余额转到他人的账户余额上,要考虑到账户余额不足时可以存款,能实现行内转账和外行转账。
归纳功能点为:
1)存款
2)行内转账
3)外行转账
3.1类图描述
indexView
main()
命令
TransferControllerAccountController
transferAction()
depositAction()
数据读写
AccountInTransfer
AccountNumberpassword
name
<
interface>
>
ITransfer
transfer()
deposits
OutTransfer
3.2方法列表
类名:
TransferController
方法名称完成功能
transferAction用户账户金额转账给他人的账户
AccountController
depositAction存款
ITransfer
transfer转账接口
InTransfer
transfer行内转账
OutTransfer
transfer外行转账
3.3方法说明
方法原型
AccountController
publicstaticvoiddepositAction(Accountaccount,Doublemoney)
功能说明
操作:
存款
结果:
存款成功或失败条件:
参数正确
调用关系无
acount:
Acount,账户
输入参数
money:
Double,存款金额
返回值无
备注无
TransferController
publicstaticinttransferAction(Accounta,Accountb,Doubleamount,ITransferbank)
转账成功或失败条件:
调用关系调用ITransfer接口实现行内或外行转账
a:
Acount,转账方账户b:
Acount,收款方账户
amount:
Double,转账金额
bank:
ITransfer,行内或外行的转账方式
返回值int,转账成功返回1,否则返回0
InTransferimplementsITransfer
publicinttransfer(Accounta,Accountb,Doubleamount)
行内转账
调用关系实现ITransfer接口实现行内转账
Acount,转账方账户
b:
Acount,收款方账户amount:
返回值
int,转账成功返回
1,否则返回
备注
无
四、程序代码
Account.java:
packagemodels;
publicclassAccount{
privateStringaccountNumber;
privateStringpassword;
privateStringname;
privateDoubledeposits;
publicStringgetAccountNumber(){returnaccountNumber;
}
publicvoidsetAccountNumber(StringaccountNumber){this.accountNumber=accountNumber;
publicStringgetPassword(){returnpassword;
publicvoidsetPassword(Stringpassword){this.password=password;
publicStringgetName(){returnname;
publicvoidsetName(Stringname){this.name=name;
publicDoublegetDeposits(){returndeposits;
publicvoidsetDeposits(Doubledeposits){this.deposits=deposits;
publicAccount(StringaccoutNumber,Stringpassword,Stringname,Doubledeposits){
this.accountNumber=accoutNumber;
this.password=password;
this.name=name;
this.deposits=deposits;
ITransfer.java:
publicinterfaceITransfer{
publicinttransfer(Accounta,Accountb,Doubleamount);
InTransfer.java:
publicclassInTransferimplementsITransfer{@Override
publicinttransfer(Accounta,Accountb,Doubleamount){if(a.getDeposits()<
amount){
return0;
Doubledeposits=b.getDeposits()+amount;
b.setDeposits(deposits);
a.setDeposits(a.getDeposits()-amount);
return1;
AccountController.java:
packagecontrollers;
importmodels.Account;
publicclassAccountController{
publicstaticvoiddepositAction(Accountaccount,Doublemoney){account.setDeposits(account.getDeposits()+money);
OutTransfer.java:
publicclassOutTransferimplementsITransfer{
publicinttransfer(Accounta,Accountb,Doubleamount){if(a.getDeposits()<
TransferController.java:
packagecontrollers;
importmodels.Account;
importmodels.ITransfer;
publicclassTransferController{
publicstaticinttransferAction(Accounta,Accountb,Doubleamount,ITransferbank){
returnbank.transfer(a,b,amount);
IndexView.java:
packageview;
importcontrollers.TransferController;
importmodels.InTransfer;
importmodels.OutTransfer;
publicclassInd