银行储蓄管理系统的设计

上传人:仙*** 文档编号:29960695 上传时间:2021-10-08 格式:DOC 页数:27 大小:337.56KB
返回 下载 相关 举报
银行储蓄管理系统的设计_第1页
第1页 / 共27页
银行储蓄管理系统的设计_第2页
第2页 / 共27页
银行储蓄管理系统的设计_第3页
第3页 / 共27页
点击查看更多>>
资源描述
内蒙古科技大学C+程序设计课程设计说明书题 目银行储蓄管理的设计学 号姓 名吕小布指导教师日 期2013年6月28日目录第一章 需求分析.2第二章 总体设计.3第三章 类的设计.3 3.1YH类的设计.3 3.2consumer类的设计.4第4章 详细设计.4 4.1工程视图.4 4.2类图视图.5 4.3函数的调用关系.6 4.4主程序流程图.6 4.5主要算法流程图.8第五章 测试.10第六章 总结.14第七章 附录(代码).160 第一章 需求分析银行储蓄管理的设计:一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数用C+设计一个系统,能提供下列服务:(1) 录入帐号信息,格式为:帐号姓名密码身份证日期余额利率操作人090800213435李四12345615020119880808008882011-11-2210.30.0037操作包括存款取款,利息结算。(2) 登录功能。输入帐号和密码进行登录。(3) 存款功能。登录某个帐号后,输入存款金额,更新账户的余额。(4) 取款功能。登录后,输入取款金额,当余额大于取款金额时,执行取款操作,(5) 利息结算。、根据存款的利率和存款时间金额计算利息并登入账户。(6) 查询。查询某个时间段内的账户操作记录。三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书 第二章 总体设计用C+设计一个银行储蓄管理系统,能提供下列服务:(1) 录入账号信息,操作包括存款取款,利息结算。(2) 登录功能。输入帐号和密码进行登录。(3) 存款功能。登录某个帐号后,输入存款金额,更新账户的余额。(4) 取款功能。登录后,输入取款金额,当余额大于取款金额时,执行取款操作。(5) 利息结算。、根据存款的利率和存款时间金额计算利息并登入账户。(6) 查询。查询某个时间段内的账户操作记录用结构框图表示各个功能之间的关系: 系统功能 用户开户 删除账户 账号登陆 退出系统查看信息 取款 存款 利息 返回 第三章 类的设计3.1 银行类的设计Class YH数据成员:consumer *account20;static int acnum;/账户数函数成员: void set_account();/银行开户功能void del_account(); /注销账户功能void enter_account(); /进入用户个人信息功能void addmoney(int,float);/存款功能void exitYH();/ 退出系统void functionshow();/主界面void save();/保存数据void load();/ 功能界面3.2用户类的设计Class consumer数据成员:int id,string Name,double Inrate,double IN,double year,double month,double day,string PassWord,float m成员函数:void savemoney();/ 取钱string get_passwd()return passwd;/ 取得密码void display(); /界面 void fetchmoney(); /取钱void rate();/利息void change_passwd(); /修改密码void add_money(float);/计算余额void dec_money(float);/计算余额; 第四章 详细设计4.1工程视图4.2类图视图4.3函数的调用关系如下图:main()主程序系统functionshow()清屏system(cls)登陆enter_account()退出exitYH()开户set_account()清屏system(cls)display()savemoney()fetchmoney()rate()return4.4主程序流程图进入登录界面录入账户信息登录账户进入功能界面信息查询返回退出系统利息结算存款取款4.5主要算法的流程图(1) 开户的流程图:输入账号户主姓名身份证号开始设置密码输入金额开户日期开户成功(2)登陆页面的流程图密码错误输入账号输入密码主界面开始结束(3)取款的流程图:开始 主界面选择需要的操作序号是否继续取款额数结束(4)存款流程图:开始 主界面选择需要的操作序号是否继续存款额数结束存款流程图(5)查询利息的流程图:开始 主界面结束选择查询的操作序号输入查询日期 第五章 测试程序的运行结果截图。上图为系统界面,包含:1、 用户界面:录入用户帐号信息2、 账户登录:输入帐号和密码进行登录3、 账户注销:删除已存入的账户信息4、 退出系统 上图为用户功能界面上图为查询用户账号信息上图为取款功能界面上图为存款功能界面上图为利息结算界面上图为退出系统界面 第六章 总结在为期两周的课程设计中,我体会颇多,学到很多东西。利用设计银行储蓄系统的机会,我加强了对C+的认识,复习了自己以前的知识,自己的逻辑思考能力也提高不少。从而对Microsoft Visual C+ 6.0又有了更深入的认识!程序的源代码是我在网上下载完成后自己修改添加功能的。老师说,高手才会网上下载然后自己修改,我定然不是个高手,但是修改一下,完善设计要求的功能还是费了我不少力气。老师也说过,不反对在网上下载程序的源代码,因为这是个技术飞速发展的,利用现有的资源,就像站在巨人的肩膀上,我们可以站的更高,看得更远!在这次课程设计中,我还懂得了程序开发的一些比较重要的步骤,比如总体设计、程序模块设计(含功能需求、用户界面设计、程序代码设计与分析、运行结果)、系统使用说明等。从知识获得方面来说,各种已经学习到的C+知识以及各种从网上搜索来的案例,我们都是随着设计的不断深入而不断熟悉的。和老师以及同学的沟通交流更使我对程序整体的规划与设计有了新的认识,也对自己提出了新的要求。 提高是有限的但提高也是全面的。正是这一次设计让我积累了许多实际经验。也必然会让我在未来的工作学习中表现出更高的耐力、理解力、实践力。 顺利如期的完成本次课程设计给了我很大的信心,但是也为我指出很多不足的地方。学习其实就是一个不断完善的过程,正视自己的不足之处。在以后的工作和学习中不断的弥补这些不足之处,在以后的生活中也要保持同样的态度,不断地完善自己 通过完成本次面向对象程序设计的任务,使我熟练和掌握了这学期所学的有关visual c+中的一些主要知识点和应用点,如类的定义,类的实现,对象的定义,类的继承等等。可以所学有所学,所有所用,不至于自己所学知识由于没有经历可用过程,而放弃对它的兴趣。 此次,应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题。而这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。 从这不长不短的俩周中,我获得了知识,学到了研究的坚持与韧性,这俩周不仅仅是交出了一份作业,还对自己有了新的认识,实在是难得的机遇与经历。 第七章 附录附录:程序代码#include#include #include#includeusing namespace std;/标准命名空间 防止与全局标示符重名class consumer;class YH /银行类public:void set_account();/银行开户功能void del_account(); /注销账户功能void enter_account(); /进入用户个人信息功能void addmoney(int,float);/存款功能void exitYH();/ 退出系统void functionshow();void save();void load();/ 功能界面protected:consumer *account20;static int acnum;/账户数;class consumer:public YH/用户类,继承银行类的属性public: friend class YH; consumer(int id,string Name,double Inrate,double IN,double year,double month,double day,string PassWord,float m)ID=id;name=Name;inrate=Inrate;in=IN;ye=year;mon=month;d=day;money=m;passwd=PassWord;consumer()ID=0;name=0;inrate=0;in=0;ye=0;mon=0;d=0;money=0;passwd=0;int get_id()return ID;void savemoney();/ 取钱string get_passwd()return passwd;/ 取得密码void display(); void fetchmoney(); /取钱void rate();/利息void change_passwd(); void add_money(float);/计算余额void dec_money(float);/计算余额private:int ID; /开户帐号double ye,mon,d,in,inrate;string date,passwd,name; float money; /开户金额;void YH:save()ofstream ofile(bankdat.dat,ios:out);/以输出方式打开文件 ofstream outfile(bankdat.dat,ios:out);/以输出方式打开文件 bankdat.dat接收从内存输出的数据int n=0;outfileacnum ;for(n=0;nacnum;n+) outfileID ;/把信息写入磁盘文件bankdat.datoutfilemoney ;outfilename ;outfilepasswd ;outfilein ;outfileinrate ; outfileye ;outfilemon ;outfiled ;outfile.close(); /*读取用户信息功能实现*/void YH:load()ifstream infile(bankdat.dat,ios:in);/以输入方式打开文件if(!infile)cerr读取错误,无资料中!acnum;for(n=0;nid;/从磁盘文件bankdat.dat读入信息infilem;infilenam;infilepassw;infilein;infileinrate;infileye;infilemon;infiled;accountn-passwd;consumer * acc = new consumer(id,nam,inrate,in,ye,mon,d,passw,m); /每读入一个n开辟一段内存accountn = acc; /赋值首地址infile.close();cout读取资料正常!endl;/*账户开户*/void YH:set_account()int id;string nam;string passw;float m;double inrate;double in;double ye;double mon;double d; cout请输入开户号:id; cout请输入开户人姓名:nam; cout请输入开户密码:passw; cout请输入开户人身份证号码:in; cout请输入存入金额:m; cout请输入存款利率:inrate; cout请输入开户时间-年:ye; cout请输入开户时间-月:mon; cout请输入开户时间-日:d; while(m=0) cout请输入正确的数字!m; consumer * acc = new consumer(id,nam,inrate,in,ye,mon,d,passw,m); accountacnum = acc; cout开户成功!endlendl; acnum+; save(); cin.get(); return; /*账户登入*/void YH:enter_account()int id; coutid; int flag = 1; int i = 0; /_page_break_while(iget_id() flag = 0; else i+; if(flag) cout帐号不存在!endl; return; coutpassw;if(passw!=accounti-get_passwd()return;/返回到登录界面accounti-display();cin.get();cin.get();int n;dosystem(cls); cout请选择下列操作:endl;cout*endl;cout* *endl;cout 1.查看账户信息 endl;cout endl;cout 2.取款 endl;cout endl;cout 3.存款 endl;cout endl;cout 4.修改密码 endl;cout endl;cout 5.查询利息 endl;cout endl;cout 6.返回上一菜单 endl;cout endl;cout*endl;coutn;switch(n)case 1: accounti-display();break;case 2: accounti-fetchmoney();save();break;/从2-5功能,每执行一次调用一次save函数,重新写入数据case 3: accounti-savemoney();save();break;case 4: accounti-change_passwd();save();break;case 5: accounti-rate();save();break;case 6:return;cin.get();cin.get();while(1);/*账户删除*/void YH:del_account() int id;coutendlid;int flag = 1; int i = 0; while(iget_id() flag = 0; else i+; if(flag) cout该帐号不存在,请重新输入!endl; return; /返回到登陆界面 for(int j=i;jacnum;j+) /所有被删号后的数据重新存储 accountj = accountj+1; accountacnum-1=NULL; acnum-; /账号总数自减一次cout你的账号已注销!endlmoney=accountx-money-y;void main()YH yh;yh.functionshow();void YH:functionshow()int n;dosystem(cls); load();coutendl请输入相应的操作序号进行操作:endl;cout*endl;cout endl;cout 1. 开户 endl;cout endl;cout 2.账户登录 endl;cout endl;cout 3.账户注销 endl;cout endl;cout 4.退出系统 endl;cout endl;cout* endl;coutn;while(n4) cout操作错误,请输入正确的操作序号!endl;coutn;switch(n)case 1: set_account();/开户break;case 2:enter_account();/登录break;case 3: del_account();/注销break;case 4: exitYH();/退出break;cin.get();/输入流类istream的成员函数while(true);/*账户密码修改*/void consumer:change_passwd()string pwd,repwd;coutpwd;coutrepwd;if(pwd!=repwd)cout你输入的两次密码不一样,按输入键返回上一层菜单!endl;elsecout密码修改成功,请牢记!endl;cin.get(); /*账户取款*/void consumer:fetchmoney()float m;char ch;docoutendl输入取款金额:m;while(m=0)cout请输入正确的数字!endl;coutm;if(moneym)cout对不起,你的余额不足!endl;elsemoney=money-m;coutendl操作成功,请收好钱!endl;cout是否要继续该项操作:(Y/N) endl;coutch;while(ch!=n&ch!=N&ch!=Y&ch!=y)/选择错误时判定coutch;while(ch=y|ch=Y);/*账户利息*/void consumer:rate()double ye1,mon1;double lixi;char ch;docoutendl输入取款日期之年份:ye1;while(ye1ye)cout请输入正确的日期!endl;coutye1;if(ye1=ye) coutendl输入取款日期之月份:mon1;while(mon1mon)|(mon112)cout请输入正确的日期!endl;coutmon1;if (mon1=mon)lixi =(money*inrate*(ye1-ye)*12+mon1-mon);cout 利息为lixiendl;else coutendl输入取款日期之月份:mon1;lixi =(money*inrate*(ye1-ye)*12+mon1-mon);cout 利息为lixiendl;cout是否要继续该项操作:(Y/N) endl;coutch;while(ch!=n&ch!=N&ch!=Y&ch!=y)/选择错误时判定coutch;while(ch=y|ch=Y);/*账户存款*/void consumer:savemoney() float c; char ch;docoutendl请输入要存入的金额:c;while(c=0)cout输入错误,请重新输入!endl;coutc;money=money+c;cout操作已成功!endl;cout是否要继续该项操作:(Y/N) endl;coutch;while(ch!=n&ch!=N&ch!=Y&ch!=y)coutch;while(ch=y|ch=Y);int YH:acnum=0;void consumer:display()system(cls); coutendl;cout endl;cout 用户姓名:name endl;cout endl;cout 帐号:ID endl;cout endl; cout 余额: money endl;cout endl; cout 按输入键回到上一菜单 endl;cout endl; coutendl;cout;/*退出系统*/void YH:exitYH()coutendl感谢您对本银行的支持,欢迎下次光临!endl;exit(0);25
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!