银行转账模块.docx
- 文档编号:864134
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:14
- 大小:127.04KB
银行转账模块.docx
《银行转账模块.docx》由会员分享,可在线阅读,更多相关《银行转账模块.docx(14页珍藏版)》请在冰豆网上搜索。
银行转账模块
银行转账分析设计
一、系统定义
银行转账系统是银行系统其中一个子系统,也是比较重要的模块,它实现了用户与其他用户、用户与自己其它本行账号或者其它行账号之间的金额交流,是银行货币流通的重要环节。
它实现了由本人的活期账户中将款项转到自己或他人的活期账户或信用卡账户中。
输入账户金额,进行核对,核对通过后可进行交易;不通过则返回重新输入。
确认后提交易,更改双方用户账户信息,返回给用户账户信息,记录交易内容。
银行转账系统又分为本行转账和它行转账,本行转账不需要收取手续费,外行转账则需要收取手续费并调用外行转账模块来处理转账。
1.银行转账用例描述
银行转账用例包含以下几个:
1.存款:
存钱到自己账户里面
2.取款:
从账户里面取钱出来
3.转账:
由于转账既可以在同一银行之间进行,也可以在不同的银行之间进行,因此这里用了二个用例,使用本行转账和跨行转账来描述。
他行转账是将当前账户的金额转向其他银行自己或者他人的账户;本行转账是将当前账户的金额转向同行自己的其它账户或者同行他人的账户。
1.1用例中的类
1.2用例的业务逻辑
用例名:
转账
前置条件:
用户已登录账户,输入对方的账户信息和转账金额
后置条件:
转账成功扣除账户的余额,并记录转账信息
事件流:
1.输入对方的账号
2.输入转账金额
3.检查用户账户余额是否充足,若充足则继续否则提示错误并回到第2步
4.检查对方的账户是否存在,若存在则继续否则提示错误并回到第1步
5.检查是行内转账还是外行转账
6.处理行内转账或外行转账
7.转账成功
转账用例的活动图如下:
同一银行转账顺序图:
(1)用户在系统主界面请求转账操作,系统创建转账界面。
(2)用户输入转账信息
(3)数据库账户类确认是否存在该账户,并确认账户中的金额是否足够支付转账款项,如可足够支付则计算新的账户余额,更新数据库中该账户的信息,发送消息给转账类,创建转账交易记录,保存转账交易记录。
(4)转账信息传递给账户(转入),查询该账户是否存在。
如存在计算账户余额,然后更新数据库的数据。
发送消息给转账类,创建转账交易记录,保存转账交易记录。
不同银行转账顺序图:
(1)用户在系统主界面请求转账操作,系统创建转账界面。
(2)用户输入转账信息
(3)数据库的账户类确认是否存在该账户,并确认账户中的金额是否足够支付转账款项,如可足够支付则计算新的账户余额,更新数据库中该账户的信息,发送消息给转账类,创建转账交易记录,保存转账交易记录。
(4)最后,发送转账通知到另一家银行。
1.3需求描述术语表
类图描述:
账户:
用户注册的账户,里面包含金额和其他基本信息
转账信息:
用户转账的记录
二、概要设计
2.1体系结构
本系统采用MVC架构,表示层显示系统应用界面,逻辑层对用户的操作进行逻辑处理,数据库层对数据库进行读写操作。
MVC架构的分层降低了耦合度使系统更加的内聚。
三、详细设计
银行转账模块将自己账户存款余额转到他人的账户余额上,要考虑到账户余额不足时可以存款,能实现行内转账和外行转账。
归纳功能点为:
1)存款
2)行内转账
3)外行转账
3.1类图描述
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接口实现行内转账
输入参数
a:
Acount,转账方账户
b:
Acount,收款方账户
amount:
Double,转账金额
返回值
int,转账成功返回1,否则返回0
备注
无
方法原型
OutTransferimplementsITransfer
publicinttransfer(Accounta,Accountb,Doubleamount)
功能说明
操作:
行内转账
结果:
转账成功或失败
条件:
参数正确
调用关系
实现ITransfer接口实现行内转账
输入参数
a:
Acount,转账方账户
b:
Acount,收款方账户
amount:
Double,转账金额
返回值
int,转账成功返回1,否则返回0
备注
无
四、程序代码
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:
packagemodels;
publicinterfaceITransfer{
publicinttransfer(Accounta,Accountb,Doubleamount);
}
InTransfer.java:
packagemodels;
publicclassInTransferimplementsITransfer{
@Override
publicinttransfer(Accounta,Accountb,Doubleamount){
if(a.getDeposits() 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: packagemodels; publicclassOutTransferimplementsITransfer{ publicinttransfer(Accounta,Accountb,Doubleamount){ if(a.getDeposits() return0; } Doubledeposits=b.getDeposits()+amount; b.setDeposits(deposits); a.setDeposits(a.getDeposits()-amount); return1; } } TransferController.java: packagecontrollers; importmodels.Account; importmodels.ITransfer; publicclassTransferController{ publicstaticinttransferAction(Accounta,Accountb,Doubleamount, ITransferbank){ returnbank.transfer(a,b,amount); } } IndexView.java: packageview; importcontrollers.TransferCo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行 转账 模块