c++语言综合性设计性实验实验报告.docx
《c++语言综合性设计性实验实验报告.docx》由会员分享,可在线阅读,更多相关《c++语言综合性设计性实验实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
c++语言综合性设计性实验实验报告
c++语言综合性设计性实验实验报告
————————————————————————————————作者:
————————————————————————————————日期:
综合性、设计性实验报告
姓名学号
专业计算机与通信工程系计科0902班
实验课程名称c++程序设计
指导教师及职称黎明讲师
开课学期2010学年下学期
上课时间2010年12月2日
湖南科技学院教务处编印
一、实验设计方案
实验名称:
C++语言综合设计(自动取款机的小系统)
实验时间:
2010/12/10
小组合作:
是○否○
小组成员
1、实验目的:
1)掌握C++语言的基本知识
2)综合应用所学知识,设计一个具有一定综合性的实验;
3)用C++实现程序,并且给出程序的说明、程序运行的结果、输入和输出的数据.
2、实验设备及材料:
硬件设备:
PC机一台
机器配置:
内存:
1G
操作系统:
WindowsXP
开发工具:
VC++6。
0
3、实验内容:
①问题描述
a.设计一个自动取款机的小系统。
b.设计一个自动取款存款机的小系统。
c.设计一个刷卡自动充值交通IC卡的小系统.
②编程任务
用c++实现;
4、实验方法步骤及注意事项:
①实验步骤
1、先把写好的程序写入到电脑中的VC++6.0
2、再对程序进行编译
3、经过检查编译,发现编译中出现的错误再进行修改
4、再次编译,直到编译成功之后,运行程序
5、接着按照提示输入数据,进行测试
6、最后记录所得数据,查看结果
②解题思路
1.在设计程序之前,先构思好所要用到的函数,以及函数对应在程序的效果
2.先建立两个类,consumer和ATM
3.再建立存取钱、修改密码、查询余额等客户信息输出的函数
4.并且建立搜索,打印和删除特定用户信息的函数
5.同时建立打开文件、写入文件的函数
6.ATM成员函数用switch语句来对用户选择的操作项进行判断
5.实验数据处理方法:
①数据输入:
123451233
②结果输出:
6.参考文献:
C++程序设计教程(钱能著)
C++面向对象程序设计教程(谭浩强著)
指导老师对实验设计方案的意见:
指导老师签名:
年月日
二、实验报告
1、实验目的、设备与材料、实验内容、实验方法步骤见实验设计方案
2、实验现象、数据及结果:
输入数据:
123451233得到:
3、对实验现象、数据及观察结果的分析与讨论:
1)输入卡号与密码就进入了主界面
2)再按提示输入2就会要你输入取款的数目
3)输入取款数目后会提示你是否继续(Y/S)
4)输入3就会弹出卡的一些信息。
如用户姓名,卡号和余额
5)输入4便退出了系统
4、结论:
此程序包含了几个简单的功能:
取款,修改密码,查询余额等,还提供了用户的一些信息.这个程序简单,容易操作,让人一目了然,输入与输出过程中并没有出现错误。
5、实验总结
1)、本次实验成败之处及其原因分析:
通过这次实验我发现自己的技术不太好,主要是对函数还不是很熟悉,还有对类的运用还要加强。
粗心是我的大敌啊,一个标点或者一个括号有时都让我思绪乱了。
由于自己英语不怎么好,所以一些关键字的拼写有时会有误,以后一定要加强这方面的能力,争取不再在这方面犯错误。
2)、本实验的关键环节及改进措施:
做好本实验需要把握的关键环节:
我个人认为关键环节是类的创建与一些成员函数的调用,还有就是基础函数的运用。
有些地方还应该更简洁.
若重做本实验,为实现预期效果,仪器操作和实验步骤应如何改善:
在设计之前还应该认真全面的分析,站在整个实验的面前分析,使得程序更加完善简洁。
对基础函数一定要非常熟练,对成员函数的调用要更熟悉。
在简单的程序中还可以增添一些附加的功能。
3)、对实验的自我评价:
经过这次实验我学到了很多,仔细认真的思维方式是必不可少的,因为低级错误是可以避免的,所以对一些基础的函数要很熟悉。
在一些新的知识方面我发现它们可以提高效率,所以为了精简程序一定要学好。
这次实验大家都很努力,让我感受到了团结就是力量这句话的含义,大家相互学习共同进步。
这次实验后我了解到了自己的实力,以后我会更加努力学习,学习他人的长处,弥补自己的不足!
指导老师评语及得分:
签名:
年月日
//************************************
//**
//*function。
h*
//**
//************************************
#include
classconsumer;
classATM
//ATM取款机
{
public:
ATM(consumer&cn):
cnsm(cn)
{
}
voidwelcome();
//登陆界面
boolcheck_passwd(charn[],charpwd[]);
//核对密码
voidchange_passwd();
//修改密码
voidfetchmoney();
//取款
voidinformation();
//查询信息
voidexitATM();
//退出系统
voidfunctionshow();
//功能界面
voidlock();
//锁机
private:
inttimes;
//记录密码输入次数
consumer&cnsm;
};
classconsumer
//用户
{
public:
friendclassATM;
consumer(charName[],charNum[],
floatMoney,charPassword[]);
protected:
char*get_name();
//取得姓名
char*get_num();
//取得卡号
char*get_passwd();
//取得密码
floatget_money();
//取得余额
voidset_passwd(charpwd[]);
//设置密码
voidset_money(floatm);
//取钱
private:
charpasswd[8];
//用户密码
charname[20];
//用户姓名
charnum[20];
floatmoney;
};
//************************************
//**
//*consumer类的成员函数*
//**
//************************************
#include”function.h"
#include〈string.h>
consumer:
:
consumer(charName[],
charNum[],floatMoney,charPassword[])
{
strcpy(name,Name);
strcpy(num,Num);
money=Money;
strcpy(passwd,Password);
}
floatconsumer:
:
get_money()
{
returnmoney;
}
char*consumer:
:
get_name()
{
returnname;
}
char*consumer:
:
get_num()
{
returnnum;
}
char*consumer:
:
get_passwd()
{
returnpasswd;
}
voidconsumer:
:
set_money(floatm)
{
money—=m;
}
voidconsumer:
:
set_passwd(charpwd[])
{
strcpy(passwd,pwd);
}
//************************************
//**
//*ATM类的成员函数*
//**
//************************************
#include”function。
h”
#includeh>
#include〈stdlib。
h>
voidATM:
:
welcome()
{
times=0;
cout〈〈"$
欢迎使用若雪银行ATM自动取款机!
~!
"〈〈endl;
charpwd[8],num[20],ch;
inti=0;
do
{
i=0;
cout<”;
do
{
cin.get(ch);
num[i++]=ch;
}while(ch!
='\n’);
num[i-1]=’\0';
i=0;
cout<<”请输入密码:
";
do
{
cin。
get(ch);
pwd[i++]=ch;
}while(ch!
=’\n’);
pwd[i—1]='\0’;
if(!
check_passwd(num,pwd))
{
cout〈〈"你输入的卡号或密码有误,
请重新输入”<〈endl;
times++;
}
else
{
functionshow();
}
}while(times<3);
lock();
}
boolATM:
:
check_passwd(charnum[],
charpwd[])
{
if(strcmp(num,cnsm.get_num())==0&&strcmp
(pwd,cnsm.get_passwd())==0)
returntrue;
else
returnfalse;
}
voidATM:
:
functionshow()
{
intn;
do
{
cout〈"<cout<〈"1)修改密码”<〈endl
<〈"2)取款”<〈endl
<<”3)查询余额”〈〈endl
<<"4)退出系统”〈cout〈<”$〉\\”;
cin>>n;
while(n<1||n〉4)
{
cout<<”请输入正确的操作序号!
”〈〈endl;
cout〈<"$>\\";
cin>>n;
}
switch(n)
{
case1:
change_passwd();
break;
case2:
fetchmoney();
break;
case3:
information();
break;
case4:
exitATM();
break;
}
}while(true);
}
voidATM:
:
change_passwd()
{
charpwd[8],repwd[8];
times=0;
do
{
cout<";
cin〉〉pwd;
if(!
check_passwd(cnsm。
get_num(),pwd))
times++;
else
break;
}while(times〈3);
if(times==3)
lock();
intt=0;
do
{
cout<<"请输入新密码:
";
cin>〉pwd;
cout<〈”请再输入一次新密码:
";
cin>〉repwd;
if((t=strcmp(pwd,repwd))!
=0)
cout〈<”你输入的两次密码不一样,
请重新输入!
”<〈endl;
}while(t!
=0);
cnsm。
set_passwd(pwd);
cout〈<"密码修改成功,请牢记!
”〈}
voidATM:
:
fetchmoney()
{
floatm;
charch;
do
{
cout〈〈endl<〈”你要取多少钱:
”
〈<”\n___FCKpd___1gt;\\"〈〈endl;
cin>〉m;
while(m〈=0)
{
cout〈〈"请输入正确的数字!
”<cout<〈”$>\\”;
cin>〉m;
}
if(cnsm。
get_money()—m<0)
{
cout<<"对不起,你的余额不足!
”
〈}
else
{
cout<〈endl〈〈"操作成功,请收好钱!
”
〈〈endl;
cnsm。
set_money(m);
}
cout<〈”是否要继续该项操作:
(Y/N)”
<〈endl;
cout<<"$>\\";
cin〉〉ch;
while(ch!
=’n’&&ch!
=’N'&&ch!
='Y’&&ch!
=’y’)
{
cout〈<"$>\\”;
cin〉>ch;
}
}while(ch=='y'||ch==’Y’);
}
voidATM:
:
information()
{
cout〈〈”**********************************”<cout<<"*”〈〈endl;
cout<<"*用户姓名:
”〈〈cnsm。
get_name()<〈endl;
cout〈〈”*卡号:
"<get_num()<〈endl;
cout<〈”*余额:
”〈cout〈〈”**********************************”<}
voidATM:
:
lock()
{
cout〈〈endl〈〈"对不起,由于你的操作有误,
你的卡已经被没收!
”〈〈endl;
exit
(1);
}
voidATM:
:
exitATM()
{
cout<欢迎下次光临!
"<cout〈<”请取卡……"<exit(0);
}
//************************************
//**
//*ATM.cpp*
//**
//************************************
#includeh〉
#include"function.h"
voidmain()
{
consumerc1("jim”,”12345",5200.3f,”123”);
//先构造一个用户
ATMatm(c1);
atm。
welcome();
}