武汉理工大学《软件工程导论》实验报告书第1页共10页简易银行卡管理系统1.问题定义由于科学技术的飞速发展,特别是电子计算机的运用,银行卡的使用范围不断扩大。不仅减少了现金和支票的流通,而且使银行业务由于突破了时间和空间的限制而发生了根本性变化。银行卡自动结算系统的运用,使一个“无支票、无现金社会”的到来不久将成为现实。银行卡因为它的小巧,携带方便,集多种消费功能于一体,使得它的流行成为必然。模拟ATM机(自动取款机)实现一个简易的银行卡管理系统。2.可行性研究以下将从3个方面分析这个项目的可行性。2.1技术可行性随着计算机技术的发展,计算机已经越来越普遍了,它的发展也带动了网络的发展,现在网络已经遍布世界的绝大部分有人居住的地方。只要有网络的地方,就可以安装ATM机,持卡者就可以通过ATM机进行各种金钱交易活动。现在实现借记卡的管理系统技术已经成熟,这个项目在目前的技术上是可行的。2.2经济可行性随着计算机技术的发展,计算机的硬件成本越来越低了,所以价格也越来越便宜了。随着软件的发展,开发这个系统的成本也不高,所以每台ATM机的综合成本不会很高,然而每台ATM取款机带来的效益却非常可观,方便的ATM机系统给人们的金钱交易带来了很大的方便,人们通过ATM机的各种交易活动会越来越频繁。ATM机每天能处理大量的交易,它带来的效益,为银行减少了大量的人力资源支出,并且它处理交易的准确度也比人力高许多。总之,ATM机的实现属于银行系统的智能化,它将为银行节省数倍的人力资源,而带来的效益却更高,所以这个项目在经济上是可行的。2.3操作可行性随着九年义务教育的普及,人们的文化水平都有了大幅提高,随着各种电器设备的普及,人们对各种电器的操作也都能在极短的时间能掌握它们的操作,而这个系统也有各种提示,只要识得字的,有一些常识的人都能在极短时间能自己掌握它的操作过程,所以这个系统在用户操作方面也是可行的。综合以上三方面的分析,本系统的开发是可行的。3.需求分析武汉理工大学《软件工程导论》实验报告书第2页共10页3.1功能需求本次开发的银行卡管理系统,首先必须满足传统银行储蓄账户的几个最基本的功能:主要功能:(1)开户(2)存款(3)取款(4)挂失(5)消户(6)转帐(7)退出系统3.2性能需求由于在ATM机上进行自动取款,所以其响应用户服务的速度要比较快,如果它的速度比人工处理还慢,肯定会影响用户的使用,也会是用户对其丧失信心。另一方面,由于这个系统设计到钱,有利益关系,所以顾客对其安全性要求也很高,如果这个系统不安全那就没有顾客敢使用了。还有这个系统必须很准确,这样才能吸引用户对它的使用。3.3可靠性和可用性需求因为这是一个银行系统,所以关系到用户和银行双方的利益,所以它的可靠性一定要很高,这样就要求系统及时备份客户端的数据,以免出现故障时,数据丢失,给双方造成额外的损失。并且系统出故障的总时间不能超过一定的时间,这样才不会影响客户的使用情况。3.4出错处理需求因为人都是会犯错误的,出现一些误操作,但是多次出现同样的误操作的概却是很低的,所以为了使系统能有很好的用户体验,并且保护用户的利益,所以在设计转账等操作时,要设计多次重复操作,以确保用户不会因为误操作造成损失。譬如在修改密码是,输入新密码两次相同,才接受新密码;在转账时,必须输入转入账户号两次,并且两次账户号相同时才接受它的操作。3.5接口需求因为这个系统是面向所有的插卡者,持卡者的操作水平相差很大,所以为了满足所有的用户,武汉理工大学《软件工程导论》实验报告书第3页共10页以使得他们能正确完成各项操作,所以在用户界面上要时刻显示操作提示,以减少用户的误操作,提高用户的操作速度,同时提高ATM机的业务处理效率。3.6约束因为这个系统将面临所有的用户,所以每个人都有接触并使用它的权利,有时候也会出项一些无聊者的恶意操作,他们的恶意操作,不仅会影响ATM机的处理效率,而且频繁的恶意操作也会增加系统的负担,使系统运行速率下降,甚至出现系统崩溃的现象。给众多用户和银行带来较大的损失。所以在设计系统时,要约束用户的行为,以防止恶意的操作。设计时,像输入密码,只允许3次机会,这样不仅可以防止恶意操作,也可以防止不法分子对他人银行卡的非法操作,以牟取不正当利益;在对用户的某些操作也做相应的限制,对于同一种业务在每一天的使用次数有限制,以防无限次的恶意使用,造成系统负担。3.7逆向需求本系统主要用户是持卡者,持卡者只能做他被允许做的事,不能越权操作,持卡者就不允许随便改自己的账户上前的金额,不允许随便修改自己的个人信息,不允许查看别人账户上的信息,不允许解挂失自己的卡,或者自己给自己销户。3.8将来可能提出的需求随着计算机和经济的发展,银行卡的用途将会越来越广,以后银行卡可能还将增加许多功能,譬如银行卡交各种费用:电费、水费、税收、物业管理费、通信费;同时还可以为各种电子消费卡充值:支付宝、百度币、Q币、电子购物卡、公交卡、一卡通;银行卡本身也将有充当电子消费卡的功能。4.数据定义structpiece{charzhanghao[MAX];//银行账号chardefinition[MAX];//身份证号charname[MAX];//用户姓名charpassword[MAX];//银行密码intmoney;//余额intgua;};5.总体设计5.1功能模块图武汉理工大学《软件工程导论》实验报告书第4页共10页图1功能模块图5.2功能模块设计1)开户:创建一个新的银行卡用户,以便管理和使用银行卡。创建银行卡时须使用用户的有效证件(号)来绑定银行卡,用户填写相关的信息以便日后审核。2)查询:用户通过此功能可以查询自己账户上的余额3)取款:用户通过此功能可以从自己的账户上取出少于账户总余额的金额4)存款:用户通过此功能可以向自己的账户上存于一定金额的钱5)修改密码:用户通过此功能可以修改自己的登陆密码6)显示交易信息:用户通过此功能可以查询自己的交易记录7)转账:用户通过此功能可以向目标账户转账8)挂失:用户通过此功能可以向系统提出挂失9)消户:应用户需要将某个不再使用的账户永久删除。10)退出:用户通过此功能退出系统,退出银行卡6.详细设计6.1人机界面设计本项目使用的是字符界面。进入系统后的界面:开户查询挂失修改密码消户转账取款存款用户武汉理工大学《软件工程导论》实验报告书第5页共10页图3进入系统后的界面6.2程序流程图武汉理工大学《软件工程导论》实验报告书第6页共10页图4系统流程图开始密码是否正确?输出登陆界面和提示信息输入账号账号是否存在?输入密码密码是否正确?输出系统界面和提示信息输入服务判断服务种类结束否否是是3次错误1111111211113111111411111155111111611111171111110111111开户取款并保存新数据转账并保存新数据存款并保存新数据修改密码保存新数据显示余额挂失退出系统是否继续其他服务否是武汉理工大学《软件工程导论》实验报告书第7页共10页7.编码7.1编码语言由于本人对C++比较熟悉,所以采用的是C++语言,由于对C++中数据库操作不熟悉,所以本次实验采用的是文本文件存储数据7.2功能模块函数8.测试8.1非法账户测试测试用例:比如用户要开户的话就选择1,程序就会显示武汉理工大学《软件工程导论》实验报告书第8页共10页输入的账号必须是19位,否则就出错:图5非法账户测试结果如果输入错误的话就只有三次输入的机会。8.2错误密码测试用例:比如要查询余额的话,就必须输入账号和密码。账户:6222333344445555666正确密码:123456若输入错误密码(如:666666)就会报错。测试结果:图6错误密码测试结果8.3正确输入测试用例:账户:6222003202102527915正确密码:123456账户余额:0先存款:1000,再取款:500,退出程序测试结果:武汉理工大学《软件工程导论》实验报告书第9页共10页图7存款1000,取款500图8查询余额图9本次程序只完成了部分测试。9实验体会小结9.1通过本次独立完成一个银行卡管理系统最大的收获在于熟悉了系统开发的流程,即如何高效高质的完成一个系统的设计与运行。并能够在此基础之上,进一步了解到软件开发过程的基本流程。将文件代替数据库作为存取用户信息的媒介使我进一步熟悉了文件的操作,能够正确进行文件读写。与此同时,还认识到写一系统和写一般的应用程序完全不一样。应用程序只考虑本模块的功能。而写一系统首先就要管理好各个模块(即各个应用程序)有机的结合才能组成一个系统。基于此,在系统编码和实现之前,系统的需求分析和总体设计就显得尤为重要。宁可前面多花一些时间、精武汉理工大学《软件工程导论》实验报告书第10页共10页力,这样后期开发、维护的成本更小。也就是说,要用软件工程的方法开发出来软件产品才更容易开发和维护。9.2本次实验未完成的功能本次实验中的显示操作信息的功能为实现,因为对同时打开两个文件进行相互操作还不熟练,。另外程序本来还有一个管理员来实现开户和销户功能。由于在类的操作方面还不熟悉,就之编写了一个类,在以后的课余时间中,我将继续完善这个程序的诸多功能。这次的实验对我进来的学习有了一个很大的促进,这个题目也是一个很好的学习题目,在以后的学习中,我将继续用学到的新知识去完善这个系统,我相信在完善这个系统的过程中,我的编程水平和设计水平都会得到极大的提高。10参考文献[1]张海藩.软件工程(第五版).北京:清华大学出版社.2008[2]HerbertSchildt.C++参考大全(第四版).北京:电子工业出版社.2003[3]闵联营.C++程序设计教程.武汉:武汉理工大学出版社.2005[4]徐孝凯.C++语言基础教程.清华大学出版社