C++课程设计学校:惠州学院题目:设计ATM自动取款机系统系别:电子科学系班级:11电信2班学号:110703229姓名:王志勇2014年4月21日一、课程设计目的及要求1.1设计目的1.提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。2.培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势。3.学习和掌握C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。1.2ATM自动取款机设计要求1.实现ATM取款机的基本功能,如给用户提供开户、查询余额、取款、修改密码、吃卡、退出系统等服务,可根据实际情况添加(如缴费、转账等服务)。2.对于用户要求输入相应的帐号和密码,如果三次出错则将卡吃掉并打印出相应凭条。若输入的取款金额超出账户余额,则提示用户输入有误并提供更正功能二、课程设计具体实现2.1.1总体设计根据C++类的基本知识和类的基本性质去实现ATM自动取款机基本功能;ATM自动取款系统开户用户登录退出存款取款查询余额修改密码转账退出系统2.1.2详细设计1.登陆模块主要完成功能为:当用户开始使用本系统,进入登陆模块。屏幕显示菜单提示,用户可根据需要选择相应功能。具体如下:开户、用户登录、退出系统;用户登录里面还有存款、取款、查询余额、修改密码、转账等功能主要适用技术:登陆函数主要是使用了循环函数和dowhile函数,还有许多的成员函OpenAccount()、SaveMoney()、TakeMoney()、Inquiry()、Changepsw()、Transfer();Menus();关键代码如下:voidmain();主函数;do{}while(1);//循环结构语句switch(i);case1:default:UserLogin();//用户登录界面函数Menus();//用户操作函数bankk;//默认构造函数OpenAccount();break;//开户SaveMoney();break;//存款TakeMoney();break;//取款Inquiry();break;//查询余额Changepsw();break;//修改密码Transfer();break;//转账2.开户模块主要完成功能为:进入开户模块。屏幕显示菜单提示,可根据要求依次输入姓名、身份证号、卡号、密码和预存款金额,完成以上操作之后,屏幕上显示恭喜您,开户成功;主要适用技术:开户函数使用了基本函数;主要代码如下:voidOpenAccount()//开户函数3.存款模块主要完成功能为:当开始使用本系统,进入存款模块。屏幕显示菜单提示,根据要求依主要使用技术:存款函数使用了循环语句函数、判断函数和选择函数主要代码如下:voidSaveMoney()//存款函数4.取款模块主要完成功能为:进入取款模块。如果全款金额小于或者等于卡上余额,则取款进行,否则重新输入取款金额。取款成功后显示卡上余额主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数主要代码如下:voidTakeMoney()//取款函数5.查询余额主要完成功能为:进入查询余额模块。屏幕显示菜单提示,屏幕上将显示你的余额,然后进入修改密码模块;主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数主要代码如下:voidInquiry()//查询余额函数6.修改密码主要完成功能为:进入修改密码模块。屏幕显示菜单提示,根据要求依次输卡号和密码,如果卡号和原始密码正确,则将进行修改密码的步骤,先输入原始密码,然后再输入新密码,之后确认新密码,确认正确之后,密码修改成功,接下来进入转账模块;主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数主要代码如下:voidChangepsw()//修改密码函数for(inti=1;i=N;i++)else//循环结果语句exit(1);//结束函数7.转账模块主要完成功能为:进入转账模块。输入所要转账的账号并输入转账金额,如果转账金额小于余额,转账成功输出卡上余额,主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数主要代码如下:voidTransfer()//转账函数8.退出系统模块主要完成功能为:退出ATM自动取款系统,用条件if(i==7)break;或exist(1)实现。三、源程序代码#includeiostream.h#includestring.h#includestdlib.h#includeiomanip.hclassBank{public:Bank():cardID(123),SFZ(123),psw(123),money(100){charname[20]=wangzhiyong;};//默认构造函数,并初始化voidUserLogin();//用户登录声明voidOpenAccount();//开户函数声明voidMenus();//用户操作函数声明voidSaveMoney();//存款函数声明voidTakeMoney();//取款函数声明voidInquiry();//查询函数声明voidTransfer();//转账函数声明voidChangepsw();//修改密码函数声明private:charname[20];longcardID;doubleSFZ;longpsw;intmoney;};voidBank::UserLogin()//用户登录函数定义{longID;longpsw1;coutsetw(20)用户登录:endl;cout请输入您的卡号:endl;cinID;cout请输入您的密码:endl;cinpsw1;if(ID==cardID&&psw1==psw){Menus();}else{cout您的卡号或者密码错误,请重新输入!endl;cout请输入您的卡号:endl;cinID;cout请重新输入您的密码:endl;cinpsw1;}if(ID==cardID&&psw1==psw){Menus();}else{cout温馨提示:密码错误,卡已被吃掉(打印出凭条,您的卡已经暂停一切业务):endl;exit(1);}}voidBank::Menus()//用户操作函数定义{inta;do{cout1.存款\n;cout2.取款\n;cout3.查询余额\n;cout4.修改密码\n;cout5.转账\n;cout6.退出系统\n;cout请输入您要办理业务的序号:;cina;switch(a){case1:SaveMoney();break;//存款case2:TakeMoney();break;//取款case3:Inquiry();break;//查询余额case4:Changepsw();break;//修改密码case5:Transfer();break;//转账case6:exit(0);break;//退出default:{cout你的输入有误,请输入1-7之间的整数!\n;}}for(intj=0;j=20;j++)cout**;coutendlendl;}while(1);}voidBank::OpenAccount()//开户函数定义{cout欢迎开户:endl;cout请输入您的姓名:endl;cinname;cout请输入身份证号码:endl;cinSFZ;cout请输入您的卡号:endl;//cout请输入您的卡号:endl;cincardID;cout请输入您的密码:endl;cinpsw;cout请输入您的预存金额:endl;cinmoney;cout恭喜您,开户成功!endl;}voidBank::SaveMoney()//存款函数定义{intmoney1;cout欢迎您使用取款业务endl;cout请输入您的存款金额:endl;cinmoney1;money=money+money1;cout存款成功,卡上余额为:moneyendl;}voidBank::TakeMoney()//取款函数定义{intmoney1;cout欢迎您使用取款业务\n;cout每次取款不能超过5000元endl;cout请输入您取款的金额:endl;cinmoney1;if(money15000){cout每次取款不能超过5000元endl;cout取款金额超出账户余额,请重新输入取款金额:;cinmoney1;}if(money=money1){money=money-money1;cout取款成功,您卡上余额为:moneyendl;}else{cout取款金额超出账户余额,请重新输入取款金额:;cinmoney1;money=money-money1;cout取款成功,您卡上余额为:moneyendl;}}voidBank::Inquiry()//查询余额函数定义{cout欢迎进行查询余额业务\n;cout卡上余额为:moneyendl;}voidBank::Transfer()//转账函数定义{longID2;intmoney1;cout欢迎使用转账业务\nendl;cout每次转账不能超过5000元endl;cout请输入您要转账的卡号:endl;cinID2;cout请输入您要转账的金额:endl;cinmoney1;if(money15000){cout每次取款不能超过5000元endl;cout取款金额超出账户余额,请重新输入取款金额:;cinmoney1;}if(money=money1){money=money-money1;cout转账成功,您卡上余额为:moneyendl;}else{cout金额超出账户余额,请重新输入取款金额:;cinmoney1;money=money-money1;cout转账成功,您卡上余额为:moneyendl;}}voidBank::Changepsw()//修改密码函数定义{longID;longpsw1;longpsw2;cout欢迎使用修改密码业务\nendl;cout请输入您的卡号:endl;cinID;cout请输入您的密码:endl;cinpsw1;if(ID==cardID&&psw1==psw){cout请输入您的原始密码:endl;cinpsw1;cout请输入您的新密码:endl;cinpsw2;cout确认新密码:请重新输入新密码:endl;cinpsw2;psw=psw2;cout修改密码成功!endl;}else{cout您的卡号或者密码错误!endl;cout请重新输入您的原始密码:endl;cinpsw1;if(psw1==psw){cout请输入您的新密码:endl;cinpsw2;cout确认新密码:请输入新密码:endl;cinpsw2;psw=psw2;cout修改密码成功!endl;}else{cout温馨提示:密码错误,卡已被吃掉(打印出凭条,您的卡已经暂停一切业务):endl;exit(1);}}}voidmain(){inti;Bankk;coutsetw(20)C++课程设计endl;coutsetw(7)学校:惠州学院setw(20)系别:11电信2班endl;coutsetw(7)姓名:王志勇setw(22)学号:110703229endl;cou