




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C+程序设计课程项目设计 项目设计题目:基于ATM自动取款机的程序设计 学号: 姓名: 牛徳号 自评成绩: 成绩: 目录C+程序设计课程项目设计01.项目意义及依据22.系统功能模块定义说明23.涉及的主要知识点说明24.创新性说明35.运行结果与分析97.待解决的问题14 1.项目意义及依据 自动取款机又称ATM,是Automatic Teller Machine的缩写,意思是自动柜员机,因大部分用于取款,又称自动取款机。 它是一种高度精密的机电一体化装置,利用磁性代码卡或智能卡实现金融交易的自助服务,代替银行柜面人员的工作。可提取现金、查询存款余额、进行账户之间资金划拨、余额查询等工作;
2、还可以进行现金存款、支票存款、存折补登、中间业务等工作。持卡人可以使用信用卡或储蓄卡,根据密码办理自动取款、查询余额、转账、现金存款,存折补登,购买基金,更改密码,缴纳手机话费等业务。 随着当今科技的快速发展,ATM机越来越接方便我们的日常生活需求,但是大部分人不清楚它的具体操作,通过本程序的源代码及其执行结果,使我们对自动取款机的工作步骤有所了解。 2.系统功能模块定义说明void welcome(); 登陆界面函数void show(); 功能界面函数 void set_passwd(char pwd);/设置密码函数bool check_passwd(char n,char pwd);
3、核对密码函数void information(); 查询信息显示函数void change_passwd(); 修改密码函数void qumoney(); 取款函数 void set_money(float m); 定义取钱数目函数void lock(); 锁取款机函数void exitATM(); 退出系统函数void lock(); 锁取款机函数3.涉及的主要知识点说明1、 输入输出流的运用2、 函数的定义与调用3、 类的运用4、 While语句的正确的使用5、 Swich多路分支的合理选择6、 Bool类型定义与使用7、 指针的运用4.创新性说明 为了用户信用卡安全问题,新增加并定义了v
4、oid lock()函数,此函数用来锁AYM取款机,用以防止非法用户因多次对密码的不正确输入而产生不必要的损失。5.源代码 #include#include#include/using namespace std;/加为注释则正确/*class consumer;class ATM / ATM取款机及用户类的定义public:/各种操作 ATM(consumer& cn):cnsm(cn) void welcome(); / 登陆界面 bool check_passwd(char n,char pwd);/ tureORfalse核对密码则定义BOOL类型 void change_passwd
5、(); / 修改密码 void qumoney(); / 取款 void information(); / 查询信息 / 退出系统 void show(); / 功能界面 void exitATM(); void lock(); / 锁取款机private: int times; / 记录密码输入次数 consumer& cnsm;class consumer/ 用户public: friend class ATM; consumer(char Name,char Num,float Money,char Password);protected:/公共 char* get_name(); /
6、取得姓名 char* get_num(); / 取得卡号 char* get_passwd();/ 取得密码 float get_money(); / 取得余额 void set_passwd(char pwd);/ 设置密码 void set_money(float m); / 取钱private: /私有 char passwd8;/ 用户密码 char name20; / 用户姓名 char num20; float money;/* consumer:consumer(char Name,char Num,float Money,char Password)/用户 strcpy(nam
7、e,Name); strcpy(num,Num); money=Money; strcpy(passwd,Password);/*姓名*char* consumer:get_name() return name;/*char* consumer:get_num() return num;/*密码*char* consumer:get_passwd() return passwd;/*float consumer:get_money() return money;/*void consumer:set_passwd(char pwd) strcpy(passwd,pwd);/*void cons
8、umer:set_money(float m) money-=m; /*05.18进入取款机系统*void ATM:welcome() times=0;/输入密码的次数 cout$欢迎使用曲阜师范大学银行ATM自动取款机!endl; char pwd8,num20,ch; int i=0; do i=0; coutendl请输入卡号:; do cin.get(ch); numi+=ch; while(ch!=n);/“确定”键结束 numi-1=0; i=0; cout请输入密码:; do cin.get(ch); pwdi+=ch; while(ch!=n);/“确定”键结束 pwdi-1=
9、0; if(!check_passwd(num,pwd) cout输入的卡号或密码有误,请重新输入endl; times+; else show(); while(times3); lock();/次数超过3次,需要锁卡/*0523*bool ATM:check_passwd(char num,char pwd) if(strcmp(num,cnsm.get_num()=0&strcmp(pwd,cnsm.get_passwd()=0) return true; else return false;/*05.25修改密码* void ATM:change_passwd() char pwd8,
10、repwd8; times=0; do coutendlpwd; if(!check_passwd(cnsm.get_num(),pwd) times+; else break; while(times3); if(times=3) lock(); int t=0; do coutpwd; coutrepwd; if(t=strcmp(pwd,repwd)!=0) cout你输入的两次密码不一样,请重新输入!endl; while(t!=0); cnsm.set_passwd(pwd); cout密码修改成功,请牢记!endl;/*05.30取钱*void ATM:qumoney() floa
11、t m; char ch; do coutendl你要取多少钱:m; while(m=0) cout请输入正确的数字!endl; coutm; if(cnsm.get_money()-m0) cout对不起,你的余额不足!endl; else coutendl操作成功,请收好钱!endl; cnsm.set_money(m);/ cout是否要继续操作:(Y/N) endl; coutch; while(ch!=n&ch!=N&ch!=Y&ch!=y)/不分大小写字母 coutch; while(ch=y|ch=Y);/*06.04用户信息* void ATM:information() co
12、ut*endl; cout*endl; cout* 用户姓名:cnsm.get_name()endl; cout* 卡号: cnsm.get_num()endl; cout* 余额: cnsm.get_money()endl; cout*endl;/*06.06目录*void ATM:show() int n; do coutendl请你输入相应的操作序号进行操作:endl; cout1) 修改密码 endl 2) 取款 endl 3) 查询余额 endl 4) 退出系统 endl; cout; cinn; while(n4) cout请输入正确的操作序号!endl; coutn; switc
13、h(n) case 1: change_passwd(); break; case 2: qumoney(); break; case 3: information(); break; case 4: exitATM(); break; while(true);/* void ATM:lock() coutendl对不起,由于你的操作有误,你的卡已经被没收! endl; exit(1);/*void ATM:exitATM() coutendl谢谢使用,欢迎下次光临!endl; cout请取出您的卡endl; exit(0);/*void main() consumer c1(牛徳号,52000.3f,123);/ 先写入一个用户 ATM atm(c1); atm.welcome();6.运行结果与分析以上为账号和密码匹配时进入系统的结果以上为退出系统的结果以上为正确输入密码并选择取款并且按4退出系统的结果以上为程序全部可能性的结果以上为正确输入密码并选择1修改的结果查看用户余额的结果取款超过余额的现象结果7.待解决的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体外冲击波联合三圣汤治疗风寒湿阻型腰臀肌筋膜炎的临床观察
- 企业创新提案管理办法
- 企业接待招商管理办法
- 价值评估资质管理办法
- 植物学习题库+参考答案
- 2025年一建机电工程管理与实务考试易错知识点梳理与实战试卷含答案
- 2025年会计职称考试《初级会计实务》模拟上机考试押题预测题库含答案
- 2025年临汾市税务系统遴选面试真题回忆版含答案
- 声乐课程教学课件模板图片
- 优翼教学课件功能
- 2014红星美凯龙建材品类系列知识培训:卫浴篇
- 2023年海口市自然资源局事业单位招聘考试笔试模拟试题及答案解析
- GA/T 1323-2016基于荧光聚合物传感技术的痕量炸药探测仪通用技术要求
- 2023年苏州国发创业投资控股有限公司招聘笔试题库及答案解析
- 护士注册健康体检表下载【可直接打印版本】
- 高中历史《第一次工业革命》说课课件
- 学生集体外出活动备案表
- 叉车检验检测报告
- DNF装备代码大全
- 基于Qt的俄罗斯方块的设计(共25页)
- 食堂投诉处理方案
评论
0/150
提交评论