为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

C++银行存取款管理程序设计

2017-11-16 23页 doc 156KB 227阅读

用户头像

is_769254

暂无简介

举报
C++银行存取款管理程序设计C++银行存取款管理程序设计 目 录 第一章 需求分析 .......................................................... 2 第二章 设计内容 .......................................................... 2 2.1设计要求....................................................................................................
C++银行存取款管理程序设计
C++银行存取款 目 录 第一章 需求分析 .......................................................... 2 第二章 设计内容 .......................................................... 2 2.1设计要求............................................................................................................................. 2 2.1.1目描述 .................................................................................................................. 2 2.1.2题目要求 .................................................................................................................. 2 2.1.3输入要求 .................................................................................................................. 2 2.1.4输出要求 .................................................................................................................. 3 2.1.5实验步骤 .................................................................................................................. 3 2.2概要设计............................................................................................................................. 3 2.2.1设计思路 .................................................................................................................. 3 2.2.2类的描述图 .............................................................................................................. 4 2.3详细设计............................................................................................................................. 5 2.3.1主要类的结构 .......................................................................................................... 5 2.3.2类的实现程序及流程结构图 .................................................................................. 5 第三章 调试 .......................................................... 7 3.1修改密码和功能界面的调试 ............................................................................................ 7 3.2存款取款............................................................................................................................ 7 3.3查询余额和查看收支明细 ................................................................................................ 8 3.4输入密码错误导致吞卡 .................................................................................................... 8 3.5输入钱数错误的几种情况 ................................................................................................ 9 3.6输入代码错误 .................................................................................................................... 9 第四章 参考文献 ........................................................ 10 第五章 附录 程序源代码 .......................................... 10 1 随着信息的高速发展和办公自动化的日益普及,许多繁杂的办公事务都需要 借助计算机软件进行操作。本次课程设计研究的就是银行存取款管理程序。 2.1 2.1.1 请设计一个银行存取款管理程序。 假设每位都有帐号,密码和所存款项。若输入账号不正确则抛出异常,显示 账号异常,并统计抛出次数。若输入取款额小于存额则输出,取款失败。 该程序应该具有下列功能: (1) 通过键盘输入帐号和款项; (2) 给定操作,完成存取款; (3) 给定帐号可以显示个人信息和余款; (4) 根据给定的密码,修改密码; (5) 提供收支明细的功能。 2.1.2 (1) 以面向对象的观点按照分析、设计、编码、调试和测试的软件开发过程 完成这个应用程序; (2) 储户信息应该包括帐号、姓名、余款和信用等级等; (3) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然 后用户通过菜单项选择希望进行的操作项目。 2.1.3 应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。 用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提 示信息,从键盘输入相应的信息。 2 2.1.4 (1) 应用程序运行后,要在屏幕上显示一个菜单; (2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数 据内容、格式及结束方式等。 2.1.5 (1)编写简单程序,运行演示; (2)根据题目要求,逐步增加功能; (3)实现功能,并进行测试; (4)编写实验报告。 2.2 2.2.1 类是C++语言中的一种数据类型,在面向对象程序设计方法中,程序是通过 对象的表现来实现的,而对象的所有行为和特征都是由类来决定的。所以要建立 对象,首先必须定义类。在类中添加函数,再定义对象,通过对象调用函数从而 实现其属性和行为。本程序定义了Customer和ATM自动取款机类。具体如下: 1.根据课题要求,定义了银行用户Customer类和ATM自动模拟取款机ATM类,要让ATM类中的成员函数访问Customer类,通过友元函数“friend class ATM;”实现。 2.基于本程序需要实现的功能不同,我们在Customer类中定义了数据成员:用 户姓名、卡号、金额、用户密码;成员函数:设置密码、存钱、取钱。ATM类中定义了数据成员:记录输入密码的次数;成员函数:登陆界面、核对密码、功能 界面、修改密码、存钱、取钱、查询信息、查看收支明细、吞卡等。 3.通过判断函数: strcmp(num,ctm.get_num())==0&&strcmp(pwd,ctm.get_password())==0校验密码。 4.同时根据功能界面选择相关功能代号进行相应的操作,以及各种信息的查询。 5.创建Customer类的对象,调用初始化函数,主程序调用开始,程序实现。 3 2.2.2 图1 Customer类 图2 ATM类 4 2.3 2.3.1 Customer类 数据成员: char * get_name(); //返回用户名 char * get_num(); //返回卡号 char * get_password(); //返回密码 float save_money();//返回存钱金额 float get_money(); //返回取钱金额 char name[20]; //用户姓名 char num[20]; //卡号 float money; //金额 char password[6]; //密码 成员函数: Customer(char Name[],char Num[],float Money,char Password[]); //自身的构造函数,初使化 void set_password(char pwd[]); //设置密码 void add_money(float c);//存钱 void dec_money(float m); //取钱 ATM类 数据成员:bool check_password(char p[],char pwd[]); //核对密码 int times; //记录输入密码的次数 成员函数: ATM(customer & cn):ctm(cn){} ;//自身的构造函数 void welcome(); //登陆界面 void show_function(); //功能界面 void change_password(); //修改密码 void save_money(); //存钱 void get_money(); //取钱 void get_information(); //查询信息 void change_money(); //查看收支明细 void exit_ATM(); //退出ATM void push_card(); //吞卡 2.3.2 先设置功能界面,再通过各代码分别实现修改密码、存款、取款、查询余额、查 看收支明细和退出的操作。具体程序如下: 5 void ATM::show_function() //构造功能界面 { int n; do { cout<<"1)修改密码"<>n; while(n<1&&n>>6) { cout<<"请输入正确的操作序号!"<>n; } switch(n) { case 1:change_password(); break; case 2:save_money();break; case 3:get_money(); break; case 4:get_information(); break; case 5:change_money();break; case 6:exit_ATM(); break; } } while(true); } 其流程结构图 输入n n=2 n=3 n=4 n=5 n=1 n=6 修改密码 查看收 存钱 取钱 查询余额 查询余额 支明细 Change_passsave_moget_monget_informchange_moexit_AT word() ney() ey() ation() ney() M() 6 程序的编写使一个复杂而繁冗的过程。起初,我们在运行时出现了各类错误,通 过下面的提示和小组的讨论以及向老师的请教,终于得出了最后的结果 7 8 9 1. 《C++程序设计教程》;崔志磊,苏涛,杨俊清;西安电子科技大学出版 社, 2008年2月。 2.《程序设计基础——C++实验指导与课程设计》;刘玉英;人民邮电出版社, 2007年9月。 3.《C语言程序设计教程》;朱鸣华,刘旭麟 ,杨微;机械工业出版社, 2007 年5月。 4.《C程序设计》;金名,张长富;清华大学出版社, 2006年5月。 5.《C程序设计》;谭浩强;清华大学出版社, 2005年7月。 //C++ ATM自动模拟取款机程序 #include #include using namespace std; class customer { public: friend class ATM; customer(char Name[],char Num[],float Money,char Password[]); //初 始化 protected: char * get_name(); //返回用户名 char * get_num(); //返回卡号 char * get_password(); //返回密码 float save_money();//返回存钱金额 float get_money(); //返回取钱金额 void set_password(char pwd[]); //设置密码 void add_money(float c);//存钱 void dec_money(float m); //取钱 private: 10 char password[7]; //用户密码 char name[20]; //用户姓名 char num[20]; float money; }; char *customer::get_name(){return name;} //构造返回用户名 char *customer::get_num(){return num;} //构造返回卡号 char *customer::get_password(){return password;} //构造返密码 float customer::save_money(){return money;} //构造返回存钱金额 float customer::get_money(){return money;} //构造返回取钱金额 void customer::set_password(char pwd[]){strcpy(password,pwd);} //构造修改密码 void customer::add_money(float c){money+=c;} //构造存钱 void customer::dec_money(float m){money-=m;} //构造取钱 class ATM { public: ATM(customer & cn):ctm(cn){} void welcome(); //登陆界面 bool check_password(char p[],char pwd[]); //核对密码 void show_function(); //功能界面 void change_password(); //修改密码 void save_money(); //存钱 void get_money(); //取钱 void get_information(); //查询信息 void change_money(); //查看收支明细 void exit_ATM(); //退出ATM void push_card(); //吞卡 private: int times; //记录输入密码的次数 customer & ctm; }; //构造ATM的函数 void ATM::welcome() //构造welcome { times=0; 11 cout<<"欢迎使用ATM模拟自动取款机"<>num; cout<<"请输入密码:"; cin>>pwd; if(!check_password(num,pwd)) { cout<<"你输入的密码有错误,请重新输入"<>n; while(n<1&&n>>6) { cout<<"请输入正确的操作序号!"<>n; } switch(n) { case 1:change_password(); break; case 2:save_money();break; case 3:get_money(); break; case 4:get_information(); break; case 5:change_money(); case 6:exit_ATM(); break; } } while(true); } void ATM::change_password() //构造修改密码 { char pwd[7],repwd[7]; times=0; do { cout<<"请输入原密码:"; cin>>pwd; //if(!check_password(ctm.get_password(),pwd)) if(!check_password(ctm.get_num(),pwd)) times++; else break; } while(times<2); if(times==2) push_card(); int m=0; do { cout<<"请输入新密码:"; cin>>pwd; cout<<"请再输入一次新密码:"; cin>>repwd; 13 if((m=strcmp(pwd,repwd))!=0) cout<<"你输入的两次密码不一样,请重新输入!"; } while(m!=0); ctm.set_password(pwd); cout<<"密码修改成功,请牢记新密码!"<>c; while(c<=0) { cout<<"请输入正确的数字!"<>c; } cout<<"操作已成功!"<>ch; while(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y') { cout<<"请根据提示输入正确命令!"<>ch; } }while(ch=='y'||ch=='Y'); } void ATM::get_money() //构造取钱 { float m; char ch; do { cout<<"请输入所取金额:"; cin>>m; while(m<=0) { cout<<"请输入正确的数字!"<>m; } if(ctm.get_money()-m<0) 14 { cout<<"对不起,你的余额不足!"<>ch; while(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y') { cout<<"请根据提示输入正确命令!"<>ch; } } } while(ch=='y'||ch=='Y'); } void ATM::get_information() //构造查询信息 { cout<<"********************"<>d; cout<<"存取金额:"<
/
本文档为【C++银行存取款管理程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索