个人银行账户管理程序
人民银行账户管理规定(3篇)

第1篇第一章总则第一条为加强账户管理,保障支付结算秩序,防范金融风险,维护经济金融安全,根据《中华人民共和国中国人民银行法》、《中华人民共和国银行业监督管理法》等法律法规,制定本规定。
第二条本规定适用于在中国境内依法设立的人民银行分支机构(以下简称“人民银行”)及其直接监管的金融机构(以下简称“金融机构”)。
第三条人民银行及其金融机构应当遵守法律法规,加强账户管理,确保账户真实、合法、有效,维护经济金融秩序。
第四条人民银行及其金融机构应当建立健全账户管理制度,明确账户管理职责,加强内部控制,提高服务质量。
第五条本规定由中国人民银行负责解释。
第二章账户的开立、变更和撤销第六条账户开立(一)开立账户应当符合法律法规和人民银行的规定,具备真实、合法、有效的条件。
(二)金融机构应当对申请开立账户的客户进行身份识别和背景审查,确保客户身份真实、合法。
(三)金融机构应当要求客户填写开户申请表,并对其提供的身份证明、资信证明等材料进行审核。
(四)金融机构应当对开户申请进行风险评估,确保开户符合法律法规和人民银行的规定。
第七条账户变更(一)客户因身份信息、地址、联系方式等发生变化,需要变更账户信息的,应当向金融机构提出申请。
(二)金融机构应当对客户提供的变更申请材料进行审核,确保变更信息真实、合法。
(三)金融机构应当及时更新客户账户信息,并通知客户。
第八条账户撤销(一)客户因故需要撤销账户的,应当向金融机构提出申请。
(二)金融机构应当对客户提供的撤销申请材料进行审核,确保撤销符合法律法规和人民银行的规定。
(三)金融机构应当及时办理账户撤销手续,并通知客户。
第三章账户的实名制管理第九条实名制原则(一)金融机构开立账户,应当实行实名制,确保客户身份真实、合法。
(二)客户开立账户,应当提供真实、合法的身份证明。
第十条实名制要求(一)金融机构应当建立客户身份识别制度,对客户进行身份识别和背景审查。
(二)金融机构应当建立客户信息管理系统,记录客户身份信息、账户信息等。
银行个人银行账户管理办法

银行个人银行账户管理办法第一章总则第一条为了保证个人存款账户的真实性,维护存款人的合法权益,便利存款人开立和使用个人人民币银行结算账户(以下简称个人银行账户),切实落实银行账户实名制,根据《人民币银行结算账户管理办法》、《个人存款账户实名制规定》(中华人民共和国国务院令第285号)、《中国人民银行关于改进个人银行账户服务加强账户管理的通知》(银发【】号)及《中国银监会关于银行业打击治理电信网络新型违法犯罪有关工作事项的通知》(银监发【号)等法律、行政法规的规定,制定本办法。
第二条本办法所称个人银行账户,是指个人在金融机构开立的人民币存款账户,包括活期存款账户、定期存款账户、定活两便存款账户、通知存款账户以及其他形式的个人存款账户。
第三条本办法适用于我行辖内各支行。
第二章个人银行账户实名制规定第四条本办法所称实名,是指符合法律、行政法规和国家有关规定的身份证件上使用的姓名,要求社会公众用真实身份参与各类社会活动。
银行账户实名制的核心包括核验开户申请人提供身份证件的有效性、开户申请人与身份证件的一致性和开户申请人的真实开户意愿三方面。
支行在落实银行账户实名制时应围绕上述核心要素开展工作:一是开户申请人申请开立银行账户,必须向银行提交合法的身份证件和资料。
二是支行应利用多种有效手段核验开户申请人提供身份证件的合法性,确保开户申请人与身份证件的一致性。
三是核实开户申请人开户意愿的真实性。
第五条审核身份证件。
支行为开户申请人开立个人银行账户时,应要求其提供本人有效身份证件,并对身份证件的真实性、有效性和合规性进行认真审查。
银行通过有效身份证件仍无法准确判断开户申请人身份的,应要求其出具辅助身份证明材料。
(一)有效身份证件包括:1.在中华人民共和国境内已登记常住户口的中国公民为居民身份证;不满十六周岁的,可以使用居民身份证或户口簿。
2.香港、澳门特别行政区居民为港澳居民往来内地通行证。
3.台湾地区居民为台湾居民来往大陆通行证。
银行人民币个人银行结算账户管理实施细则

农村商业银行人民币个人银行结算账户管理实施细则第一章总则第一条为规范农村商业银行股份有限公司(以下简称本行)人民币个人银行结算账户的开立和使用,加强银行结算账户管理,维护经济金融秩序稳定,根据中国人民银行《人民币银行结算账户管理办法》,结合本总行实际,制定本实施细则。
第二条本办法所称存款人为自然人。
本办法所称银行结算账户是指银行为存款人开立的办理资金收付结算的人民币活期存款账户。
第三条存款人凭个人身份证件以自然人名称开立的银行结算账户为个人银行结算账户。
第四条银行应依法为存款人的银行结算账户信息保密。
对个人银行结算账户的存款和有关资料,除国家法律另有规定外,有权拒绝任何单位或个人查询。
第二章个人银行结算账户的开立第五条个人银行结算账户是自然人因投资、消费、结算等而开立的可办理支付结算业务的存款账户。
有下列情况的,可以申请开立个人银行结算账户:㈠使用支票、信用卡等信用支付工具的。
㈡办理汇兑、定期借记、定期贷记、借记卡等结算业务的。
存款人可根据需要申请开立个人银行结算账户,也可以在已开立的储蓄账户中选择并向开户银行申请确认为个人银行结算账户。
第六条存款人根据需要可以在异地开立个人银行结算账户。
第七条存款人申请开立个人银行结算账户时,应填写“开立个人银行结算账户申请书”,存款人签章后,并向开户银行出具下列证明文件:㈠中国居民,应出具居民身份证或临时身份证。
㈡中国人民解放军军人,应出具军人身份证件。
㈢中国人民武装警察,应出具武警身份证件。
㈣香港、澳门居民,应出具港澳居民往来内地通行证;台湾居民,应出具台湾居民来往大陆通行证或者其它有效旅行证件。
㈤外国公民,应出具护照。
㈥法律、法规和国家有关文件规定的其它有效证件。
开立个人银行结算账户时,根据需要还可要求申请人出具户口簿等有效证件。
第八条开户银行应对存款人提交的“开立个人银行结算账户申请书”和证明文件的真实性、完整性、合规性进行认真审查,应通过联网核查公民身份系统核查存款人身份,并将有关证明文件的复印件留存归档。
个人银行账户分类管理制度

个人银行账户分类管理制度1. 引言嘿,大家好!今天我们来聊聊一个可能听起来有点严肃的话题——个人银行账户分类管理制度。
别紧张,这可不是让你看昏睡的公式和条款,咱们轻松点,慢慢来,保证让你明白其中的奥秘。
毕竟,银行账户就像我们的钱包,管理得好才能让钱生钱、越存越多,对吧?1.1 为什么要分类管理?首先,咱们得搞清楚,为啥要分类管理这些账户。
就像在家里打理不同的储物箱,一个专门放衣服,一个放书,分类清楚,找东西才方便。
银行账户也是如此,不同的账户有不同的功能和用途。
比如,你的工资账户就得稳稳当当,存得安全;而你的小金库,也就是理财账户,就可以多花点心思,追求更高的收益。
这样分类管理,不仅能让你心里有数,还能避免“乱糟糟”的状况发生。
1.2 分类的好处说到分类的好处,那就多了去了。
想想看,如果你把所有的钱都放在一个账户里,等到年底要对账时,那可真是要头大了,简直像是海底捞针。
不过,如果你把日常开支、应急资金、理财投资各自分开,查账的时候简直就像开快车,风驰电掣。
再者,分类管理还可以帮助你设定预算,掌控开支,避免“月光族”的悲惨命运。
总之,分类管理就是让你的人生更加有序,让钱花得心安理得。
2. 账户分类详解现在,咱们进入正题,来看看个人银行账户的具体分类。
2.1 工资账户工资账户,就是你每个月发工资的地方。
这个账户就像是你的“安全屋”,它承载着你辛辛苦苦挣来的每一分钱。
这个账户的特点是:流动性强,日常开支都可以通过它来完成。
记得在这个账户里设置一些定期的自动转账,给自己留点存款,这样能让你的钱在不知不觉中慢慢增值。
每当看到存款小额增加,心里那种满足感,简直不言而喻。
2.2 理财账户接下来是理财账户。
这个账户就像是你的小金库,藏着你追求财富自由的小梦想。
在这里,你可以尝试各种理财产品,比如基金、股票,甚至是定期存款。
要知道,理财可不是把钱放那儿就完事了,而是得懂得如何合理配置,才能让收益最大化。
每当你看到投资回报率的攀升,心里那种“哇,我真是个财智高手”的自豪感,简直无与伦比。
银行个人存款账户管理办法

银行个人存款账户管理办法
银行个人存款账户管理办法
一、背景简介
随着现代经济的不断发展,银行业作为经济的重要组成部分之一,在人民币国际化的大背景下扮演着越来越重要的角色。
作为银行业的基础业务,个人存款业务管理一直受到银行业的高度重视。
了解和掌握银行个人存款账户管理办法,对于保障存款人的资金安全和银行业的健康发展都具有重要意义。
二、银行个人存款账户管理办法
个人存款是指银行按照客户的要求,接受客户的存款,并按合同约定支付一定利率的存款业务。
为强化银行个人存款账户管理,维护客户合法权益,银行应制定银行个人存款账户管理办法,具体包括以下内容:
1.开户规定
银行应当严格执行《客户身份识别与登记管理办法》,核实客户身份。
要求客户提交完整、真实的个人身份证明材料,并通过开户人员进行审核确认。
同时,要求客户签订《银行开户协议》,明确存款人的权利、义务和银行的责任。
2.存款规定
存款人应当按照银行规定的存款方式和手续,将存款存入银行个人存款账户中。
银行应当为存款人提供安全、快捷、准确的存款业务,并按合同约定支付存款利息。
在存款的过程中,存款人应注意货币的真伪、数额的准确等问题,银行应加强货币管理的基础工作。
3.账户操作规定
银行个人存款账户的操作应遵循以下规定:
(1)存款人应通过签约、柜面、自助设备等方式进行账户业务操作;
(2)账户转账业务应遵循银行规定的流程,提高金融安全风险控制能力;
(3)存款人应正确使用账户密码,妥善保管密码和账户信息,以免造成损失;
(4)银行应及时通知存款人账户动态和利息情况,保障存款人的知情权。
4.账户安全管理规定
1 / 2。
2023年银行账户管理规定

2023年银行账户管理规定第一章总则第一条为规范金融市场秩序,保护银行存款人和金融消费者的合法权益,促进银行业健康发展,根据《中华人民共和国银行法》等相关法律法规,制定本规定。
第二条本规定适用于中国境内各类银行的账户管理,包括个人账户和企业账户。
第三条银行应当加强对账户开立、资金交易、账户信息保护等全过程的管理,保障账户安全和客户隐私。
第四条银行业务人员应当依法遵守职业道德,严守业务纪律,保证账户管理过程的公正、公平、公开。
第五条银行应当建立健全内部审查机制,开展账户管理业务的合规性审查,及时发现和纠正违规行为。
第二章账户开立第六条个人开立账户,应当出具有效身份证件、户口簿、手机号码等相关证明文件,填写开户申请书,并在银行开立账户。
第七条企业开立账户,应当提供营业执照、组织机构代码证、税务登记证等相关证明文件,并填写开户申请书,经相关部门核准后,方可在银行开立账户。
第八条银行在账户开立过程中,应当核实客户身份信息,确保客户身份真实合法。
第九条银行应当定期更新客户的身份信息,如变更需重新核实客户身份,并记录相关变更信息。
第十条银行有权拒绝不符合相关法律法规规定和银行规章制度要求的账户开立申请。
第三章资金交易第十一条账户持有人可以通过柜台、自助设备、网银、手机银行等途径进行资金的存取、转账、支付等操作。
第十二条银行应当加强对资金交易的风险管理,设置风险控制机制,防止资金洗钱、套现等违法行为。
第十三条财务大额支付、跨境资金交易,应当符合相关监管规定,银行应当按照规定的审批程序进行操作。
第十四条账户持有人应当保管好账户密码和相关证件,如遗失或泄露应及时报告银行,并采取相应措施进行挂失和补办。
第四章账户信息保护第十五条银行应当建立完善的账户信息保护体系,保障客户账户及个人隐私的安全。
第十六条银行对客户账户信息应当按照相关法律法规的要求进行保密,未经客户授权,不得非法获取、使用、泄露。
第十七条银行应当加强账户信息的存储和传输安全,采取相应措施防范黑客攻击、数据泄露等风险。
银行人民币个人银行结算账户管理实施细则

农村商业银行人民币个人银行结算账户管理实施细则第一章总则第一条为规范农村商业银行股份有限公司(以下简称本行)人民币个人银行结算账户的开立和使用,加强银行结算账户管理,维护经济金融秩序稳定,根据中国人民银行《人民币银行结算账户管理办法》,结合本总行实际,制定本实施细则。
第二条本办法所称存款人为自然人。
本办法所称银行结算账户是指银行为存款人开立的办理资金收付结算的人民币活期存款账户。
第三条存款人凭个人身份证件以自然人名称开立的银行结算账户为个人银行结算账户。
第四条银行应依法为存款人的银行结算账户信息保密。
对个人银行结算账户的存款和有关资料,除国家法律另有规定外,有权拒绝任何单位或个人查询。
第二章个人银行结算账户的开立第五条个人银行结算账户是自然人因投资、消费、结算等而开立的可办理支付结算业务的存款账户。
有下列情况的,可以申请开立个人银行结算账户:㈠使用支票、信用卡等信用支付工具的。
㈡办理汇兑、定期借记、定期贷记、借记卡等结算业务的。
存款人可根据需要申请开立个人银行结算账户,也可以在已开立的储蓄账户中选择并向开户银行申请确认为个人银行结算账户。
第六条存款人根据需要可以在异地开立个人银行结算账户。
第七条存款人申请开立个人银行结算账户时,应填写“开立个人银行结算账户申请书”,存款人签章后,并向开户银行出具下列证明文件:㈠中国居民,应出具居民身份证或临时身份证。
㈡中国人民解放军军人,应出具军人身份证件。
㈢中国人民武装警察,应出具武警身份证件。
㈣香港、澳门居民,应出具港澳居民往来内地通行证;台湾居民,应出具台湾居民来往大陆通行证或者其它有效旅行证件。
㈤外国公民,应出具护照。
㈥法律、法规和国家有关文件规定的其它有效证件。
开立个人银行结算账户时,根据需要还可要求申请人出具户口簿等有效证件。
第八条开户银行应对存款人提交的“开立个人银行结算账户申请书”和证明文件的真实性、完整性、合规性进行认真审查,应通过联网核查公民身份系统核查存款人身份,并将有关证明文件的复印件留存归档。
银行个人账户管理规定

银行个人账户管理规定一、账户的开立与注销1. 个人账户的开立:根据国家相关法律法规,个人可在银行办理个人账户的开立。
开户时需提供本人有效身份证件、手机号码等必要信息,并按银行要求填写开户申请表。
2. 个人账户的注销:个人账户注销需持有效身份证件、账户信息等前往银行办理。
如账户内存在余额或尚有未结清的业务,需先清算相关款项或撤销相关业务后,方可进行注销。
二、账户的管理与查询1. 账户信息维护:个人应确保账户信息的准确性和完整性,及时办理变更手续,如密码、手机号码、通讯地址等。
2. 账户查询:个人可通过以下方式查询账户信息:a) 自助终端机:使用银行卡和密码登录自助终端机,选择账户查询功能进行查询;b) 网上银行:通过银行提供的网上银行服务,登录账户进行查询操作;c) 至银行柜台:持有效身份证件前往银行柜台办理账户查询。
三、账户的交易与操作1. 存款与取款:个人可通过银行柜台、自助终端机、网上银行等渠道进行存款与取款操作。
存款方式包括现金存款、转账存款等,取款方式包括柜台取款、自动取款机取款等。
2. 转账与支付:个人账户可用于转账与支付。
转账方式包括银行转账、支付宝转账、微信转账等,支付方式包括POS机支付、扫码支付等。
四、账户的安全与保护1. 账户密码:个人应妥善保管账户密码,避免将密码告知他人。
定期更换密码,且不使用与个人信息相关或易被他人猜测的密码。
2. 防范诈骗:个人应加强安全意识,警惕身份信息泄露、诈骗等风险。
避免点击来历不明的链接,不随意泄露账户信息。
3. 账户挂失:如账户密码、银行卡等丢失或遗忘,个人应及时向银行报备挂失,以确保账户资金的安全。
五、账户的费用与收费1. 账户管理费:根据银行规定,针对某些账户类型,可能会收取账户管理费。
具体费用标准可查询银行官方渠道或与银行工作人员咨询。
六、账户违规处理1. 长期不使用:如个人账户长期未发生交易,银行有权对该账户进行冻结、注销等处理。
2. 违规操作:个人账户如发生违规操作,包括但不限于盗用他人账户、洗钱等行为,银行有权采取相应措施,甚至通报相关部门。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
个人银行账户管理程序实验内容:设计一个程序,实现对个人银行账户的管理。
银行账户有储蓄账户和信用账户两类。
储蓄账户不可以透支,利息每年结算一次;信用账户允许在一定额度内透支,透支则需支付利息,并在每月1日进行一次结算。
实验要求:1.程序要实现的功能:a)用户创建新账户需要提供基本的账号以及金额,如果是储蓄账户,还需定义年利率,如果是信用账户,则还需定义信用额度,日利率,年费b)储蓄账户:在每年的1月1日结算利息,利息的计算: 将一年中每天的余额累积起来再除以一年总天数,得到日均余额,再乘以年利率c)信用账户:在每年的1月1日扣取年费,信用账户没有利息,但透支则需要支付利息,从透支那天开始计算利息(日均欠费金额×利率),并在每月的1日进行一次结算d)用户能查看账户信息以及账户余额的变动情况e)用户存取款需要提供日期和金额,取款失败应提示输出失败原因2.设计类并写出每个类的详细描述(包括构造函数,成员变量,成员函数的含义)和画出UML类图(体现类之间的关系和类内成员的访问权限)3.程序中使用的类应该做到类定义和实现分离(使用多文件结构)4.设计测试用例对程序功能进行充分测试,并对运行结果进行截图实验分析:定义账户基类Account描述所有账户的共性,包含私有成员:账号id、余额balance、账户总金额静态数据成员total;保护成员:构造函数Account()、记账函数record()、错误信息报告常函数error();公有成员:获取账号常函数getId()、获取余额常函数getBalance()、获取总金额静态函数getTotal()、显示账户信息show()。
再从账户基类中公有派生出储蓄账户类SavingsAccount和信用账户类CreditAccount,储蓄类账户中定义了私有成员:辅助计算利息的累加器acc、存款的年利率rate,公有成员:构造函数SavingsAccount()、用于访问年利率的常函数getRate()、存现金函数deposit()、取现金函数withdraw()、利息结算函数settle()。
信用类账户中定义了私有成员:辅助计算利息的累加器acc、信用额度credit、欠款的日利率rate、信用卡年费fee、获得欠款项函数getDebt();公有成员:构造函数CreditAccount()、获取信用额度常函数getCredit()、获取日利率常函数getRate()、获取年费常函数getFee()、获得可用信用额度常函数getAvailableCredit()、存现金函数deposit()、取现金函数withdraw()、利息和年费结算函数settle()。
定义类Accumulator,用于计算一项数值的按日累加之和的接口,通过该类计算利息,包含三个数据成员——表示被累加数值上次变更日期的lastDate、被累加数值当前值value以及上次变更被累加数值为止的按日累加总和sum,该类同时包含四个函数成员——构造函数Accumulator()、用来计算到指定日期的累加结果的常函数getSum()、用来在指定日期更改数值的函数change()以及用来将累加器清零并重新设定初始日期和数值的函数reset()。
定义日期类Date,该类的数据成员包含year、month、day和totalDays,其中totalDays表示这一天的相对日期。
该类的成员函数除了构造函数和用来获得year、month、day的函数外,还包括用来得到当前月的天数getMaxDay()函数、用来判断当前年是否为闰年的isLeapYear()函数、用来将当前日期输出的show()函数、用来判断当前日期与指定日期相差天数的distance()函数,这些函数都会被Date类的其他成员函数或SavingsAccount类的函数调用。
以上各个类之间的UML类图如下:程序代码:账户类定义头文件://Account.h#ifndef _ACCOUNT_H_#define _ACCOUNT_H_#include <string>#include "Date.h"#include "Accumulator.h"class Account {private:std::string id;double balance;static double total;protected:Account(const Date &date, const std::string &id);void record(const Date &date, double amount, const std::string &desc);void error(const Date &date, double amount, const std::string &msg) const;public:const std::string &getId() const{return id;}double getBalance() const{return balance;}static double getTotal(){return total;}void show() const;};class SavingsAccount:public Account {private:Accumulator acc;double rate;public:SavingsAccount(const Date &date, const std::string &id, double rate);double getRate() const {return rate;void deposit(const Date &date, double amount, const std::string &desc);void withdraw(const Date &date, double amount, conststd::string &desc);void settle(const Date &date);};class CreditAccount:public Account{private:Accumulator acc;double credit;double rate;double fee;double getDebt() const {double balance = getBalance();return (balance<0 ? balance : 0);}public:CreditAccount(const Date &date, const std::string &id, double credit, double rate, double fee);double getCredit() const {return credit;}double getRate() const{return rate;}double getFee(){return fee;}double getAvailableCredit() const{if(getBalance() < 0)return credit + getBalance();elsereturn credit;}void deposit(const Date &date, double amount, const std::string &desc);void withdraw(const Date &date, double amount, conststd::string &desc);void settle(const Date &date);void show() const;};账户类实现文件://Account.cpp#include <iostream>#include <cmath>#include <iomanip>#include "Account.h"using namespace std;double Account::total = 0;Account::Account(const Date &date, const std::string &id):id(id), balance(0){date.show();cout << "\t#" << id << " is created" << endl;}void Account::record(const Date &date, double amount, const std::string &desc){amount = floor(amount * 100 + 0.5) / 100;balance += amount;total += amount;date.show();cout << "\t#" << id << "\t" << setw(6) << amount << "\t" << setw(10) << balance << "\t" << desc << endl;}void Account::show() const{cout << "#" << id << "\tBalance:" << balance;}void Account::error(const Date &date, double amount, const string &msg) const{date.show();cout<< "\t#" << id << "\t" << setw(6) << amount << "\t" << setw(10) << balance << "\t" << "Error:"+msg <<endl;}SavingsAccount::SavingsAccount(const Date &date, conststd::string &id, doublerate):Account(date,id),rate(rate),acc(date,0) {}void SavingsAccount::deposit(const Date &date, double amount, const string &desc) {record(date,amount,desc);acc.change(date,getBalance());void SavingsAccount::withdraw(const Date &date, double amount, const string &desc){if(amount>getBalance()){error(date, amount, "you not enough money");} else {record(date,-amount,desc);acc.change(date,getBalance());}}void SavingsAccount::settle(const Date &date){double interest = acc.getSum(date) * rate /date.distance( Date(date.getYear()-1,1,1) );if(interest!=0){record(date,interest,"interest");}acc.reset(date,getBalance());}CreditAccount::CreditAccount(const Date &date,const string& id,double credit,double rate,doublefee):Account(date,id),credit(credit),rate(rate),fee(fee),acc(d ate,0){}void CreditAccount::deposit(const Date &date,double amount,const string &desc){record(date,amount,desc);acc.change(date,getDebt());}void CreditAccount::withdraw(const Date &date,double amount,const string &desc){if(amount-getBalance()>credit){error(date, amount, "you not enough credit");} else{record(date,-amount,desc);acc.change(date,getDebt());}}void CreditAccount::settle(const Date &date){double interest=acc.getSum(date)*rate;if(interest!=0){record(date,interest,"interest");}if(date.getMonth()==1){record(date,-fee,"annual fee");acc.reset(date,getDebt());}void CreditAccount::show() const{Account::show();cout << "\t\tAvailable credit:" << getAvailableCredit(); }日期类头文件://Date.h#ifndef _DATE_H_#define _DATE_H_class Date {private:int year;int month;int day;int totalDays;public:Date(int year, int month, int day);int getYear() const {return year;}int getMonth() const {return month;}int getDay() const {return day;}int getMaxDay() const;bool isLeapYear() const {return year%4==0 && year%100!=0 || year%400==0;}int distance(const Date& date) const {return totalDays - date.totalDays;}void show() const;};#endif日期类实现文件://Date.cpp#include <iostream>#include <cstdlib>#include "Date.h"using namespace std;namespace {const intDAYS_BEFORE_MONTH[]={0,31,59,90,120,151,181,212,243,273,304,33 4,365};}Date::Date(int year,int month,intday):year(year),month(month),day(day) {if(day <= 0 || day > getMaxDay()) {cout << "Invalid date: ";show();cout << endl;exit(1);}int years = year - 1;totalDays = years*365 + years/4 - years/100 + years/400 + DAYS_BEFORE_MONTH[month-1] + day;if(isLeapYear() && month > 2)totalDays++;}int Date::getMaxDay() const {if(isLeapYear() && month == 2)return 29;elsereturn DAYS_BEFORE_MONTH[month] -DAYS_BEFORE_MONTH[month-1];}void Date::show() const {cout << getYear() << "-" << getMonth() << "-" << getDay(); }Accumulator类头文件://Accumulator.h#ifndef _ACCUMULATOR_H_#define _ACCUMULATOR_H_#include "Date.h"class Accumulator{private:Date lastDate;double value;double sum;public:Accumulator(const Date &date, double value):lastDate(date), value(value), sum(0){}double getSum(const Date &date) const {return sum + value*date.distance(lastDate);}void change(const Date &date, double value) {sum = getSum(date);lastDate = date;this->value = value;}void reset(const Date &date, double value) {lastDate = date;this->value = value;sum=0;}};#endif测试用例及截图://main.cpp#include <iostream>#include <iomanip>#include "Account.h"using namespace std;int main() {Date date(2016, 12, 22);cout<<"建立账户"<<endl;SavingsAccount sa1(date, "SA_2016", 0.015);SavingsAccount sa2(date, "SA_2017", 0.015);CreditAccount ca(date, "CA_2018", 10000, 0.0005, 100);cout<<"所有账户的交易记录(存款、取款、结算)"<<endl;cout<<"Time\t\t"<<"Account_id\t"<<setw(6)<<"Amount\t"<<setw (11)<<"Balance\t"<<"Notes"<<endl;sa1.settle(Date(2017, 1, 1));sa2.settle(Date(2017, 1, 1));ca.settle(Date(2017, 1, 1));sa1.deposit(Date(2017, 1, 5), 5000, "salary");ca.withdraw(Date(2017, 1, 15), 3000, "buy a cell");sa2.deposit(Date(2017, 1, 25), 10000, "sell stock 0323");ca.settle(Date(2017, 2, 1));ca.settle(Date(2017, 3, 1));ca.settle(Date(2017, 4, 1));ca.deposit(Date(2017, 4, 1), 2018, "repay the credit");ca.settle(Date(2017, 5, 1));sa1.deposit(Date(2017, 5, 5), 5500, "salary");ca.settle(Date(2017, 6, 1));ca.settle(Date(2017, 7, 1));ca.withdraw(Date(2017, 7, 10), 10000, "donation");sa2.withdraw(Date(2017, 7, 20), 15000, "buy a cell phone");ca.settle(Date(2017, 8, 1));ca.deposit(Date(2017, 8, 26), 1000, "repay the credit");ca.settle(Date(2017, 9, 1));ca.settle(Date(2017, 10, 1));ca.settle(Date(2017, 11, 1));ca.settle(Date(2017, 12, 1));sa1.settle(Date(2018, 1, 1));sa2.settle(Date(2018, 1, 1));ca.settle(Date(2018, 1, 1));cout<<"所有账户信息"<<endl;sa1.show();cout<<endl;sa2.show();cout<<endl;ca.show();cout<<endl;cout<<"所有账户总金额Total:"<< Account::getTotal() <<endl;return 0;}运行结果:11。