《C++语言程序设计》课程设计(论文)--银行卡管理系统.doc

上传人:精*** 文档编号:852701 上传时间:2023-09-16 格式:DOC 页数:19 大小:240.21KB
下载 相关 举报
《C++语言程序设计》课程设计(论文)--银行卡管理系统.doc_第1页
第1页 / 共19页
《C++语言程序设计》课程设计(论文)--银行卡管理系统.doc_第2页
第2页 / 共19页
《C++语言程序设计》课程设计(论文)--银行卡管理系统.doc_第3页
第3页 / 共19页
《C++语言程序设计》课程设计(论文)--银行卡管理系统.doc_第4页
第4页 / 共19页
《C++语言程序设计》课程设计(论文)--银行卡管理系统.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、 目 录第1章 课程设计目的与要求11.1 设计目的11.2实验环境11.3预备知识11.4设计要求1第2章 课程设计内容22.1 课题描述22.2 系统设计22.2.1功能分析52.2.2面向对象设计52.2.2类成员描述82.3程序实现82.3.1源码分析92.3.2运行结果15第3章 课程设计总结17参考文献18第1章 课程设计目的与要求1.1 设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程

2、C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。1.2实验环境硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使

3、用:VC+ 系统,或其他C+语言应用程序开发软件。1.3预备知识熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。1.4设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2.积极上机调试源程序,增强编程技巧与调程能力。3.认真书写课程设计预习报告,课程设计说明书。4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章 课程设计内容2.1 课题描述银行卡于1915年起源于美国。最早发行银行卡的机构并不是银行,而是一些百货商店、饮食业、娱乐业和汽油公司。美国的一些商店、饮食店为招徕顾客,推销商品,扩大营业额,有选择地在一定范围内发给顾客

4、一种类似金属徽章的信用筹码,后来演变成为用塑料制成的卡片,作为客户购货消费的凭证,开展了凭信用筹码在本商号或公司或汽油站购货的赊销服务业务,顾客可以在这些发行筹码的商店及其分号赊购商品,约期付款。这就是银行信用卡的雏形。据说有一天,美国商人弗兰克麦克纳马拉在纽约一家饭店招待客人用餐,就餐后发现他的钱包忘记带在身边,因而深感难堪,不得不打电话叫妻子带现金来饭店结账。于是麦克纳马拉产生了创建信用卡公司的想法。1950年春,麦克纳马拉与他的好友施奈德合作投资一万美元,在纽约创立了大莱俱乐部(Diners Club),即大莱信用卡公司的前身。大莱俱乐部为会员们提供一种能够证明身份和支付能力的卡片,会员

5、凭卡片可以记账消费。这种无须银行办理的信用卡的性质仍属于商业信用卡。 1952年,美国加利福尼亚州的富兰克林国民银行作为金融机构首先发行了银行信用卡。1959年,美国的美州银行在加利福尼亚州发行了美州银行卡。此后,许多银行加入了发卡银行的行列。到了六十年代,银行信用卡很快受到社会各界的普遍欢迎,并得到迅速发展,信用卡不仅在美国,而且在英国、日本、加拿大以及欧洲各国也盛行起来。从七十年代开始,香港、台湾、新加坡、马来西亚等发展中国家和地区,也开始发行信用卡业务。 七十年代末期,当中国打开国门,大胆引进外国的先进科学技术和管理经验的同时,信用卡作为国际流行的信用支付工具也进入了中国,并得到较快的发

6、展。1979年,中国银行广东省分行首先同香港东亚银行签订协议,开始代理东美信用卡业务,信用卡从此进入了中国。不久,上海、南京、北京等地的中国银行分行先后同香港东亚银行、汇丰银行、麦加利银行以及美国运通公司等发卡机构签订了兑付信用卡协议书。 1985年3月,中国银行珠海分行第一张中银卡(BOC卡)问世,1986年6月,中国银行北京分行发行了长城信用卡,经中国银行总行命名后,长城信用卡作为中国银行系统统一的信用卡名称,在全国各地的中国银行分支机构全面推广。长城信用卡的诞生和发展,不仅填补了我国金融史册上的一项空白,而且预示着我国传统的一手交钱,一手交货的支付方式,将发生重大的变革。20世纪70年代

7、以来,由于科学技术的飞速发展,特别是电子计算机的运用,使银行卡的使用范围不断扩大。不仅减少了现金和支票的流通,而且使银行业务由于突破了时间和空间的限制而发生了根本性变化。银行卡自动结算系统的运用,使一个“无支票、无现金社会”的到来不久将成为现实。银行卡的大小一般为85.6053.98 mm(3.3702.125 英寸),但是也有比普通卡小43的迷你卡和形状不规则的异型卡。 银行卡,是指由银行向社会发行的具有消费信用、转账结算、存取现金等全部或部分功能的信用支付工具。随着时代的发展和不断进步,银行卡已经是人们日常生活必不可少的生活工具之一。银行卡管理系统为银行管理层提供全面的银行卡客户分析,系统

8、构建在数据仓库基础上,整合银行卡相关的数据,通过对数据进行快速而准确的分析和挖掘,达到计算机管理银行卡相关功能,简单的金额核算的目的。系统本着以客户为中心的服务宗旨,充分获取客户信息,为金融数字化服务提供更为实用、更为有效的信息,为金融的客户服务中心做好了充分的准备。截至2008年年末,全国银行卡发卡总量18亿张,其中借记卡16.58亿张,同比增长17.59,信用卡1.42亿张,同比增长57.23。特约商户达到118万户,POS机达到185万台,ATM达到17万台。 在联网通用方面,2004年联网通用范围在全国范围内基本实现。在此基础上,银行卡联网通用网络成功实现出境和下乡。全国共有20个农民

9、工输出大省(区、市)开通该业务,其中2008年累计成功取现79.8亿元。截至2008年末,人民币银行卡已经在近50个国家和地区的ATM网络,30个国家和地区的POS网络实现受理。境外受理人民币银行卡的特约商户达到43万户,POS机达到万台,ATM达到58万台,交易金额突破600亿元人民币。 随着信息技术的进步和社会分工的细化,我国银行卡服务专业化趋势日益明显,银行卡已从银行的一项内部业务,转化为一个涵盖发卡、收单、清算及机具制造等业务的支付产业链。一些银行相继成立了专门从事信用卡业务的部门,并出现了非金融机构性质的专业化收单机构。 2003年中国银联成立,这个专门建设和运营全国统一的银行卡信息

10、转接和资金清算系统,实现了银行卡跨行信息交换的专业化服务,市场资源、机具设备实现共享。经过几年的发展,统一的“银联”标识人民币银行卡和具有自主知识产权、本土化的银行卡支付网络和品牌已经形成。 此外,人民银行已与银监会在银行卡风险管理、与公安部在打击银行卡犯罪、与商务部在拓展银行卡受理范围、与财政部在推广公务卡、与税务总局在金融税控机的试点等方面建立了较为顺畅的协调沟通机制,在银行卡产业监督方面开展了良好的合作。 银行卡业的发展有助于促进社会经济发展 相关机构的调查显示,银行卡支付的现金替代作用和消费信贷功能,能把人们潜在或随机性的消费需求变成实际的消费支出。 银行卡相关交易环境的建设,将带动电

11、信通讯、机具制造、软件设计等行业的发展。有机构研究表明,银行卡支付在一个国家消费总支付中的比重每增加10,能带动GDP增长0.5。 据中国银联研究,目前,我国的现金支付成本在整个现金交易额中的占比为1.76,而银行卡支付成本仅占整个银行卡消费交易额的0.67。现金的交易成本是银行卡的2.6倍,即每100元的交易,使用银行卡可比现金节约社会成本1.09元。测算显示,2006年至2008年的3年间,我国银行卡消费总量累计超过了8.5万亿元,比用现金支付节约社会成本927亿元。 此外,银行卡支付可以自动产生交易记录,能够提高经济交易透明度、加强税控、增加税收收入、控制非法收入。银行卡的使用,还有利于

12、培养公众良好的支付习惯。尤其是信用卡,可以培养人们的诚实守信理念,推动社会信用文化建设。 进一步促进银行卡产业持续健康发展 尽管我国银行卡业20余年来取得了良好的发展成就,为经济社会发展贡献了力量,但总体来看,银行卡业在我国还属于发展的初级阶段,还存在着需要改进和提高的方面。 与发卡市场相比,受理市场发展较为滞后,面临规模扩张和规范管理的双重压力。业内专家认为,应规范银行卡受理市场发展,建立更加专业化的收单机构管理制度,完善银行卡收益分配机制。 目前,银行卡发展区域也不均衡,欠发达地区和发达地区在银行卡经营管理、用卡意识、市场培育、创新水平等方面都存在较大差距。农村地区银行卡应用有待扩大,银行

13、卡支农惠农的作用还应加强。 在银行卡运用范围不断扩大的同时,银行卡面临的风险管理形势也日益严峻,经营机构的风险管理能力需要加强。目前应进一步完善银行卡使用的安全措施,堵塞安全漏洞,加大打击银行卡犯罪的针对性和力度,建立促进银行卡市场健康、稳定发展的长效机制。 同时,银行卡自主品牌的创建涉及发卡、受理、清算等环节,需要统一的标准规范体系,高效的交换网络,全球化的受理市场,而现实状况与这些客观要求之间仍存在较大的差距。因此银行卡发卡、收单、转接、外包服务等各环节有待专业化发展,银行卡服务收费市场化形成机制,市场参与方的激励机制还有待完善。此外还应鼓励和规范非金融机构参与受理市场,提高竞争效率。2.

14、2 系统设计2.2.1功能分析阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。本系统总体上相对于ATM取款机程序的设计思路较简单一些。只是银行存取款程序的雏形,或者说是最基本的一个入门级程序。程序共分为两大部分;第一部分是银行卡管理系统的登陆界面,第二部分是在进入了卡号管理指令之后的用户界面。第一部分其中包括三条指令;第一条指令是创建新卡,第二条指令是卡号登陆,第三条指令是推出系统。第二部分其中包括四条指令;第一条指令存款,第二条指令是取款,第三条指令是读取日志,第四条指令是返回。函数由主函数开始定义了一个结构体,用

15、于记录用户的个人信息,其中包括卡号,姓名,存款,存款日志和取款日志。随后在定义的整型数组里输出了系统登陆的界面。 创建新卡:在以L为变量的for循环里编写了创建新卡的程序段,其中包含“请输入卡号”和“请输入姓名” 是否继续创建新卡(y/n)请选择其他操作。 卡号登录:以if语句开始下,编写了卡号登陆的程序段。进入后显示的就是请输入卡号当数组的中的变量满足条件屏幕会出现您输入的卡号存在,请继续您的操作的提示语句。此时屏幕显示4条执行语句;存款,取款,读取日志,和返回。在随即出现的子菜单里共有8条if语句,分为4大模块。有存钱模块,取钱模块,日志模块和退出模块。存钱模块的if语句功能为判断输入是否

16、有误。取钱的if语句用于判定账户所持有金额。如果提取金额小于持有金额就执行语句,否则显示您输入有误,请核对后再输入。日志模块的if语句作用判定于账户是否有过交易。 退出系统:顾名思义就是指退出当前进程所执行的任务,点击键盘数字3,按下回车键,即可退出系统。2.2.2面向对象设计主函数流程图如图2.1所示:图2.1 主函数流程图用户操作数流程图如图2.2所示:图2.2 用户操作数流程图系统结构图如图2.3所示:银行卡管理系统进入主函数调用menu( )存款取款查询余额查询历史记录用户信息保存并退出用户登录 注册开户图2.3 系统结构2.2.2类成员描述 1User 类class User 主要制

17、定用户的成员数据,并进行登录与保存功能:画出User 类的类图如2.4所示:user-Accout:int-Name:string-Fmoney:int-ID:string-Address:string-Telephone:ing+get(User &):void+password():void+login(user &):bool 图2.4读者类UML图 表1 User 类说明表名称属性说明Accout数据成员用户账户数据Name数据成员用户姓名Fmoney数据成员用户首次金额ID数据成员用户身份证号Address数据成员用户地址Telephone数据成员用户电话Pword1数据成员用户密码

18、Pword2数据成员用户再一次确认密码Get()构造函数默认构造函数Login()成员方法登录方法Password()成员方法密码验证SaveFile()成员方法保存数据2Function 类Function 类 主要实现用户的各种功能:画出User 类的类图如图2.5所示:function-SaveAnddrawmoney:int+Saving(user&):void+Drawing(alance(User &):void+Record(User &):void图2.5读者类UML图 表2 User 类说明表名称属性说明SaveAndDrawMoney数据成员用户存入与取出金额Saving(

19、)成员方法实现存款功能与保存数据Drawing()成员方法实现取款功能与保存数据Balance()成员方法查询余额功能Record()成员方法查询历史记录2.3程序实现2.3.1源码分析#include#include#include#include#include#include#includeusing namespace std;class Function;class Userpublic: void get(User& );friend class Function; ostream &print(ostream &os);/friend ostream & operator(ist

20、ream & i, User & u);void PassWord();bool Login(User &);void SaveFile(User &); vector StrFunction;User()User(int A,string N,int F,string I,string Ad,int T):Accout(A),Name(N),Fmoney(F),ID(I),Address(Ad),Telephone(T)public: int Accout; string Name; int Fmoney; string ID; string Address; int Telephone;

21、char Pword19; char Pword29;class Functionpublic:void Saving(User &);void Drawing(User &);void Balance(User &);void Record(User &);private:int SaveAndDrawMoney;void Function:Saving(User &u) system(cls); coutnnntt*nendl; coutSaveAndDrawMoney; u.Fmoney+=SaveAndDrawMoney; strstream ss; string str2;ssstr

22、2; string frist=Record+str2 +.txt; const char *RecordFile=frist.c_str(); ofstream outfile(RecordFile,ios:out|ios:app); outfilestr1SaveAndDrawMoneyendl; outfile.close(); outfile.clear(); coutnntt操作成功,单击任何键返回主菜单!; coutnntt操作成功,单击任何键返回主菜单!;*nendl;while(!infile.eof() getline (infile,str1); coutnttstr1en

23、dl;coutntt*nendl;coutntt操作成功,单击任何键返回主菜单!;getch();ostream &User:print(ostream &os) /marksystem(cls); osnnntt*nendl; Pword28=0; if(strcmp(Pword1,Pword2)=0) coutnntt密码确认成功,单击任何键进入主菜单; getch(); return ; else num+; coutntt你输入的密码错误,请重新输入!nendl; if(num=3) system(cls); cerrnnntt对不起,你三次输入不正确nendl tt感谢你的使用,再见

24、! endl exit(0); void User:get(User& u)system(cls); coutnnntt请输入用户信息:nendl; couttt*nendl; coutAccout; coutName; coutFmoney; coutID; coutAddress; coutTelephone; u.PassWord(); coutntt*nendl;void Sign()system(cls);coutnnnnnnttt谢谢您使用银行管理系统 t nnendl;couttt*nendl;couttt 姓名: nn tt 班级: nn tt 学号: nnendl; cout

25、ntt 已经成功退出endl ntt 欢迎你的光临! endl;char custom(User &u) char x;int k=0;system(cls);coutnnnttntt ntt 欢迎使用储蓄管理系统 ntt ntt 请用户在使用前选择开户: ntt ntt 请选择: ntt 1:注册开户 ntt 2:用户登录 ntt 其他:退出 ntt ntt nttnendl; coutx; if(x=1) u.get(u); else if(x=2) while(k3) if(u.Login(u) /判断登陆是否成功 return 0; elsesystem(cls);cerrnnnttt

26、输入有误!nendl ttt请重新输入: =3) system(cls); cerrnnntt对不起,你三次输入不正确nendl ntt感谢你的使用,再见!nendl; exit(0); else Sign(); exit(0); return 0;char menu() int k=0; char a3,c,i;system(cls); coutnnntt 主菜单 nn ;couttt*ntt* *ntt* *ntt* 操作方式: *ntt* *ntt* 1.存款 2.取款 *ntt* *ntt* 3.查询余额 4.查询历史记录 *ntt* *ntt* 5.用户信息 6.保存并退出 *ntt

27、*nendl;while(k3)couta;if(strlen(a)=1)for(i=1;i=6;i+) c=i;if(c=a0) return c;elsesystem(cls);cerrnnnttt输入有误!nendl ttt请重新输入: =3)system(cls); cerrnnntt对不起,你三次输入不正确nendl ntt感谢你的使用,再见!nendl; exit(0);return c;char Choose( User &u,Function &F) char c=menu(); while(c!=6) switch(c) case 1: F.Saving(u);c=menu(

28、);break; case 2:F.Drawing(u);c=menu();break; case 3:F.Balance(u);c=menu();break; case 4:F.Record(u);c=menu();break; case 5:u.print(cout);c=menu();break; u.SaveFile(u); Sign(); return 0;int main() User u; Function F; vector FunctionUser; custom(u); Choose(u,F); return 0;2.3.2运行结果主界面页面如2.5所示:主要导航栏有:欢迎

29、使用储蓄卡管理(存款、取款、查询余额、查询历史记录、注销退出)图2.5主界面存钱页面如图2.6所示:图2.6存钱页面取款页面如图2.7所示:从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上。输入取款金额: 图2.7取钱页面用户信息页面如图2.8所示:图2.8用户信息页面第3章 课程设计总结这次课程设计基本上含盖了大学一年级学习到的C+ 语言知识点,课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。这次课设使我了解我编程思想和

30、编程技巧,也认识了软件生命周期的各个环境,包括构思、设计、编写、调试、发布、文档化、维护和修订。编程的风格也很重要,同学只关心程序运行的结果,而对程序代码的结构的良好丝毫不在意。这是非常不可取的,如果我们希望将来从事编程工作,在这一点上该引起足够的重视。这是严谨的态度,很重要。个人感觉通过这些次实验,自己在软件开发方面有了很多的了解,对计算机软件也有了更多的兴趣!总之,本学期的银行卡管理系统实验能够很好的实现老师的既定目标,同时扩宽了我们学生学习面,鉴于目前自己掌握的实际情况,欲安排以后学习研究工作如下: 1.认真复习计算机软件相关课程,争取取得好成绩; 2.英语也要多学习,尤其是专业英语,对

31、阅读参考资料有很大方便! 3.根据需要加深编程语言的学习;多看看方面的书,对了解软件开发有很大帮助. 4.业余时间扩宽计算机网络硬件方面的视野,尤其希望可以去软件开发公司的机房参观学习,提高个人修养与能力; 6.对于软件开发,我们要树立重视实践更甚于重视理论的观点!最后非常感谢翟宝峰老师在本次课程设计中对我的帮助!参考文献1徐静芬.C+语言程序设计.辽宁.广播大学出版社,2008:1-42黄明明.C+语言程序设计基础.上海.电子工业出版社,2009:2-3 3钱能舒.C+程序设计教程.武汉.华中科技大学出版社,2009:2-34郑飞倩,董安.C+语言.北京.清华大学出版社,2010:4-75吴华恩.C+程序设计.北京.机械工业出版社,2008:5-76Devied.C/C+程序设计.北京.中国铁道出版社,2009:6-97洪永清.面向对象的系统分析.天津.天津大学出版社,2008:5-108谭浩强.面向对象建模.武汉.科技大学出版社,2010:5-119邵伟忠.C常用算法程序集.天津.人民大学出版社,2009:4-910徐世亮.C+大学教程.北京.人民邮电出版社,2010:9-1418

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922