C++课程设计网吧管理系统.docx
《C++课程设计网吧管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计网吧管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
C++课程设计网吧管理系统
C++课程设计报告
(设计题目:
网吧管理系统的设计)
姓名:
专业:
班级:
指导老师:
2010年9月
1课程设计目的……………………………………………………
2项目要求与简介…………………………………………………
3系统实现…………………………………………………………
3.1系统功能结构与模块划分………………………………….
3.2数据流图…………………………………………………….
3.3系统采用的关键(难点)技术…………………………….
3.4源程序清单………………………………………………….
4测试运行的结果………………………………………………….
5心得体会与进一步的改进………………………………………
6参考书目…………………………………………………………
1课程设计目的
目标是使学生了解可视化程序设计语言的基础知识,掌握面向对象编程的分析设计方法,以及与面向对象技术相关的一些软件开发技术,掌握在VisualC++6环境下进行可视化程序设计技术。
通过实践具体的项目,为他们进一步开展相关领域的学习和科研打下良好的基础。
2项目要求与简介
1、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算
2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行
4、具备历史计算的记忆功能
5、对不正确的表达式能指出其错误原因
6、整理上机步骤、完成实验报告、提交可运行的程序,给出实验数据和实验结果。
3系统实现
3.1系统功能结构与模块划分
网吧管理系统
Main()
输入用户信息
结束
查询删除充值显示所有用户返回
直充通过合并其他用户充值
1使用时间函数进行时间记录;
structtm*ptr;time_tm[100];
2建立用户类;
classYong{
public:
Yong(stringa="0",stringb="0",intc=1){aa=a;bb=b;cc=(float)c;}
stringxianshiming(){returnaa;}
voidxianshiyong(){cout<<"姓名"<Yongoperator+(constYong&c2)const;
floatcc;
private:
stringaa,bb;
};
3使用goto函数对函数进行整体调控;
switch(d){
case0:
chaxun(p,i);gotoxinxin;break;
case1:
chongqian(p,i);gotoxinxin;break;
case2:
shanchu(p,i,n);gotohuahua;break;
case3:
c=1;gotohuahua;break;
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
#include
#include
#include
usingnamespacestd;
structtm*ptr;time_tm[100];
classYong{
public:
Yong(stringa="0",stringb="0",intc=1){aa=a;bb=b;cc=(float)c;}
stringxianshiming(){returnaa;}
voidxianshiyong(){cout<<"姓名"<Yongoperator+(constYong&c2)const;
floatcc;
private:
stringaa,bb;
};
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<=i;j++)
if(a==p[j].xianshiming())
{p[j].xianshiyong();break;}
m[i]=time(0);
c=m[i]-m[j];
d=(float)200/3600*c;
cout<<"余额"<
--i;
}
voidshanchu(Yongp[100],int&i,int&n){
stringa;intj,k;floatd,f;longc;
if(n==0){
cout<<"进入删除会员程序,请输入用户姓名"<cin>>a;
for(j=0;j<=i;j++)
if(a==p[j].xianshiming())
{
p[j].xianshiyong();
m[i]=time(0);
c=m[i]-m[j];
d=(float)200/3600*c;
f=p[j].cc-d;
cout<<"找零"<for(k=j;k<=i-1;k++)
{p[k]=p[k+1];}
}
}
else
for(k=n;k<=i-1;k++)
{p[k]=p[k+1];}
--i;
}
voidchongqian(Yongp[100],int&i){
++i;
stringa,b;intj,n,dd;floatd;longc;
cout<<"进入充钱系统,请输入用户姓名"<cin>>a;
cout<<"请输入充值金额/若为0则合并其他用户";
cin>>dd;
for(j=0;j<=i;j++)
if(a==p[j].xianshiming())
{p[j].xianshiyong();break;}
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<=i;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(jelseif(j>n){p[n]=p[j];
n=j;
shanchu(p,i,n);
}
}
m[i]=time(0);
c=m[i]-m[j];
d=(float)200/3600*c;
p[j].cc=p[j].cc-d;
cout<<"删除成功哈哈"<p[j].xianshiyong();
--i;
}
}
intmain(){
stringa,b;
Yongp[100];
intc=1,i=0,d,n=0,t;
xinxin:
huahua:
cout<<"输入000时进入其他程序"<while(c!
=0)
{
cin>>a>>b>>c;
if(c<=0)cout<<"进入其他系统/钱不够无法建立用户,谢谢合作"<m[i]=time(0);
p[i]=Yong(a,b,c);
if(c!
=0)
++i;
}
cout<<"输入0进入查询系统"<cout<<"输入1进入充值系统"<cout<<"输入2进入结账系统"<cout<<"输入3进入返回"<cout<<"输入4显示所有用户信息"<cout<<"输入数字大于等于5结束"<cin>>d;
switch(d){
case0:
chaxun(p,i);gotoxinxin;break;
case1:
chongqian(p,i);gotoxinxin;break;
case2:
shanchu(p,i,n);gotohuahua;break;
case3:
c=1;gotohuahua;break;
case4:
i=i-1;for(t=0;t<=i;t++)
p[t].xianshiyong();
i=i+1;gotohuahua;break;
case5:
return0;
}
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-