您好,欢迎访问三七文档
0《C++程序设计》课程项目设计项目设计题目:基于ATM自动取款机的程序设计学号:2011414988姓名:牛徳号自评成绩:成绩:1目录《C++程序设计》课程项目设计..............................................01.项目意义及依据......................................................................22.系统功能模块定义说明..........................................................23.涉及的主要知识点说明..........................................................24.创新性说明..............................................................................35.运行结果与分析......................................................................97.待解决的问题........................................................................1421.项目意义及依据自动取款机又称ATM,是AutomaticTellerMachine的缩写,意思是自动柜员机,因大部分用于取款,又称自动取款机。它是一种高度精密的机电一体化装置,利用磁性代码卡或智能卡实现金融交易的自助服务,代替银行柜面人员的工作。可提取现金、查询存款余额、进行账户之间资金划拨、余额查询等工作;还可以进行现金存款、支票存款、存折补登、中间业务等工作。持卡人可以使用信用卡或储蓄卡,根据密码办理自动取款、查询余额、转账、现金存款,存折补登,购买基金,更改密码,缴纳手机话费等业务。随着当今科技的快速发展,ATM机越来越接方便我们的日常生活需求,但是大部分人不清楚它的具体操作,通过本程序的源代码及其执行结果,使我们对自动取款机的工作步骤有所了解。2.系统功能模块定义说明voidwelcome();登陆界面函数voidshow();功能界面函数voidset_passwd(charpwd[]);/设置密码函数boolcheck_passwd(charn[],charpwd[]);核对密码函数voidinformation();查询信息显示函数voidchange_passwd();修改密码函数voidqumoney();取款函数voidset_money(floatm);定义取钱数目函数voidlock();锁取款机函数voidexitATM();退出系统函数voidlock();锁取款机函数3.涉及的主要知识点说明1、输入输出流的运用2、函数的定义与调用3、类的运用4、While语句的正确的使用5、Swich多路分支的合理选择6、Bool类型定义与使用37、指针的运用4.创新性说明为了用户信用卡安全问题,新增加并定义了voidlock()函数,此函数用来锁AYM取款机,用以防止非法用户因多次对密码的不正确输入而产生不必要的损失。5.源代码#includeiostream.h#includestring.h#includestdlib.h//usingnamespacestd;//加为注释则正确//*****************************************classconsumer;classATM//ATM取款机及用户类的定义{public://各种操作ATM(consumer&cn):cnsm(cn){}voidwelcome();//登陆界面boolcheck_passwd(charn[],charpwd[]);//'ture'OR'false'核对密码则定义BOOL类型voidchange_passwd();//修改密码voidqumoney();//取款voidinformation();//查询信息//退出系统voidshow();//功能界面voidexitATM();voidlock();//锁取款机private:inttimes;//记录密码输入次数consumer&cnsm;};classconsumer//用户{public:friendclassATM;4consumer(charName[],charNum[],floatMoney,charPassword[]);protected://公共char*get_name();//取得姓名char*get_num();//取得卡号char*get_passwd();//取得密码floatget_money();//取得余额voidset_passwd(charpwd[]);//设置密码voidset_money(floatm);//取钱private://私有charpasswd[8];//用户密码charname[20];//用户姓名charnum[20];floatmoney;};//**************************************************************************************consumer::consumer(charName[],charNum[],floatMoney,charPassword[])//用户{strcpy(name,Name);strcpy(num,Num);money=Money;strcpy(passwd,Password);}//***********姓名***********char*consumer::get_name(){returnname;}//*******************************char*consumer::get_num(){returnnum;}//************密码********************char*consumer::get_passwd(){returnpasswd;}//******************************floatconsumer::get_money(){returnmoney;}//***********************************5voidconsumer::set_passwd(charpwd[]){strcpy(passwd,pwd);}//***********************************voidconsumer::set_money(floatm){money-=m;}//**********05.18进入取款机系统****************voidATM::welcome(){times=0;//输入密码的次数cout$欢迎使用曲阜师范大学银行ATM自动取款机!endl;charpwd[8],num[20],ch;inti=0;do{i=0;coutendl请输入卡号:;do{cin.get(ch);num[i++]=ch;}while(ch!='\n');//“确定”键结束num[i-1]='\0';i=0;cout请输入密码:;do{cin.get(ch);pwd[i++]=ch;}while(ch!='\n');//“确定”键结束pwd[i-1]='\0';if(!check_passwd(num,pwd)){cout输入的卡号或密码有误,请重新输入endl;times++;}else{6show();}}while(times3);lock();//次数超过3次,需要锁卡}//********************0523***************************boolATM::check_passwd(charnum[],charpwd[]){if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0)returntrue;elsereturnfalse;}//************05.25修改密码******************voidATM::change_passwd(){charpwd[8],repwd[8];times=0;do{coutendl请输入旧密码:;cinpwd;if(!check_passwd(cnsm.get_num(),pwd))times++;elsebreak;}while(times3);if(times==3)lock();intt=0;do{cout请输入新密码:;cinpwd;cout请再输入一次新密码:;cinrepwd;if((t=strcmp(pwd,repwd))!=0)cout你输入的两次密码不一样,请重新输入!endl;}while(t!=0);cnsm.set_passwd(pwd);7cout密码修改成功,请牢记!endl;}//*******************05.30取钱***********************voidATM::qumoney(){floatm;charch;do{coutendl你要取多少钱:\n$\\endl;cinm;while(m=0){cout请输入正确的数字!endl;cout$;cinm;}if(cnsm.get_money()-m0){cout对不起,你的余额不足!endl;}else{coutendl操作成功,请收好钱!endl;cnsm.set_money(m);//}cout是否要继续操作:(Y/N)endl;cout$;cinch;while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')//不分大小写字母{cout$;cinch;}}while(ch=='y'||ch=='Y');}//*****************06.04用户信息******************************voidATM::information(){cout**********************************endl;cout*endl;cout*用户姓名:cnsm.get_name()endl;8cout*卡号:cnsm.get_num()endl;cout*余额:cnsm.get_money()endl;cout**********************************endl;}//***************06.06目录******************************voidATM::show(){intn;do{coutendl请你输入相应的操作序号进行操作:endl;cout1)修改密码endl2)取款endl3)查询余额endl4)退出系统endl;cout$\\;cinn;while(n1||n4){cout请输入正确的操作序号!endl;cout$;cinn;}switch(n){case1:change_passwd();break;case2:qumoney();break;case3:information();break;case4:exitATM();break;}}while(true);}//****************************
本文标题:宗教
链接地址:https://www.777doc.com/doc-3324112 .html