c课程设计atm取款机.docx
《c课程设计atm取款机.docx》由会员分享,可在线阅读,更多相关《c课程设计atm取款机.docx(20页珍藏版)》请在冰豆网上搜索。
c课程设计atm取款机
《C++程序设计》
课程设计说明书
题目
模拟ATM取款机的设计
学号
姓名
指导教师
日期
第1章需求的分析
课程名称
C++语言课程设计
设计题目
模拟ATM取款机的设计
指导教师
时间
2011-2012春学期第17、18周
一、教学要求
1.巩固和加深学生对C++语言课程的基本知识的理解和掌握
2.掌握C++语言编程和程序调试的基本技能
3.利用C++语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C++语言解决实际问题的能力
二、设计资料及参数
用C++设计一个系统,能提供下列服务:
模拟ATM取款机的操作,:
(1)首先录入账户信息。
格式为:
帐号
姓名
身份证
密码
余额
323401020056078
李四
150********8080088
123456
450.8
(2)登录功能。
输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。
(3)查询功能。
查询账户余额。
(4)取款功能。
取款,更新余额。
(5)挂失功能。
挂失后,该账户不能进行任何操作。
(6)修改密码。
输入原密码和新设置密码。
(7)转账。
输入转账的转出账户和转入账户以及转账金额,进行转账。
三、设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和方法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)提交课程设计报告:
完成系统总结报告以及系统使用说明书
第2章总体设计
2.1总体设计框图:
转账
图2—1atm设计框图
2.2文字叙述:
Atm自动取款系统,完成以下功能:
登录功能。
输入帐号和密码进行登录,如密码错误无示重新输入密码,如帐号错误提示无此帐户。
查询功能。
查询账户余额。
取款功能。
取款,更新余额。
挂失功能。
挂失后,该账户不能进行任何操作。
修改密码。
输入原密码和新设置密码。
转账。
输入转账的转出账户和转入账户以及转账金额,进行转账。
第3章类的设计
3.1ATM类的设计
在atm类,有数据成员和成员函数,他们被访问的权限又分为三类,private私有类,protected保护类,public公有类。
classATM//ATM取款机
{
public:
//公有类
ATM(consumer&cn):
cnsm(cn){}
voidwelcome();//登陆界面
boolcheck_passwd(charn[],charpwd[]);//核对密码
voidchange_passwd();//修改密码
voidfetchmoney();//取款
voidinformation();//查询信息
voidfunctionshow();//功能界面
voidguashi();//挂失
voidzhuanzhang();//转账
voidexitATM();//退出系统
voidlock();//锁机
private:
//私有类
inttimes;//记录密码输入次数
intmoney;
consumer&cnsm;
};
3.2consumer类的设计
classconsumer//用户
{
public:
//公有类
friendclassATM;
consumer(charName[],charNum[],charNun[],floatMoney,charPassword[]);
protected:
char*get_name();//取得姓名
char*get_num();//取得卡号
char*get_nun();//身份证
char*get_passwd();//取得密码
floatget_money();//取得余额
voidset_passwd(charpwd[]);//设置密码
voidset_money(floatm);//取钱
private:
//私有类
charpasswd[8];//用户密码
charname[20];//用户姓名
charnum[20];//用户账号
charnun[20];//用户身份证
floatmoney;//用户余额
};
第4章详细设计
4.1工程视图
图4—1工程视图
4.2类图视图
图4—2类图视图
4.3函数的调用:
welcome()
图4—3函数调用关系图
4.4主程序的流程图:
输入卡号和密码
正确
否
是
服务界面
显示用户信息和余额
查询取款挂失修改密码
挂式界面
输入金额
输入旧密码
正确
输入新密码
正确
否
是否
输入新密码
操作成功
取款挂失修改密码挂失退出是
挂失成功
正确
退卡
修改成功
返回退出
否是
返回退出
转账
转账成功
超出余额
输入转账金额
输入转账卡号
是
否
返回退出
图4—4程序流程图
第5章测试
5.1登陆界面
图5—1登陆界面
5.2修改密码
图5—2修改密码界面
5.3取款
图5—3取款界面
5.4查询
图5—4查询界面
5.5挂失
图5—5挂失界面
5.6转账
图5—6转账界面
5.7退出系统
图5—1退出系统界面
第6章总结
自动取款机的虚拟系统主要是模仿银行真的自动取款机的功能而设计的,其功能和真正的自动取款机是有很多的差别的,但对我们来说,此虚拟的自动取款机也是很大的激励,对大家的认识自动取款机也有一定的帮助。
虽然,在功能和界面上和其他的自动取款机系统和很大的差别,但是这个模拟的系统也是很真实。
通过这次的模拟ATM取款系统的设计,让我更深了理解了C++程序,对在理论学习时很多不懂得东西,通过这次实践操作,有了新的认识,同时也学会了如何分析问题,将复杂问题的细化分类处理,如何寻找突破口解决难题培养了自己的逻辑思维能力,加深了对面向对象程序设计思想的认识,对类的继承,函数的重载以及多态的应用有了更深入得了解。
同时也明白了养成良好的编程习惯。
学会了,在编写程序的同时做好文档的记录工作,为日后的调试,复检做准备。
通过此次程序设计更明确了日后的目标。
参考文献
1.吴敏,杨国林.C++面向对象程序设计.呼和浩特:
内蒙古大学出版社,2006
2.谭永强.C++程序设计.北京:
清华大学出版社,2004
3.钱能.C++程序设计教程.北京:
清华大学出版社,2001
4.谭永强,陈青华,朱红.C++程序设计实践指导.北京:
清华大学出版社,2005
附录程序代码
#include
#include
#include
classconsumer;
classATM//ATM取款机
{
public:
ATM(consumer&cn):
cnsm(cn){}
voidwelcome();//登陆界面
boolcheck_passwd(charn[],charpwd[]);//核对密码
voidchange_passwd();//修改密码
voidfetchmoney();//取款
voidinformation();//查询信息
voidfunctionshow();//功能界面
voidguashi();//挂失
voidzhuanzhang();//转账
voidexitATM();//退出系统
voidlock();//锁机
private:
inttimes;//记录密码输入次数
longcardID;
longpsw;
intmoney;
consumer&cnsm;
};
classconsumer//用户
{
public:
friendclassATM;
consumer(charName[],charNum[],charNun[],floatMoney,charPassword[]);
protected:
char*get_name();//取得姓名
char*get_num();//取得卡号
char*get_nun();//身份证
char*get_passwd();//取得密码
floatget_money();//取得余额
voidset_passwd(charpwd[]);//设置密码
voidset_money(floatm);//取钱
private:
charpasswd[8];//用户密码
charname[20];//用户姓名
charnum[20];
charnun[20];
floatmoney;
};
consumer:
:
consumer(charName[],charNum[],charNun[],
floatMoney,charPassword[])
{
strcpy(name,Name);
strcpy(num,Num);
strcpy(nun,Nun);
money=Money;
strcpy(passwd,Password);
}
char*consumer:
:
get_name(){returnname;}
char*consumer:
:
get_num(){returnnum;}
char*consumer:
:
get_nun(){returnnun;}
char*consumer:
:
get_passwd(){returnpasswd;}
floatconsumer:
:
get_money(){returnmoney;}
voidconsumer:
:
set_passwd(charpwd[]){strcpy(passwd,pwd);}
voidconsumer:
:
set_money(floatm){money-=m;}
voidATM:
:
welcome()
{
times=0;
cout<<"⊙★⊙⊙⊙⊙⊙⊙⊙★⊙⊙⊙⊙⊙⊙⊙★⊙"<cout<<"★欢迎使用DSJ银行ATM自动取款机★"<cout<<"⊙★⊙⊙⊙⊙⊙⊙⊙★⊙⊙⊙⊙⊙⊙⊙★⊙"<charpwd[8],num[20],ch;
inti=0;