ATM自动取款机C++课程设计(精选2篇)
学校: 惠州学院
题目: 设计ATM自动取款机系统 系别: 电子科学系 班级: 11电信2班 学号: 110703229 姓名: 王志勇
2014年4月21日
一、课程设计目的及要求
1.1设计目的
1.提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。
2.培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势。
3.学习和掌握础。C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基
1.2 ATM自动取款机设计要求
1.实现ATM取款机的基本功能,如给用户提供开户、查询余额、取款、修改密码、吃卡、退出系统等服务,可根据实际情况添加(如缴费、转账等服务)。
2.对于用户要求输入相应的帐号和密码,如果三次出错则将卡吃掉并打印出相应凭条。
若输入的取款金额超出账户余额,则提示用户输入有误并提供更正功能
二、课程设计具体实现
2.1.1总体设计
根据C++类的基本知识和类的基本性质去实现ATM自动取款机基本功能;
ATM自动取款系统开户用户登录退出存款取款查询余额修改密码转账退出系统
2.1.2详细设计
1.登陆模块
主要完成功能为:当用户开始使用本系统,进入登陆模块。屏幕显示菜单提示,用户可根据需要选择相应功能。具体如下:开户、用户登录、退出系统;用户登录里面还有存款、取款、查询余额、修改密码、转账等功能
主要适用技术:登陆函数主要是使用了循环函数和do while函数,还有许多的成员函OpenAccount()、SaveMoney()、TakeMoney()、Inquiry()、Changepsw()、Transfer();Menus();关键代码如下: void main();主函数;
do{} while(1);//循环结构语句 switch(i);case 1: default: UserLogin();//用户登录界面函数 Menus();//用户操作函数 bank k;//默认构造函数 OpenAccount();break;//开户
SaveMoney();break;//存款 TakeMoney();break;//取款 Inquiry();break;//查询余额 Changepsw();break;//修改密码 Transfer();break;//转账
2.开户模块
主要完成功能为:进入开户模块。屏幕显示菜单提示,可根据要求依次输入姓名、身份证号、卡号、密码和预存款金额,完成以上操作之后,屏幕上显示恭喜您,开户成功;主要适用技术:开户函数使用了基本函数;
主要代码如下:void OpenAccount()//开户函数
3.存款模块
主要完成功能为:当开始使用本系统,进入存款模块。屏幕显示菜单提示,根据要求依 主要使用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
void SaveMoney()//存款函数
4.取款模块
主要完成功能为:进入取款模块。如果全款金额小于或者等于卡上余额,则取款进行,否则重新输入取款金额。取款成功后显示卡上余额
主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
void TakeMoney()//取款函数
5.查询余额
主要完成功能为:进入查询余额模块。屏幕显示菜单提示,屏幕上将显示你的余额,然后进入修改密码模块;
主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
voidInquiry()//查询余额函数
6.修改密码
主要完成功能为:进入修改密码模块。屏幕显示菜单提示,根据要求依次输卡号和密码,如果卡号和原始密码正确,则将进行修改密码的步骤,先输入原始密码,然后再输入新密码,之后确认新密码,确认正确之后,密码修改成功,接下来进入转账模块; 主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
void Changepsw()//修改密码函数
for(int i=1;i<=N;i++)else //循环结果语句 exit(1);//结束函数
7.转账模块
主要完成功能为:进入转账模块。输入所要转账的账号并输入转账金额,如果转账金额小于余额,转账成功输出卡上余额,主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
voidTransfer()//转账函数
8.退出系统模块
主要完成功能为:退出ATM自动取款系统,用条件if(i==7)break;或exist(1)实现。
三、源程序代码
#include
//默认构造函数,并初始化
void UserLogin();
//用户登录声明
void OpenAccount();
//开户函数声明
void Menus();
//用户操作函数声明
void SaveMoney();
//存款函数声明
void TakeMoney();
//取款函数声明
void Inquiry();
//查询函数声明
void Transfer();
//转账函数声明
void Changepsw();
//修改密码函数声明 private:
char name[20];
long cardID;
double SFZ;
long psw;
int money;};void Bank::UserLogin()
//用户登录函数定义 { long ID;long psw1;cout< //用户操作函数定义 { int a;do{ cout<<“1.存款n”;cout<<“2.取款n”;cout<<“3.查询余额n”;cout<<“4.修改密码n”;cout<<“5.转账n”;cout<<“6.退出系统n”;cout<<“请输入您要办理业务的序号:”;cin>>a;switch(a){ case 1: SaveMoney();break; case 2: TakeMoney();break; case 3: Inquiry();break; case 4: Changepsw();break; case 5: Transfer();break; case 6: exit(0);break; default:{cout<<“你的输入有误,请输入1-7之间的整数!n”;} } for(int j=0;j<=20;j++)cout<<“**”;cout< { cout<<“欢迎开户:”< cout<<“请输入您的姓名:”< cin>>name;cout<<“请输入身份证号码:”< 号:“< //存款 //取款 //查询余额 //修改密码 //转账 //退出 //开户函数定义 //cout<<”请输入您的卡 cin>>money;cout<<“恭喜您,开户成功!”< //存款函数定义 {int money1;cout<<“欢迎您使用取款业务”< void Bank::TakeMoney() { int money1;cout<<“欢迎您使用取款业务n”;cout<<“每次取款不能超过5000元”< cout<<“取款金额超出账户余额,请重新输入取款金额:”;cin>>money1;money=money-money1;cout<<“取款成功,您卡上余额为:”< 义 { cout<<“欢迎进行查询余额业务n”;cout<<“卡上余额为:”< //取款函数定义 //查询余额函数定 void Bank::Transfer() //转账函数定义 { long ID2;int money1;cout<<“欢迎使用转账业务n”< cout<<“金额超出账户余额,请重新输入取款金额:”;cin>>money1;money=money-money1;cout<<“转账成功,您卡上余额为:”< 修改密码函数定义 { long ID;long psw1;long psw2;cout<<“欢迎使用修改密码业务n”< // cin>>psw1;cout<<“请输入您的新密码:”< ICBC ”< case 2: k.UserLogin();break; default:{cout<<“你的输入有误,请输入1-3之间的整数!n”;} } for(int j=0;j<=20;j++)cout<<“**”;cout< //开户函数调用//用户登录 四、总结 在为期二周的课程设计中,我体会颇多,学到很多东西,通过完成C++程序设计的任务,使我熟练和掌握了这学期所学的有关visual c++6.0中的一些主要知识点和应用点,比如面向对象中的类的定义、类的实现、对象的定义、类的继承、类的多态性等等;还有面向过程的许多基础知识,结构体的基本类型,基本应用、结构体的堆栈基础知识等等。应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题,这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。 时间总是过得很快,转眼间C++课程设计就要结束了,通过这次课程设计,我们学会了很多,也懂得了很多,知道自己的C++只是哈有很大的提高空间。感谢老师,是您让我们知道了这些,是您一次次的帮助我们那些被我们收拾的面目全非的程序,让我们的程序起死回生;感谢老师,是您让我们看到自己的差距,看到了自己的基础知识还很薄弱,还有许多的只是我们还不懂,我们需要再接再厉去提高自己;感谢老师,是您让我们懂得了原来C++的许多程序原来是很深奥很深奥的,原来C++的许多程序是可以那样完成的,还有调试还可以是以那种形式去调试的;总之感谢您老师,是我们的C++有了进一步的提高,谢谢您老师,你们辛苦了。 看着银行ATM自助取款机的屏幕上,显示着有一笔5000元的现金入账。租住在金花路某小区的冯国光长长地舒了一口气,这件事总算解决了,7个月来,我也终于可以睡个踏实觉了。他高兴地说: 这件事还要从今年5月份的一天说起:那天下午冯国光来到某银行金花路支行的柜台前,准备将自己打工存下的5000元现金存起来。存钱的过程很顺利,冯国光从包里掏出一张银行储蓄卡和现金一起递给柜台工作人员。可是等银行工作人员拿出存款凭单,让冯国光签字确认的时候他发现了个大问题,凭条上显示的账户名称,不是我的名字,而是一个叫刘强的人。冯国光说当时他一下子就懵了。因为这个刘强他根本就不认识他,咋把钱存到了别人的卡上?在银行工作人员的询问下,冯国光才慢慢回忆起来这张银行卡是他从自己租住屋的床底下捡来的。因为他也有一张这个银行的借记卡所以还以为是自己不小心掉到床底下去的就直接把卡放到了自己的钱包里。 冯国光这下总算明白了自己把钱存到了别人卡上我该怎么办?冯国光顿时手足无措,只能一再要求银行的工作人员将这笔钱转存到自己卡上,银行工作人员了解到误存的事情经过后,表示按规定必须输入正确的密码才能取钱,或者找到银行卡的户主来取这笔钱,否则存入他人卡上的款项银行也无权处置 我不知道密码,最后只能先申请银行把这笔业务冻结之后,冯国光多次找这家银行和刘强,希望能把钱追回来,可一直没有解决,钱也不知所踪。无奈之下冯国光只好将这家银行和刘强起诉至新城区法院要求银行和刘强返还这笔存款。法院审理认为冯国光误持刘强的储蓄卡办理存款,属于民事法律行为中的重大误解,冯国光要求返还这笔存款符合法律规定,最终法院判决由刘强向冯国强返还5000元现金,银行协助办理。这就发生了文中开头的那一幕。 新城区法院民事审判庭王法官提醒说,市民在捡到别人丢失或者废弃的银行卡时,应该及时交到发卡银行尤其要注意在存款的过程中应仔细核对账号名称,账号数字以及存入金额等信息,避免此类事件的发生。他说如果误将钱款存入他人账户要注意收集相关证据。如打印交易凭条,同时向银行反映情况并申请财产保全保证钱款安全。 【ATM自动取款机C++课程设计】推荐阅读: atm银行取款机05-31 自动化专业课程设计09-20 助农取款报告05-24 银行卡取款收费标准11-19 自动化设计知识题库11-08 非标自动化设计模板02-14 《办公自动化》课程教学改革的几点思考10-08 自动控制原理毕业设计07-15 自动化生产线的设计06-11ATM自动取款机C++课程设计 篇2