C++课程设计网吧管理系统Word格式文档下载.docx
《C++课程设计网吧管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计网吧管理系统Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
4、具备历史计算的记忆功能
5、对不正确的表达式能指出其错误原因
6、整理上机步骤、完成实验报告、提交可运行的程序,给出实验数据和实验结果。
3系统实现
3.1系统功能结构与模块划分
网吧管理系统
Main()
输入用户信息
结束
查询删除充值显示所有用户返回
直充通过合并其他用户充值
1使用时间函数进行时间记录;
structtm*ptr;
time_tm[100];
2建立用户类;
classYong{
public:
Yong(stringa="
0"
stringb="
intc=1){aa=a;
bb=b;
cc=(float)c;
}
stringxianshiming(){returnaa;
voidxianshiyong(){cout<
<
"
姓名"
aa<
setw(10)<
身份证号"
bb<
余额/原有"
cc<
endl;
Yongoperator+(constYong&
c2)const;
floatcc;
private:
stringaa,bb;
};
3使用goto函数对函数进行整体调控;
switch(d){
case0:
chaxun(p,i);
gotoxinxin;
break;
case1:
chongqian(p,i);
gotoxinxin;
case2:
shanchu(p,i,n);
gotohuahua;
case3:
c=1;
case4:
i=i-1;
for(t=0;
t<
=i;
t++)
p[t].xianshiyong();
i=i+1;
gotohuahua;
break;
case5:
return0;
4整体建立输入查询删除充值函数进行网吧管理;
3.2数据流图
(系统的数据流程图,并进行说明)
输出结果,并做记录,等待下次输入
显示出错情况,等待用户修改
求值
判断表达式是否有错
输入表达式
出现错误,中断扫描
以一个编缉框接受用户输入的表达式,输入须用软件提供的软键盘。
从输入到计算的过程由一个按键触发,如“=”。
出错处理只分析表达式出错。
历史记录中保存运算的表达式和其结果。
3.3系统采用的关键(难点)技术
(1)使用时间函数对各个用户的余额进行实时监控;
(2)通过使用重载函数进行用户合并;
3.4源程序清单
(列出源代码,注意格式要规范。
代码中有适当的注释)
#include<
iomanip>
iostream>
ctime>
string>
usingnamespacestd;
YongYong:
:
operator+(constYong&
c2)const{
returnYong(aa,bb,cc+c2.cc);
voidchaxun(Yongp[100],int&
i){
++i;
stringa;
intj,c;
floatd;
cout<
进入查询系统,请输入用户姓名"
cin>
>
a;
for(j=0;
j<
j++)
if(a==p[j].xianshiming())
{p[j].xianshiyong();
m[i]=time(0);
c=m[i]-m[j];
d=(float)200/3600*c;
cout<
余额"
p[j].cc-d<
--i;
voidshanchu(Yongp[100],int&
i,int&
n){
intj,k;
floatd,f;
longc;
if(n==0){
进入删除会员程序,请输入用户姓名"
cin>
{
p[j].xianshiyong();
m[i]=time(0);
c=m[i]-m[j];
d=(float)200/3600*c;
f=p[j].cc-d;
cout<
找零"
f<
谢谢"
for(k=j;
k<
=i-1;
k++)
{p[k]=p[k+1];
}
}
else
for(k=n;
{p[k]=p[k+1];
--i;
voidchongqian(Yongp[100],int&
stringa,b;
intj,n,dd;
longc;
进入充钱系统,请输入用户姓名"
请输入充值金额/若为0则合并其他用户"
;
dd;
for(j=0;
if(a==p[j].xianshiming())
if(dd!
=0){
m[i]=time(0);
c=m[i]-m[j];
d=(float)200/3600*c;
p[j].cc=p[j].cc+dd-d;
p[j].xianshiyong();
--i;
dd=1;
else{cin>
b;
for(n=0;
n<
n++)
if(b==p[n].xianshiming())
{m[i]=time(0);
c=m[i]-m[n];
d=(float)200/3600*c;
p[n].cc=p[n].cc-d;
p[j]=p[j]+p[n];
if(j<
n)shanchu(p,i,n);
elseif(j>
n){p[n]=p[j];
n=j;
shanchu(p,i,n);
}
}
p[j].cc=p[j].cc-d;
删除成功哈哈"
p[j].xianshiyong();
}
intmain(){
Yongp[100];
intc=1,i=0,d,n=0,t;
xinxin:
huahua:
输入000时进入其他程序"
while(c!
=0)
{
a>
b>
c;
if(c<
=0)cout<
进入其他系统/钱不够无法建立用户,谢谢合作"
p[i]=Yong(a,b,c);
if(c!
++i;
cout<
输入0进入查询系统"
输入1进入充值系统"
输入2进入结账系统"
输入3进入返回"
输入4显示所有用户信息"
输入数字大于等于5结束"
cin>
d;
return0;
4测试运行的结果
(测试过程中遇到的问题及解决方法,另外列出运行的结果,可用图示的方式)
开启计算器如图:
显示默认开启十进制,A,B,C,D,E,F按键不可用。
选择进制或制度,计算器相应开启相关按键。
由于使用UpdateData(0);
,所以输入框不允许键盘输入,相对应于出错处理函数的判断比较简单。
测试完毕,结果正确
5心得体会与进一步的改进
(自己通过该课程设计的收获,存在的问题与新的看法)
通过此次VC++可视化界面编程课程设计,我了解了VisualC++6的安装和基本使用方法,初步掌握了运用MFC添加控件以及映射控件消息等编程方法。
计算器的设计基本实现了老师所要求的功能,同时还增添了各个进制的运算的新功能。
同时在设计过程中,对于计算器的功能还有许多不完善的地方,例如为了是出错处理能够更准确地分析,只允许计算器按键输入,不允许键盘输入,因此还需要更多的设计来完善对于表达式的处理;
设计一开始是以C语言为基础的,所以没有用到多少C++中类的知识,这些需要在以后的学习中加以运用和实践;
界面风格只是使用默认的,没有创新,这个需要在以后的设计中加以改进。
相比之前C语言和数据结构的课程设计,此次可视化界面的课程设计让自己在编程上的理解更深一层,逐步了解编程在实际中的运用,掌握了更多编程方法和思想,拓宽了知识面,为进一步的学习继续打牢根基。
6参考书目与网站
(参考的资料与出处,包括网站地址)
《C++程序设计》作者:
谭浩强清华大学出版社
《VisualC++6.0开发指南》人民邮电出版社《VisualC++程序设计技巧与实例》作者:
许福舒志张威等出版社:
中国铁道出版社
http:
//www.china-