C++机房计费管理系统Word格式文档下载.docx
《C++机房计费管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++机房计费管理系统Word格式文档下载.docx(35页珍藏版)》请在冰豆网上搜索。
time_tgettime();
获取当前时间
char*getname();
获取姓名
intgetcla();
获取班级号
intgettag();
获取标记
intgetstunum();
获取学号
intgetcomnum();
获取上机号
doublecountht();
计算上机时间
intcountm();
计算上机费用
voiddisp();
显示
voiddisp2();
显示2
2.学生库类定义:
StuData(学生库类)
inttop;
学生记录指针
Studentstudent[MAXS];
学生记录
StuData();
Student*searchnum(intStunum);
按学号搜索学生
Student*searchcla(intCla);
按班级搜索学生
voiddispbycla(intCla);
按班级显示学生
Student*searchname(char*Name);
按姓名显示学生
voiddispall();
显示所有学生信息
voidupcom(charName[20],intCla,intStunum,intComnum);
上机操作
voiddowncom(intStunum);
下机操作
intsearch();
搜索操作
~StuData();
析构函数
3.电脑类的定义:
Computer(电脑类)
删除标记
电脑号
Computer();
构造函数
voidsetcomnum(intComnum);
设置电脑号
获取电脑号
voidupcom();
voiddowncom();
获取标记
4.电脑库类的定义:
ComData(电脑库类)
Computercomputer[30];
记录电脑
ComData();
Computer*searchcom();
搜索空闲电脑
Computer*searchnum(intComnum);
按电脑号搜索
intupcom();
显示
~ComData();
析构函数
三、详细设计
1.学生类成员函数的定义:
Student:
:
Student()//构造函数
{}
voidStudent:
upcom(charName[20],intCla,intStunum,intComnum)//上机
{
strcpy(name,Name);
tag=1;
cla=Cla;
stunum=Stunum;
comnum=Comnum;
stime=gettime();
}
intStudent:
downcom()//下机
//otime=gettime();
setotime();
delstu();
disp();
returncomnum;
delstu()//更改上机标记
tag=0;
setotime()//获取下机时间
otime=gettime();
time_tStudent:
gettime()//获取当前时间
returntime(NULL);
char*Student:
getname()//获取姓名
returnname;
getcla()//获取班级
returncla;
gettag()//获取上机标记
returntag;
getstunum()//获取学号
returnstunum;
getcomnum()//获取上机号
doubleStudent:
countht()//计算总上机时间
returndifftime(otime,stime);
countm()//计算上机费用
if(((int)countht())%3600==0)
return((int)countht())/3600;
return((int)countht()/3600)+1;
disp()//显示
cout<
<
"
姓名:
name<
"
班级:
cla<
学号:
stunum<
上机号"
comnum<
endl;
开始上机时间:
asctime(localtime(&
stime))<
上机总时间:
countht()/3600.00<
小时"
上机费用:
countm()<
元"
disp2()//显示
endl<
-----上机成功-----"
上机号:
//cout<
stime<
countht()<
2.学生库类成员函数定义:
StuData:
StuData()//构造函数,将student.txt中的内容读到student[]中
Students;
top=-1;
ifstreamfin("
student.txt"
);
while
(1)
{
fin.read((char*)&
s,sizeof(s));
if(!
fin)
break;
top++;
student[top]=s;
}
fin.close();
Student*StuData:
searchnum(intStunum)//按学号搜索
for(inti=0;
i<
=top;
i++)
if(student[i].getstunum()==Stunum&
&
student[i].gettag()==1)
{return&
student[i];
}
returnNULL;
Student*StuData:
searchcla(intCla)//按班级搜索
if(student[i].getcla()==Cla&
voidStuData:
dispbycla(intCla)//按班级显示
for(intj=0;
j<
j++)
if(student[j].getcla()==Cla&
student[j].gettag()==1)
{
student[j].disp();
cout<
}
searchname(char*Name)//按姓名搜索
strcmp(student[i].getname(),Name)&
dispall()//显示所有学生
if(student[i].gettag()==1)
student[i].setotime();
student[i].disp();
top++;
student[top].upcom(Name,Cla,Stunum,Comnum);
downcom(intStunum)//下机
Student*p;
p=searchnum(Stunum);
p->
downcom();
intStuData:
search()//机房学生查询
charchoice;
charname[20];
intstunum;
intcla;
Student*s;
while(choice!
='
0'
)
cout<
--------机房学生查询--------"
------1按姓名查询------"
------2按学号查询------"
------3按班级查询------"
------4全部学生信息------"
------0返回主菜单------"
cin>
>
choice;
switch(choice)
case'
1'
system("
cls"
请输入学生姓名:
cin>
name;
s=searchname(name);
if(s==NULL)
{
cout<
机房没有此人"
break;
}
s->
disp();
2'
请输入学生学号:
stunum;
s=searchnum(stunum);
3'
请输入班级号:
cla;
s=searchcla(cla);
机房没有该班级的人!
dispbycla(cla);
4'
------机房所有上机学生信息如下------"
dispall();
return0;
default:
输入有误,请重新输入:
按任意键返回"
getch();
system("
StuData:
~StuData()//析构函数,将student[]中数据写到srudent.txt中
ofstreamfout("
fout.write((char*)&
student[i],sizeof(student[i]));
fout.close();
3.电脑类成员函数定义:
Computer:
Computer()//构造函数
voidComputer:
setcomnum(intComnum)//设置电脑号
intComputer:
getcomnum()//获取电脑号
upcom()//上机
4.电脑库类成员函数定义:
ComData:
ComData()//构造函数
Computerc;
computer.txt"
MAXC;
fin.read((char*)&
c,sizeof(c));
computer[j]=c;
{computer[i].setcomnum(i+1);
Computer*ComData:
searchcom()//搜索空闲电脑
if(computer[i].gettag()==0)
return&
computer[i];
returnNULL;
searchnum(intComnum)//按电脑号搜索电脑
if(computer[i].getcomnum()==Comnum)
intComData:
Computer*p=searchcom();
if(p==NULL)
机房已满,不能上机"
return0;
upcom();
returnp->
getcomnum();
voidComData:
电脑使用情况如下,'
为被使用中,'
为空闲中!
//cout<
computer[i].getcomnum();
printf("
%4d"
computer[i].gettag());
if((i+1)%6==0)
ComData:
~ComData()//析构函数
//if(computer[i].gettag()==1)
computer[i],sizeof(computer[i]));
四、调试分析
1.调试前,界面有些凌乱,选择某项功能后,之前的菜单仍然在界面上;
调试时,适当加入了清屏函数,使界面更加简洁清晰。
2.调试前,当输入的内容不合法时没有任何提示,导致某些功能出现故障;
调试时对输入内容的合法性做出的判断,并给出了相映的提示信息。
3.体会:
C++语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验。
从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。
使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。
使我们体会到自身知识和能力能在实际中的应用和发挥。
这不但激发了我的创新意识,还开发了我的创造能力、培养了我的沟通能力。
老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。
原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。
这是一个发现问题和解决问题的过程,从困惑到明朗,从苦恼道兴奋。
我一步步地走过来,发现编程真是一个奇妙刺激的旅程。
特别是当我把一个自己认为毫无可能的事情完成自后,那种感觉简直不能用言语来表达。
感谢这次课程设计给我带来的全新体验和丰富经验。
我会把它换成我以后奋斗的源泉。
五、用户手册
⒈本程序的运行环境为DOS操作系统,执行文件为:
机房管理系统.exe;
⒉进入演示程序后,即显示对话形式的提示操作过程,
⒊选择上机项后,输入上机学生的基本信息;
⒋选择下级项后,输入要下机学生的学号即可,系统自动给出上机总时间和费用;
⒌选择学生信息查询项后,可按各种信息搜索,选择相应选项即可;
⒍选择电脑使用情况项后,系统便会显示所有电脑的被使用情况。
六、测试数据
主界面:
上机操作:
下机操作:
查询界面:
按姓名查询:
按学号查询:
按班级查询:
电脑呗使用情况:
七、附录
//-----------------------------------------------“Student.h”--------------------------------------------
#ifndefStudent_H_H
#defineStudent_H_H
typedeflongtime_t;
classStudent{
public:
Student();
//构造函数
voidupcom(charName[20],intCla,intStunum,intComnum);
//上机
intdowncom();
//下机
voiddelstu();
//更改上机标记
voidsetotime();
//获取下机时间
time_tgettime();
//获取当前时间
char*getname();
//获取姓名
intgetcla();
//获取班级
intgettag();
//获取上机标记
intgetstunum();
//获取学号
intgetcomnum();
//获取上机号
doublecountht();
//计算总上机时间
intcountm();
//计算上机费用
voiddisp();
//显示
voiddisp2();
private:
inttag;
charname[20];
intcla;
intstunum;
intcomnum;
time_tstime;
time_totime;
doublehtime;
intinthtime;
intmoney;
};
#endif
//--------------------------------------------“StuData.h”----------------------------------------------------
#ifndefStuData_H_H
#defineStuData_H_H
#include"
Student.h"
constintMAXS=30;
classStuData{
StuData();
Student*searchnum(intStunum);
//按学号搜索
Student*searchcla(intCla);
//按班级搜索
voiddispbycla(intCla);
//按班级显示
Student*searchname(char*Name);
//按姓名搜索
voiddispall();
//显示所有学生
voiddowncom(intStunum);
intsearch();
//机房学生查询
~StuData();
//析