C++课程设计面向对象课程设计报告__银行管理系统完整报告.doc_第1页
C++课程设计面向对象课程设计报告__银行管理系统完整报告.doc_第2页
C++课程设计面向对象课程设计报告__银行管理系统完整报告.doc_第3页
C++课程设计面向对象课程设计报告__银行管理系统完整报告.doc_第4页
C++课程设计面向对象课程设计报告__银行管理系统完整报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程学院实 验 报 告面向对象课程实践(银行存取款系统)* 姓 名 徐凯斌 院 (系) 软件工程学院 专业年级 英语+软件15班小 组第四组 学 号 2013213903 教 室 软件工程实验室(开发)B144 日 期 2014年9月15日-2014年9月19日 目 录1、 需求与功能分析 22、 系统总体框架 23、 模块设计与分析 44、 类和结构的设计与分析 65、 特色算法分析 76、 功能测试 107、 存在的不足与对策 108、 程序源代码 179、 心得体会 17一、 需求与功能分析使用面向对象程序设计思想设计银行存取款管理系统,它可以帮助我们有效、准确的实现完整存取事件。此系统操作方便效率、安全性高,只要客户开户并设定好密码就可以实现存取款。系统实现的主要功能模块有开户管理、存款管理、取款管理、销户、帐户信息查询和退出等功能。1 开户管理:用户自行输入用户名、密码、开户金额等即可开户成功。开户成功后会为用户生成一个用户账号。2. 存款管理:用户进入系统界面后跟据提示输入存款的用户账号,进行密码校验;密码确认成功后,输入相应存款金额即可。3. 取款管理:用户进入系统界面后根据提示输入取款的用户账号,进行密码校验;密码确认成功后,输入相应取款金额即可(如取款金额小于等于帐户余额,则提款成功,否则提示余额不足)。4. 销户管理:用户可根据自身需求进行销户处理。用户根据提示输入销户的用户帐号,进行密码校验;密码确认成功后,再次提示是否要销户(0销户,1不销户),输入0后,才能正常销户,销户成功后,原用户将不能继续实现存取款功能。5. 账户信息查询管理: 根据提示输入查询用户账号,进行密码校验;密码确认成功后,即可显示用户名、帐户号、余额以及用户状态(正常或销户)。6. 退出功能:用户在完成所需功能实现后,根据指令退出程序。二、 系统总体框架 三、 模块设计与分析储蓄卡开户管理模块:3.1 主界面页面主要导航栏有:欢迎使用储蓄卡管理(开户、销户、存款、取款、账户信息、退出)3.2 开户页面输入卡号和密码,再输入开户金额。开户成功后,系统会分配一个六位数的账号给用户(第一个账号为默认为100000)3.3 存钱页面从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。从后台数据库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库。系统将显示存款成功。3.5 取款页面从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则显示余额不足。3.6 账户信息页面从登录界面得到的卡号,并提供数据输入界面,输入密码后,显示出用户名,账户名,余额和用户状态信息。 3.7 销户页面选择销户选项,输入用户的账户号和密码后,系统会询问是否销户,输入0后,即销户成功。3.8 退出页面从关闭文件,最后关闭整个系统。列举取款模块进行分析:int Bank:draMon()double money = 0;Account* account = getAcoNum();if(ps- state = 0)cout n 该账户已销户,不能继续进行取款;return 0;if(account !=NULL & pasCheck(account)cout money;while(money account - money) int i = 0;cout money;if (i = 3 & money account -money)cout n 金额输入无效次数已超过 i 次,是否继续输入 j;if(j = 1)continue;if(j = 2)cout money -= money;account - recordaccount -insert-= money;/char * ctime(const time_t *timer); account -insert +;cout n 取款成功.n;return 0;在取款页面中,若输入账户已销户,则输出:该账户已销户,不能继续进行取款。若存在该账户,输入取款金额并对取款金额与存款余额进行比较,如果三次都超过的话就输出: 金额输入无效次数已超过 3次,是否继续输入,如果取款金额小于存款余额的话就执行,并保存记录。四、 类的设计与分析1Bank 类class Bank 主要制定用户的成员数据,并进行登录与保存功能: 画出Bank 类的类图相关代码:class Bank public:Bank();void bankEntrance();int creAco();int deposit();int draMon();int cloAco();int inquir(); Account* getAcoNum();bool pasCheck(Account* account);Bank();private:Account* head;Account* ps;Account* pEnd; int creAcoNum; ;表1 Bank类说明表名称属性说明Bank构造函数构建一个类成员Bank析构函数bankEntrance数据成员系统首界面cloAco数据成员销户creAco数据成员开户deposit数据成员存款draMon数据成员取款inquir数据成员用户信息pasCheck数据成员效验密码getAcoNum数据成员账户信息的效验2Account结构Account结构 主要实现用户的各种功能:画出Account结构的结构图:Account结构相关代码struct Account std:string name;int acoNum;std:string passWord;double money;double record20;int insert;int state;Account* right;Account* left; 五、 特色算法分析1.Bank类中的pasCheck方法 功能:输入密码并进行确认,如果密码确认三次失败,则退回主界面。 流程图: 暂无代码:bool Bank:pasCheck(Account* account) string pasWord; int i; cout pasWord ; for( i=0; i passWord != pasWord) cout pasWord ; else break; if(i=3) cout n 密码输入错误次数已超过3次,系统将自动跳转至系统首页n; return false; return true;六、 功能测试6.1 首页:图6-1:6.2 开户页面 图6-2:6.3 存款页面 图6-3:6.4 取款页面 图6-4 6.5账户信息页面 图6-5:6.6 销户页面 图6-6:6.7退出页面从保存数据并关闭文件,关闭整个系统。 图6-7:七、 存在的不足 暂无对策 八、 程序源代码/*/* Bank.h */*struct Account std:string name;int acoNum;std:string passWord;double money;double record20;int insert;int state;Account* right;Account* left;class Bank public:Bank();void bankEntrance();int creAco();int deposit();int draMon();int cloAco();int inquir(); Account* getAcoNum();bool pasCheck(Account* account);Bank();private:Account* head;Account* ps;Account* pEnd; int creAcoNum; ;/*/* Bank.cpp */*#includestdafx.h#include#includeBank.h#includeiostream#include/#include time.h /#include stdio.h using namespace std;Bank:Bank() head = NULL;ps =NULL;pEnd = NULL; creAcoNum = 100000; void Bank:bankEntrance()int a = 0;cout *nn;cout * 欢迎进入银行存取款系统 *nn;cout *n;while( a=0 )cout n 请选择服务项目:n;cout *n * 1.开户 * 2.存款 * 3.取款 *n;cout *n * 4.销户 * 5.帐户信息* 6.退出 *n;cout *n; cout a;switch(a)case 1: cout *开户*; a = creAco(); break;case 2: cout *存款*; a = deposit(); break;case 3: cout *取款*; a = draMon(); break;case 4: cout *销户*; a = cloAco(); break;case 5: cout *帐户信息*; a = inquir(); break;case 6: default: cout 退出.n; a = 1 ; return;cout *nn;cout * 谢谢您的使用。 *nn;cout *n;int Bank:creAco()string name ;string passWord;double money;cout name;cout passWord;cout money;Account* account = new Account;account - name = name;account - passWord = passWord;account - money = money;account - acoNum = creAcoNum +;account - state = 1;for(int i=0; irecordi = 0;account - insert = 0;if(head = NULL)head = account;pEnd = head;pEnd -left = head;pEnd -right = head;cout n 您的账号为: acoNum left = ps;ps - right = pEnd;pEnd -right = pEnd;cout n 您的账号为: acoNum;return 0;int Bank:deposit()double money;Account* account = getAcoNum(); if(ps- state = 0)cout n 该账户已销户,不能继续进行存款;return 0;if(account !=NULL & pasCheck(account)cout money; account - money += money;account - recordaccount -insert += money;account -insert +;cout state = 0)cout n 该账户已销户,不能继续进行取款;return 0;if(account !=NULL & pasCheck(account)cout money;while(money account - money) int i = 0;cout money;if (i = 3 & money account -money)cout n 金额输入无效次数已超过 i 次,是否继续输入 j;if(j = 1)continue;if(j = 2)cout money -= money;account - recordaccount -insert-= money;/char * ctime(const time_t *timer); account -insert +;cout n 取款成功.n;return 0;int Bank:cloAco()Account* account = getAcoNum(); int i;if(pasCheck(account) cout i;if(i = 0)account - state = 0;cout n 销户成功.n;elsecout n销户取消n.;return 0;int Bank:inquir()Account* account = getAcoNum(); if(pasCheck(account)cout n 用户名: name n 帐户号: acoNum n 余额: money;if(account - state = 1) cout n 用户状态: 正常n;elsecout n 用户状态: 销户n; return 0;Account* Bank:getAcoNum() int acoNum; int i=0; cout acoNum;ps = head;while(acoNum != ps - acoNum)if(ps = pEnd &ps - right = pEnd & acoNum != ps - acoNum)cout acoNum;ps = head;i +;ps = ps - right;if (i=3&acoNum != ps - acoNum)int j;cout n 账号输入错误次数已超过 i 次,是否继续输入 j;if(j = 1)continue;if(j = 2)return NULL; return ps; bool Bank:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论