《2022年C++课程设计--银行账号管理系统.docx》由会员分享,可在线阅读,更多相关《2022年C++课程设计--银行账号管理系统.docx(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -面对对象技术与C+ 课程设计报告题目:银行账号治理系统院 (系): 运算机科学与工程学院专 业:信息对抗技术班 级:130609 学 生:学 号:指导老师:姜虹2022 年 07 月细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -1、内容摘要随着经济的加速进展, 银行每天要处理大量的存取款大事,做好存取款 是银行工作重要的环
2、节,然而要有效处理必需要有良好的程序和数据管 理系统来建立 一个良好的软件系统来实现快速、有效、精确、安全的处 理银行事物; 我所做的银行治理系统主要用途是利用 C+ 编程实现储 蓄卡开户治理、存取款治理、用户查询信息、注销等功能;其中,储蓄 卡开户治理模块包括开户号、开户姓名、存入金额、密码;(存入金额必 须是数字) 登入账号后进入用户模块,模块内包括查看信息、存款、取 款、转账、更换 密码; 注销模块中,一旦注销该卡号就不存在;系统主 要有银行类和客户类, 客户类是银行类的公有继承类;银行类中有实现 开户、转账等功能函数,客户类中有实现存钱、取 钱 等 功 能 函 数 ;一个用户只需创建一
3、个客户类对象,当用户进行开户、销户等操作时,可以直接调用银行类的成员函数;该银行治理信息系统, 运用了一些特色算法,如 YH 中的 PassWord 算法,且设计过程思路清楚、模块划分简洁;经过实践证明,模 实现;块 划 分 是 合 理 的 , 极大得提高了本系统的目 录1、课设目的 2、课程设计任务书 3、需求与功能分析 4、系统总体框架5、模块设计与分析 6、类的设计与分析 7、功能测试 8、课程设计总结 9、心得体会第 - 1 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 29 页 - - - - - - -
4、- - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -10、程序源代码第 - 2 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -一、 内容摘要通过用 C+二、 课设目的 :1通过面对对象程序设计实践的训练,使同学更系统把握面对对象程序设计思想和方法,并娴熟地应用 的编程才能及程序调试才能;C+语言编写解决实际应用问题的程序,提高同学2通过面对对象程
5、序设计实践的训练,使同学养成良好的程序设计习惯,初步熟识软件开发的过程, 为后续课程的学习和将来进行软件开发打下良好的基 础;3通过面对对象程序设计实践的训练,使同学在分析问题、解决问题等方 面得到锤炼,增强同学调查讨论、查阅技术文献、资料、手册以及编写技术文献 的才能; 4.总结及运用一学期来所学的学问,训练我们敏捷应用所学C+学问,独立完成问题分析、 总结设计、具体设计和编程实现等软件开发全过程的综合实践能 力;巩固、深化理论学问,提高编程水平,并在此过程中培育我们严谨的科学态 度和良好的工作作风及团结协作的精神;二、需求与功能分析随着社会经济的进展,信息化程度的不断深化,银行的传统业务己
6、愈来愈不 能满意银行客户的需要;现今,人们的金融意识、科技意识己经有了很大的提高,在紧急劳碌的生活 中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用 了;同时,各种经营单位如联通、移动、自然气、用电、煤气、自来水、各种企 业等等一是为了提高服务质量、 便利客户,二是为了减轻自己日趋繁重的工作量,纷纷托付银行为其开展代收代付业务: 同时,随着我国加入世贸组织的日益接近,我国的银行业将面临更加猛烈的同业竞争,如何供应更多的金融产品和更优质的服务,如何吸引更多的客户, 如何利用运算机技术加强银行帐户信息治理、进行银行业务再造,提高银行的工作效率和业务竟争才能是摆在各家银行面前的
7、一个迫切需要解诀的问题;近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业第 - 3 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -务特点,为其供应各种高效、快捷的代收代付业务,也就是中间代理业务,目前 以与广大人民群众生活亲密相关的各项缴费业务如水电费、电话费、手机费等代收业务为主, 这些业务开展方式多种多样, 但一般都离不开运算机的高效治理支 持;随着代理业务不断进展
8、,业务品种越来越多,各项业务做法互有差异,这就 对银行的电子化水平和相应的治理水平提出了更高的要求;如何利用电子化的手 段构建一个高效统一的、 通用敏捷的系统来治理各种各样的业务,是每个商业银 行所要讨论的课题; 支持决策系统的, 需要在数据库的基础上, 进行联机分析处 理,每次处理的数据量大,响应时间长;特殊是银行每天要处理大量的存取款大事,做好存取款是银行工作重要的环节,然而要有效处理必需要有良好的程序和数据治理系统来建立一个良好的软件 系统来实现快速、有效、精确、安全的处理银行事物;主要用于银行的储蓄卡治理系统,它可以帮忙我们有效、精确、并且高效实 现的完成存取大事; 此系统操作便利效率
9、、 安全性高, 只要客户开户并设定好密 码就可以轻松的实现存取款;系统实现的主要有储蓄卡开户治理、存取款治理、用户查询历史数据显示、注销等功能;储蓄卡开户治理模块:卡号、姓名、开户金额、身份证号、地址、电话、密 码、确认密码和储存组成; (开户金额必需是数字,密码和确认密码必需一样是 六位数字)* 注销模块:一旦注销该卡号就不存在且余额提示你取出;通过该银行账户治理系统地运行,使办公人员可以轻松快捷的完成对账户管 理的任务, 提高账目治理效率, 使银行的账目治理工作系统化、 规范化、自动化;该银行帐目治理信息系统,优点是设计过程思路清楚、模块划分简洁,设计 各阶段分工明确; 经过实践证明, 该
10、划分是合理的, 极大得提高了本系统的实现;三、面对对象技术与C+课程设计任务书课程面对对象技术与C+ 班级130605-606 、609-610 、612指导老师姜虹第 - 4 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -题目银行账户治理完成时间13-14 学年第 2 学期第 18 周/ 第 19 周1问题描述 设计一个银行账户治理程序, 账户的信息有账号 (唯独) 、姓名、余额、身份
11、证号码、单位、电话号码、地址等,答应用户进行如下操 作:开户、销户、存款、取款、转账、查询,一个用户可以有多个户 头,账户的数值没有上限;主 要 内 容2基本要求 程序运行时,可以由用户挑选进行何种操作,开户操作要求输入 用户信息后自动猎取账号, 用户销户后账号被回收, 并且该账号可以 连续安排给其它账户, 不答应用户透支, 依据姓名或账号可以进行用户的信息查询, 全部的账户信息应存放到一个文件中,可以随时的访问和更新;3测试数据程序应输入不少于10 人的账户信息, 应考虑到人员同名的情形;1封面:(格式附后)2课程设计任务书3课程设计报告:设 计 报 告 要 求 系统总体方案 设计思路和主要
12、步骤 各功能模块和流程图 设计代码 心得体会和参考资料说明:同学完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整 (也可用以打印),文字不少于5000 字,并装订成册;版 面 要 求1. 题目用黑体三号,段后距18 磅(或 1 行),居中对齐;日2 标题用黑体四号,段前、段后距6 磅(或 0.3 行);3. 正文用小四号宋体,行距为1.25 倍行距;4. 标题按“ 一” 、“ ” 、“ 1” 、“ ” 次序编号;上 机 时 间 安 排周次星期一二三四五六第 2 周1-4 1-4 1-4 1-4 1-4 指导时上机时间, E506 间地点第 - 5 - 页 共 29 页细心整理归纳
13、 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -四、系统总体框架银行治理系统登录界面注册开户主界页面注销退出存取余修注钱款额改销页页页 图 1 -1 密页面面面码面三、模块设计与分析 储蓄卡开户治理模块:3.1 登录页面 输入卡号和密码,依据用户输入的卡号和密码,到后台文件查询,如正确就 登录胜利,并储存卡好信息已备后用;如卡号存在和密码不匹配或无该卡号已经注销,提示该卡号已存在或已注 销,保持界面三次不变等待用户的重新
14、输入;3.2 主界面页面 主要导航栏有:欢迎使用储蓄卡治理(存款、取款、修改密码、转账功能、注销退出)3.3 储蓄卡开户页面 供应开户界面,由用户输入新储蓄卡的全部信息,将该信息储存到文件中,第 - 6 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -并将开户金额作为该卡的第一次存款记录存人文件;3.4 存钱页面从登录界面得到卡号,并供应数据输入界面,等待用户的输入存款金额;从后台数据库中
15、找到该用户余额记录,修改余额,并将该存款大事的相应信息写人数据库,同时将存钱的金额显示在页面上;3.5 取款页面 从登录界面得到卡号,并供应数据输入界面,等待用户输入取款金额,假如取款金额大于该用户卡上的余额就不能取款,或者将新的余额写人文件, 并将本次取款大事写入文件同时将取钱的金额显示在页面上,;3.6 注销页面从关闭文件,状态为注销,最终关闭整个系统;列举取款模块进行分析:void consumer:fetchmoney float m; char ch; do coutendl输入取款金额 :m; whilem=0 cout请输入正确的数字 .endl; coutm; ifmoneym
16、 cout对不起,你的余额不足 .endl; else money=money-m; coutendl操作胜利,请收好钱 . endl; cout是否要连续该项操作: Y/N endl; coutch; whilech.=n&ch.=N&ch.=Y&ch.=y/ coutch; whilech=y|ch=Y; 挑选错误时判定在取款页面中, 输入取款金额并对取款金额与存款余额进行比较,假如取款金额小于零,请输入正确的数字;假如取款金额大于存款金额,对不起,您的余 额不足;假如取款金额小于存款余额的话就执行,并储存记录;四、类的设计与分析 1comsumer 类 class comsumer 主要
17、制定用户的成员数据,并进行登录与储存功能:相关代码:class consumer:public YH/ 用户类 ,继承银行类的属性 public: friend class YH; consumerint id,string Name,int Number,double IN,string Company,string Address,string PassWord,float m ID=id;name=Name;number=Number;in=IN;company=Company;address=Addres s;money=m;passwd=PassWord; consumerID=0;
18、name=0;number=0;in=0;company=0;address=0;money=0;p asswd=0; int get_idreturn ID; void savemoney;/ 取钱string get_passwdreturn passwd;/ void display; 取得密码void fetchmoney; / 取钱void change_passwd; void add_moneyfloat;/ 运算余额 void dec_moneyfloat;/ 运算余额 float get_money;/ 卡卡转帐 private: int ID; / 开户帐号 string
19、passwd; / 用户密码 string name; / 用户姓名第 - 8 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -float money; / 开户金额 int number;string company;string address;double in; ; 名称属性表 1 comsumer 类说明表说明ID 数据成员用户账户数据name 数据成员用户姓名money 数据成
20、员用户首次金额in 数据成员用户身份证号address 数据成员用户地址number 数据成员用户电话Passwd 数据成员用户密码savemoney 成员方法存钱成员方法取钱fetchmoney change_passwd 成员方法修改密码get_money 成员方法卡卡转账2YH 类 YH 类 主要实现用户的各种功能:相关代码:class YH / 银行类public: void set_account;/ 银行开户功能 void del_account; / 注销账户功能 void transferint; / 转账功能 void enter_account; / 进入用户个人信息功能
21、void addmoneyint,float;/ 存款功能void exitYH;/ 退出系统 void functionshow; void save; void load;/ 功能界面 protected: consumer *account20; static int acnum;/ 账户数 ; 名称属性表 1 YH 类说明表说明acnum 数据成员账户数set_account 成员方法开户功能第 - 9 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 29 页 - - - - - - - - - 名师归纳总结
22、 精品学习资料 - - - - - - - - - - - - - - -del_account 成员方法注销账户功能transfer 成员方法转账功能functionshow 成员方法主界面显示功能addmoney 成员方法存钱功能exitYH 成员方法退出系统功能五、功能测试6.1 首页:图 6-1:6.2 储蓄卡开户页面图 6-2 :第 - 10 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - -
23、- - - -6.3 主界面页面主要导航栏有:欢迎使用储蓄卡治理(查看帐户信息、存款、取款、修改密码、转账、返回上一菜单)图 6-3:第 - 11 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -6.4 存钱页面图 6-4:6.5 取款页面从登录界面得到卡号,并供应数据输入界面,等待用户输入取款金额,假如取款金额大于该用户卡上的余额就不能取款,或者将新的余额写人文件, 并将本次取款大事写
24、入文件同时将取钱的金额显示在页面上;第 - 12 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -输入取款金额:图 6-5:当取款金额大于现有金额:图 6-6:第 - 13 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - -
25、- - - - - - - - - - -当取款金额小于或等于现有金额:图 6-7:第 - 14 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 15 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -6.6 修改密码页面当两次输入的密码相同时:图 6-8:当两次输入的密码不相同时:图 6-9:6.7 卡卡转帐 图 6-10:第 - 15 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - -
26、- 第 16 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -6.8 用户信息 图 6-11:6.9 销户页面 图 6-12:第 - 16 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 17 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -6.10 退出系统页面图 6-13 七、 课程设计总结 在此次课程设计中运用了遇到许多问题,有时候编译老有错误
27、;虽电脑提示 错误,但仍是找不到究竟在哪个地方,最终经和队友分析原先是有些标点错误,中文标点和英文标点相像,但在运行时中文标点会出错;八、心得体会 这次课程设计收成了好多,我 感受许多;深刻地懂得了理论联系实际的重要 性;在课设过程中,我发觉了自己有许多欠缺的地方,比如:涉及的相关学问不全面,学问学得不够透彻, 在课设时就会遇到重重困难,它启示着我在以后的学 第 - 17 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 18 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - -
28、- - - - - - - - -习中要精益求精,对有用的学问要做到深化讨论 . 通过这次课设,又进一步巩固 了课本上的学问,达到了学以致用的目的,仍有,老师让我们三个人一组编程,各自都有不同的编程课题; 在此过程中, 不仅增强了我们团结协作的精神仍增强了我们仔细摸索问题的好习惯;八、程序源代码 #include #include #include using namespace std; class consumer; class YH /银行类 public: void set_account;/ 银行开户功能 void del_account; / 注销账户功能void transfer
29、int; / void enter_account; /转账功能 进入用户个人信息功能void addmoneyint,float;/ 存款功能void exitYH;/ 退出系统void functionshow; void save; void load;/ 功能界面protected: consumer *account20; static int acnum;/ 账户数; class consumer:public YH/ public: friend class YH; 用户类 , 继承银行类的属性 consumerint id,string Name,int Number,doub
30、le IN,string Company,string Address,string PassWord,float m ID=id;name=Name;number=Number;in=IN;company=Company;address=Address;m oney=m;passwd=PassWord; consumerID=0;name=0;number=0;in=0;company=0;address=0;money= 0;passwd=0; int get_idreturn ID; 第 - 18 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - -
31、 - - - - 第 19 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - - void savemoney;/ 取钱取得密码 string get_passwdreturn passwd;/ void display; void fetchmoney; / 取钱 void change_passwd; void add_moneyfloat;/ 运算余额 void dec_moneyfloat;/ 运算余额 float get_money;/ 卡卡转帐private: int ID; / 开户帐号 st
32、ring passwd; / 用户密码 string name; / 用户姓名 float money; / 开户金额int number;string company;string address;double in; ; void YH:save ofstream infilebankdat.dat,ios:out;/以输出方式打开文件ofstream outfilebankdat.dat,ios:out;/以 输 出 方 式 打 开 文 件bankdat.dat接收从内存输出的数据int n=0; outfileacnum ; forn=0;nacnum;n+ outfileID ;/把
33、信息写入磁盘文件bankdat.dat outfilemoney ; outfilename ; outfilepasswd ; outfilenumber ; outfilecompany ; outfileaddress ; outfilein ; outfile.close; /* 读入用户信息功能实现 */ void YH:load ifstream infilebankdat.dat,ios:in;/if.infile 以输入方式打开文件cerr 读取错误 , 无资料中 .acnum; forn=0;nid;/ 从磁盘文件 bankdat.dat 读入信息 infilem; infi
34、lenam; infilepassw; infilecompany; infilenumber; infileaddress; infilein; accountn-passwd; consumer * acc = new consumerid,nam,number,in,company,address,passw,m; / 每读入一个 n 开创一段内存 accountn = acc; / 赋值首地址 infile.close; cout 读取资料正常 .endl; /* 转账功能实现 */ void YH:transferint x int id; coutid; int flag = 1;
35、 int i = 0; whileiget_id flag = 0; else i+; ifflag cout 帐号不存在 .endlendl; return ; float b; coutendlb; whileb=0 cout 请输入正确的数字 .endl; 第 - 20 - 页 共 29 页细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 21 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -coutb; ifaccountx-get_moneyb / 函数调用友元类 consumer 的公有成员cout 对不起 , 金额不够 .dec_moneyb;accounti-add_moneyb; cout 转账胜利 .money=accountx-money-y; float consumer:get_money return money; void main YH yh; yh.functionshow; /* 主界面显示 */ void YH:functionshow int n; do systemcls; load; coutendl 请输入相应的操作序号进行操作 :endl; cout
限制150内