C++银行账户管理系统(52页).doc





《C++银行账户管理系统(52页).doc》由会员分享,可在线阅读,更多相关《C++银行账户管理系统(52页).doc(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-荆楚理工学院课程设计成果 学院: 班 级: 学生姓名: 学 号: 设计地点(单位)_ _ _设计题目:_ 银行账户管理系统_ 完成日期: 2014年 月 日 指导教师评语: _ _ _ _ _ 成绩(五级记分制):_ _ _ 教师签名:_ _目 录 1 需求分析12 概要设计22.1系统的可行性22.2 对象设计22.3 利用链表来存放记录33详细设计33.1概念设计阶段主要任务33.2 系统设计框架33.3类的定义43.3 其他重要函数54 测试结果及运行效果74.1 运行结果截图74.2 读取文件截图115 系统开发所用到的技术12附录 代码部分13参考文献26第 50 页-1 需求分析
2、随着科学技术的发展,计算机领域不断取得新的研究成果。计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。尤其是在学校里,要处理大量的学生数据。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对银行账户进行管理,有着手工管理所无法比拟的优点。随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜
3、台之问去排队取款。同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行账户信息管理、是摆在各家银行面前的一个迫切需要解决的问题。近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,都提供了自动存取款机,但这都离不开计算机的高效管理支持。如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。根据题目要求,要实现银行账户的开户(一个用户可以有多个户头)、销户、存款、取款、转账、查询(账号查询、姓名查询)等功能。(程序开
4、始运行时,自动调用文件函数,将文件中的信息导入到内存里)输入-用户姓名(name)、密码 (password)、身份证号码(id_card)、单位(company)、手机号码(phone)、住址(address)、余额 (balance)的输入。开户- 自动生成账号,并将输入的信息添加到链表中。销户-删除该账号的所有信息。存款-通过查找到账号,对余额添加存款数。取款-通过查找到账号,对余额减去取款数。转账-通过查找到账号,把账号A的转账数给予账号B中。查询-根据姓名或账号可以进行用户的信息查询,并显示该用户或账号的全部信息。(程序运行结束时,链表中剩下的信息被写到文件中,同时也可以对文件中的信
5、息进行修改操作)2 概要设计2.1系统的可行性(1)管理上的可行性使用管理方面的可行性,在没有使用银行管理系统前,采取的是人工方式,相对而言耗时大,效率低且造成一定的资源浪费。我们通过设计银行管理系统,可以对银行的一般业务进行有序管理,对于客户的个人资料也不需要做大量烦琐的登记工作,变的相对简单容易操作且不用耗费大量人力财力。(2)技术上的可行性技术方面,我们选择的是vc+操作系统,是我们相对比较熟悉的语言,且应用简便好掌握。这是本小组初次设计银行管理系统,由于技术和知识层面的欠缺,在制作过程中会遇到许多的困难,在编程和设计过程中,感觉到知识积累的不够并且很多知识点已经淡忘。通过老师的指导以及
6、小组成员的一起努力,我们翻越大量资料和操作,我们的系统得以比较顺利的开发出来。但始终因为时间和技术方面的不足,是我们设计的程序依然有很多不完善的地方,我们会在以后的开发中努力学习,使这个系统更完善更适合使用。(3)经济上的可行性经济上,由于我们开发的这个系统相对较小也较简单,不需要投入大笔资金,同时又存在着实用性,能改善原使用方法在财力和人力上的过度消耗。因此这个新系统一经使用便可收到很好的成效,做到合理节约和利用资源。银行方面在使用新系统时只需要花一定资金购买一部分计算机与软件就能实现自动化,既提高了工作效率并且也减少了工作人员的工作量,这使银行在处理业务方面得到很大的提升空间。2.2 对象
7、设计把用户信息设计成类users,由safe_conduct函数用于银行管理员登陆系统的安全操作。并设计简单的类型转换函数(将字符型变量id转换成整型变量,便于添加账号是加1生成新账号)2.3 利用链表来存放记录关系模型的完整性约束规则是对关系的某种约束条件。关系模型中可以有3类完整性约束:实体完整性、参照完整性及用户自定义完整性。此关系模式中既满足实体完整性约束也满足参照完整性约束。此数据库本身满足数据库的安全性。由于数组存放数据的时候要先确定数组的规模,不能动态的分配内存空间,而单链表是非连续存放的,可以对内存空间进行动态分配,此系统是用单链表完成的。然后定义链表的结点类型为结构就可以实现
8、对用户账号、姓名、余额、身份证号码、单位、电话号码、地址保存。每次只 要返回头指针,就可以对整个链表进行操作,因此选链表来存放学生信息。所有记录在操作开始的时候读入文件中的存有的数据(由函数out_to_file写入,转移到类users的对象中,再记录到链表中),在结束的时候再把记录存回(步骤与读入记录时相反)二进制文件中。3详细设计3.1概念设计阶段主要任务设计一个银行账户管理程序,账户的信息有账号(唯一)、姓名、余额、身份证号码、单位、电话号码、地址等,允许用户进行如下操作:开户、销户、存款、取款、转账、查询,一个用户可以有多个户头,账户的数值没有上限。基本要求:程序运行时,可以由用户选择
9、进行何种操作,开户操作要求输入用户信息后自动获取账号,用户销户后账号被回收,并且该账号可以继续分配给其它账户,不允许用户透支,根据姓名或账号可以进行用户的信息查询,所有的账户信息应存放到一个文件中,可以随时的访问和更新。3.2 系统设计框架银行管理员用 户银行账户管理系统销户开户存款取款转账查询图1.1 银行管理系统结构示意图3.3类的定义class userspublic:users(ifstream &file_in);/构造函数,同时从文件读取账户数据users()/重载构造函数,使之用于开户balance=0;next=NULL;void new_user();/新建账户信息void
10、put_id(int id_new);/获取账号char *get_id();/返回账号char *get_password();/返回密码char *get_name();/返回账户名char *get_id_card();/返回身份证号char *get_phone();/返回手机号long get_balance();/返回余额void take_money();/取款void saving();/存款void saving(long money);/转入账long virement();/转出账void out_to_file(ofstream &file_out);/写入文件void
11、 out_to_screen();/输出到屏幕void put_next(users *n);/得到指针users *back_next();/返回指针private:char id5;/账号char password6;/密码char name9;/账户名char id_card18;/身份证号码string company;/单位char phone11;/手机string address;/住址long balance;/余额users *next;/指向下一个账户;3.3 其他重要函数/清空该行void new_line()char symbol;docin.get(symbol);w
12、hile(symbol!=n);/数字转换到字符串void int2str(int n,char *str)char buf10=;int i=0;int len=0;int temp=n0?-n:n;/temp为n的绝对值if(str=NULL)return;while(temp)bufi+=(temp%10)+0;/把temp的每一位上的数存入buftemp=temp/10;len=n0?+i:i;/如果n是负数,则多需要一位来存储负号stri=0;/末尾是结束符023while(1)i-;if(buflen-i-1=0)break;stri=buflen-n-1;/把buf数组里的字符拷
13、到字符串if(i=0)stri=-;/如果是负数,添加一个负号/该用于管理开启程序的账号和密码void safe_conduct()int input_num=0;char un11,pw11;cout请先登录:(用户名为:9021315 密码为:0000)endl;bool blag;/标志错误doblag=0;coutun;coutpw;if(strcmp(un,9021315)!=0)blag=0;cout用户名输入错误!endl;if(!blag)if(strcmp(pw,0000)!=0)blag=1;cout用户密码输入错误!endl;if(blag)input_num+;swit
14、ch(input_num)case 1:cout您还可以输入两次!endl;break;case 2:cout您还可以输入一次!endl;break;case 3:cout您没有权限继续输入,程序将要关闭!endl;exit(0);while(blag);4 测试结果及运行效果4.1 运行结果截图4.2 读取文件截图5 系统开发所用到的技术操作系统: Windows 7开发软件: Visual C+ 6.0技术:功能模块(函数);指针;结构;链表;文件保存及读取。模块与函数:功能模块:求解较小问题的算法与程序称作“功能模块”,各功能模块可以先单独设计,然后将求解所有的子问题的模块组合成求解原问
15、题的程序。将一个大问题分解成多个解决小问题的模块的设计思想。由功能模块组成程序的结构:主控模块和模块组成。模块还可细分。自顶向下,逐步分解的设计思想函数:完成相对独立功能和程序。模块独立:功能独立的子功能模块之间的关系简单,使用独立变量,模块规模适当:分解模块要注意层次:(1)对问题抽象化(2)设计时细化指针就是指向变量和对象的地址。 指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。指针就是指向变量和对象的地址。指针的用途非常广泛,比如如果你想通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 银行 账户 管理 系统 52

限制150内