C++银行存取款管理程序设计.docx

上传人:b****8 文档编号:10057488 上传时间:2023-02-08 格式:DOCX 页数:20 大小:112.41KB
下载 相关 举报
C++银行存取款管理程序设计.docx_第1页
第1页 / 共20页
C++银行存取款管理程序设计.docx_第2页
第2页 / 共20页
C++银行存取款管理程序设计.docx_第3页
第3页 / 共20页
C++银行存取款管理程序设计.docx_第4页
第4页 / 共20页
C++银行存取款管理程序设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C++银行存取款管理程序设计.docx

《C++银行存取款管理程序设计.docx》由会员分享,可在线阅读,更多相关《C++银行存取款管理程序设计.docx(20页珍藏版)》请在冰豆网上搜索。

C++银行存取款管理程序设计.docx

C++银行存取款管理程序设计

C++银行存取款管理程序设计

第一章需求分析..........................................................2第二章设计内容..........................................................2

2.1设计要求.............................................................................................................................2

2.1.1题目描述..................................................................................................................2

2.1.2题目要求..................................................................................................................2

2.1.3输入要求..................................................................................................................2

2.1.4输出要求..................................................................................................................3

2.1.5实验步骤..................................................................................................................3

2.2概要设计.............................................................................................................................3

2.2.1设计思路..................................................................................................................3

2.2.2类的描述图..............................................................................................................4

2.3详细设计.............................................................................................................................5

2.3.1主要类的结构..........................................................................................................5

2.3.2类的实现程序及流程结构图..................................................................................5

第三章调试报告..........................................................7

3.1修改密码和功能界面的调试............................................................................................7

3.2存款取款............................................................................................................................7

3.3查询余额和查看收支明细................................................................................................8

3.4输入密码错误导致吞卡....................................................................................................8

3.5输入钱数错误的几种情况................................................................................................9

3.6输入代码错误....................................................................................................................9

第四章参考文献........................................................10第五章附录程序源代码..........................................10

1

随着信息的高速发展和办公自动化的日益普及,许多繁杂的办公事务都需要

借助计算机软件进行操作。

本次课程设计研究的就是银行存取款管理程序。

2.1

2.1.1

请设计一个银行存取款管理程序。

假设每位都有帐号,密码和所存款项。

若输入账号不正确则抛出异常,显示

账号异常,并统计抛出次数。

若输入取款额小于存额则输出,取款失败。

该程序应该具有下列功能:

(1)通过键盘输入帐号和款项;

(2)给定操作,完成存取款;

(3)给定帐号可以显示个人信息和余款;

(4)根据给定的密码,修改密码;

(5)提供收支明细的功能。

2.1.2

(1)以面向对象的观点按照分析、设计、编码、调试和测试的软件开发过程

完成这个应用程序;

(2)储户信息应该包括帐号、姓名、余款和信用等级等;

(3)为各项操作功能设计一个菜单。

应用程序运行后,先显示这个菜单,然

后用户通过菜单项选择希望进行的操作项目。

2.1.3

应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。

用户可以根据需求,选定相应的操作项目。

进入每个操作后,根据应用程序的提

示信息,从键盘输入相应的信息。

2

2.1.4

(1)应用程序运行后,要在屏幕上显示一个菜单;

(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数

据内容、格式及结束方式等。

2.1.5

(1)编写简单程序,运行演示;

(2)根据题目要求,逐步增加功能;

(3)实现功能,并进行测试;

(4)编写实验报告。

2.2

2.2.1

类是C++语言中的一种数据类型,在面向对象程序设计方法中,程序是通过

对象的表现来实现的,而对象的所有行为和特征都是由类来决定的。

所以要建立

对象,首先必须定义类。

在类中添加函数,再定义对象,通过对象调用函数从而

实现其属性和行为。

本程序定义了Customer和ATM自动取款机类。

具体如下:

1.根据课题要求,定义了银行用户Customer类和ATM自动模拟取款机ATM类,要让ATM类中的成员函数访问Customer类,通过友元函数“friendclassATM;”实现。

2.基于本程序需要实现的功能不同,我们在Customer类中定义了数据成员:

户姓名、卡号、金额、用户密码;成员函数:

设置密码、存钱、取钱。

ATM类中定义了数据成员:

记录输入密码的次数;成员函数:

登陆界面、核对密码、功能

界面、修改密码、存钱、取钱、查询信息、查看收支明细、吞卡等。

3.通过判断函数:

strcmp(num,ctm.get_num())==0&&strcmp(pwd,ctm.get_password())==0校验密码。

4.同时根据功能界面选择相关功能代号进行相应的操作,以及各种信息的查询。

5.创建Customer类的对象,调用初始化函数,主程序调用开始,程序实现。

3

2.2.2

图1Customer类

图2ATM类

4

2.3

2.3.1

Customer类

数据成员:

char*get_name();//返回用户名

char*get_num();//返回卡号

char*get_password();//返回密码

floatsave_money();//返回存钱金额

floatget_money();//返回取钱金额

charname[20];//用户姓名

charnum[20];//卡号

floatmoney;//金额

charpassword[6];//密码

成员函数:

Customer(charName[],charNum[],floatMoney,charPassword[]);

//自身的构造函数,初使化

voidset_password(charpwd[]);//设置密码

voidadd_money(floatc);//存钱

voiddec_money(floatm);//取钱

ATM类

数据成员:

boolcheck_password(charp[],charpwd[]);//核对密码

inttimes;//记录输入密码的次数成员函数:

ATM(customer&cn):

ctm(cn){};//自身的构造函数

voidwelcome();//登陆界面

voidshow_function();//功能界面

voidchange_password();//修改密码

voidsave_money();//存钱

voidget_money();//取钱

voidget_information();//查询信息

voidchange_money();//查看收支明细

voidexit_ATM();//退出ATM

voidpush_card();//吞卡

2.3.2先设置功能界面,再通过各代码分别实现修改密码、存款、取款、查询余额、查

看收支明细和退出的操作。

具体程序如下:

5

voidATM:

:

show_function()//构造功能界面{intn;

do

{cout<<"1)修改密码"<

cout<<"2)存款"<

cout<<"3)取款"<

cout<<"4)查询余额"<

cout<<"5)查看收支明细"<

cout<<"6)退出系统"<

cout<<"请选择相关功能的代号:

";cin>>n;

while(n<1&&n>>6)

{cout<<"请输入正确的操作序号!

"<

cout<<"请选择相关功能的代号:

";cin>>n;

}

switch(n)

{case1:

change_password();break;

case2:

save_money();break;

case3:

get_money();break;

case4:

get_information();break;

case5:

change_money();break;

case6:

exit_ATM();break;

}

}

while(true);

}

其流程结构图

输入n

n=2n=3n=4n=5n=1

n=6

修改密码查看收存钱取钱查询余额查询余额支明细

Change_passsave_moget_monget_informchange_moexit_ATword()ney()ey()ation()ney()M()

6

程序的编写使一个复杂而繁冗的过程。

起初,我们在运行时出现了各类错误,通

过下面的提示和小组的讨论以及向老师的请教,终于得出了最后的结果

7

8

9

1.《C++程序设计教程》;崔志磊,苏涛,杨俊清;西安电子科技大学出版

社,2008年2月。

2.《程序设计基础——C++实验指导与课程设计》;刘玉英;人民邮电出版社,

2007年9月。

3.《C语言程序设计教程》;朱鸣华,刘旭麟,杨微;机械工业出版社,2007

年5月。

4.《标准C程序设计》;金名,张长富;清华大学出版社,2006年5月。

5.《C程序设计》;谭浩强;清华大学出版社,2005年7月。

//C++ATM自动模拟取款机程序

#include

#include

usingnamespacestd;

classcustomer

{

public:

friendclassATM;

customer(charName[],charNum[],floatMoney,charPassword[]);//初

始化

protected:

char*get_name();//返回用户名

char*get_num();//返回卡号

char*get_password();//返回密码

floatsave_money();//返回存钱金额

floatget_money();//返回取钱金额

voidset_password(charpwd[]);//设置密码

voidadd_money(floatc);//存钱

voiddec_money(floatm);//取钱

private:

10

charpassword[7];//用户密码

charname[20];//用户姓名

charnum[20];

floatmoney;

};

char*customer:

:

get_name(){returnname;}//构造返回用户名

char*customer:

:

get_num(){returnnum;}//构造返回卡号

char*customer:

:

get_password(){returnpassword;}//构造返密码

floatcustomer:

:

save_money(){returnmoney;}//构造返回存钱金额

floatcustomer:

:

get_money(){returnmoney;}//构造返回取钱金额

voidcustomer:

:

set_password(charpwd[]){strcpy(password,pwd);}//构造修改密码

voidcustomer:

:

add_money(floatc){money+=c;}//构造存钱

voidcustomer:

:

dec_money(floatm){money-=m;}//构造取钱classATM

{

public:

ATM(customer&cn):

ctm(cn){}

voidwelcome();//登陆界面

boolcheck_password(charp[],charpwd[]);//核对密码

voidshow_function();//功能界面

voidchange_password();//修改密码

voidsave_money();//存钱

voidget_money();//取钱

voidget_information();//查询信息

voidchange_money();//查看收支明细

voidexit_ATM();//退出ATM

voidpush_card();//吞卡

private:

inttimes;//记录输入密码的次数

customer&ctm;

};

//构造ATM的函数

voidATM:

:

welcome()//构造welcome

{

times=0;

11

cout<<"欢迎使用ATM模拟自动取款机"<

charpwd[7],num[20];//密码,卡号

inti=0;

do

{

cout<<"请输入卡号";

cin>>num;

cout<<"请输入密码:

";

cin>>pwd;

if(!

check_password(num,pwd))

{

cout<<"你输入的密码有错误,请重新输入"<

times++;

}

else

{

show_function();

}

}

while(times<3);

push_card();

}

boolATM:

:

check_password(charnum[],charpwd[])//构造核对密码

{

if(strcmp(num,ctm.get_num())==0&&strcmp(pwd,ctm.get_password())==

0)

returntrue;

else

returnfalse;

}

voidATM:

:

show_function()//构造功能界面

{

intn;

do

{

cout<<"1)修改密码"<

cout<<"2)存款"<

cout<<"3)取款"<

cout<<"4)查询余额"<

cout<<"5)查看收支明细"<

cout<<"6)退出系统"<

cout<<"请选择相关功能的代号:

";

12

cin>>n;

while(n<1&&n>>6)

{

cout<<"请输入正确的操作序号!

"<

cout<<"请选择相关功能的代号:

";

cin>>n;

}

switch(n)

{

case1:

change_password();break;

case2:

save_money();break;

case3:

get_money();break;

case4:

get_information();break;

case5:

change_money();

case6:

exit_ATM();break;

}

}

while(true);

}

voidATM:

:

change_password()//构造修改密码

{

charpwd[7],repwd[7];

times=0;

do

{

cout<<"请输入原密码:

";

cin>>pwd;

//if(!

check_password(ctm.get_password(),pwd))

if(!

check_password(ctm.get_num(),pwd))

times++;

else

break;

}

while(times<2);

if(times==2)

push_card();

intm=0;

do

{

cout<<"请输入新密码:

";

cin>>pwd;

cout<<"请再输入一次新密码:

";

cin>>repwd;

13

if((m=strcmp(pwd,repwd))!

=0)

cout<<"你输入的两次密码不一样,请重新输入!

";

}

while(m!

=0);

ctm.set_password(pwd);

cout<<"密码修改成功,请牢记新密码!

"<

}

voidATM:

:

save_money()//构造存钱{

floatc;charch;

do

{

cout<<"请输入钱数:

";cin>>c;

while(c<=0)

{

cout<<"请输入正确的数字!

"<>c;

}

cout<<"操作已成功!

"<

ctm.add_money(c);

cout<<"是否要继续(Y/N):

";

cin>>ch;

while(ch!

='n'&&ch!

='N'&&ch!

='y'&&ch!

='Y')

{

cout<<"请根据提示输入正确命令!

"<

cin>>ch;

}

}while(ch=='y'||ch=='Y');

}

voidATM:

:

get_money()//构造取钱{

floatm;

charch;

do

{

cout<<"请输入所取金额:

";

cin>>m;

while(m<=0)

{

cout<<"请输入正确的数字!

"<

cin>>m;

}

if(ctm.get_money()-m<0)

14

{

cout<<"对不起,你的余额不足!

"<

}

else

{

ctm.dec_money(m);

cout<<"是否要继续(Y/N):

";

cin>>ch;

while(ch!

='n'&&ch!

='N'&&ch!

='y'&&ch!

='Y')

{

cout<<"请根据提示输入正确命令!

"<

cout<<"是否要取出所选金额(Y/N)";

cin>>ch;

}

}

}

while(ch=='y'||ch=='Y');

}

voidATM:

:

get_information()//构造查询信息{

cout<<"********************"<

cout<<"用户姓名:

"<

cout<<"卡号:

"<

cout<<"余额:

"<

cout<<"********************"<

}

voidATM:

:

pus

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1