c++ATM模拟自动取款机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++课程设计
2013年12月20日
课题:模拟ATM机存取款管理系统系别:计算机科学系
专业:计算机科学与技术(网络应用)班级:B12计科班
:磊
学号:1208075160
指导教师:任廷艳老师
目录
第一章需求分析———1 第二章功能要求———1 第三章类的设计———3 第四章主流程图———4 第五章功能调试———5 第六章总结报告———7
附录程序代码———8
第一章需求分析
为了方面用户的及时取款,查询,及时修改密码的方便,本课题设计并模拟银行的自动取款机使用过程中的界面和用户交互过程。实现查询银行卡余额、取款、修改密码、退出系统等功能。
第二章功能要求
(1)卡号、密码输入最多三次,否则直接退出系统。
(2)取款功能:取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制。
(3)查询功能:实现查询余额功能。
(4)更改密码:实现密码更改功能,对于密码要有2次验证。
(5)锁卡功能:实现卡被锁的功能。
(6)退卡功能:实现退出系统功能。
第三章类的设计
ATM类:
class ATM//ATM类
{
private:
int times;
YongHu& yh;
public:
ATM(YongHu& y):yh(y){}
void DLJM();//登陆界面
bool HDMM(char ID[],char mima[]);//核对密码
void QK();//取款
void CX();//查询
void GG();//更改密码
void GNJM();//功能界面
void LK();//锁卡
void TC();//退出
};
类中包括:
登陆界面,核对密码,取款,查询,更改密码,功能界面,锁卡,退出等函数。通过函数实现以上等功能。
用户YongHu类:
class YongHu//用户类
{
private:
char ID[20];//卡号
char mima[10];//密码
float money;//卡上余额
public:
friend class ATM;
YongHu(char id[],float Money,char Mima[]);
char* get_ID();//获取卡号
char* get_mima();//获取密码
float get_money();//获取余额
void set_mima(char Mima[]);//设置密码
void set_money(float m);
};
用户类包括:获取卡号,密码,余额,设置密码等函数。
为获取用户信息而做的功能,通过以上函数,经过主函数建立对象,传入实参后可获取对象(用户)信息。
主函数:
主函数通过建立对象a和用户y1,把y1的通过a(y1)传入构造函数,调用登陆界面,输入密码和卡号后进入主界面,这就是主函数所做的功能。
第四章流程图
主流程图:
.
第五章功能调试登陆界面:
登陆成功后的主功能界面:
取款:
查询余额:
更改密码:
锁卡功能:
退出功能:
第六章系统总结报告
系统的设定:
1,本系统设定好测试卡号,密码,余额。
2,取款时只能取100倍数的钱。
3,修改密码错误时系统自动报错。
4,卡号密码输入最多三次,如超过则系统直接锁卡并退出。
遇到问题:
1,开始时更改密码功能输入一次就报错,且没有返回主界面,经过一番修改后,终得成功。
2,系统使用do---while语句较多,使得程序的左括号及右括号出现错误,查资料及问过老师后才
解决这个问题。
3,本系统经过查阅网上信息及教材书,终于设计出来了,可是自己在完全脱离这些信息及资料后,
不能独立完成设计,发现自己动手能力交差,书
上的知识不能及时运用,造成了此次的不能独立
完成,反过来想想后,自己存在的问题实在是多,在今后的学习上我会不断加强自己的不足,做出
一个自己满意的系统。
附录:
程序代码:
#include
#include
#include
class YongHu;//定义全局类class
class ATM//ATM类
{
private:
int times;
YongHu& yh;
public:
ATM(YongHu& y):yh(y){}
void DLJM();//登陆界面
bool HDMM(char ID[],char mima[]);//核对密码
void QK();//取款
void CX();//查询
void GG();//更改密码
void GNJM();//功能界面
void LK();//锁卡
void TC();//退出
};
class YongHu//用户类
{
private:
char ID[20];//卡号
char mima[10];//密码
float money;//卡上余额
public:
friend class ATM;
YongHu(char id[],float Money,char Mima[]);
char* get_ID();//获取卡号
char* get_mima();//获取密码
float get_money();//获取余额
void set_mima(char Mima[]);//设置密码
void set_money(float m);
};
YongHu::YongHu(char id[],float Money,char Mima[])//用户的构造函数
{
strcpy(ID,id);//strcpy函数是复制两字符串的函数,头文件为
strcpy(mima,Mima);
}
float YongHu::get_money()//获取余额函数