机房收费管理系统C程序设计报告Word文件下载.docx
《机房收费管理系统C程序设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《机房收费管理系统C程序设计报告Word文件下载.docx(28页珍藏版)》请在冰点文库上搜索。
{
charlbnum[20];
intlbbanji;
intlbflag;
charlbname[20];
structlbtimelbstart,lbfinish;
}
lbStudent;
lbStudentlbstu[50];
structlbcomputer
{intlbf;
lbStudentlbstut;
}lbcom[30];
intlbk;
intlbmain_menu()
{charlbc;
do
system("
cls"
);
cout<
<
"
\t\t\t****机房收费管理系统****\n"
\t\t\t1.输入学生信息\n"
\t\t\t2.上机\n"
\t\t\t3.下机\n"
\t\t\t4.查询上机时间\n"
\t\t\t5.机器使用情况显示\n"
\t\t\t0.退出系统\n"
\t\t\t************************\n"
\t\t\t请选择菜单(0-5):
;
lbc=getchar();
while(lbc<
'
0'
||lbc>
5'
return(lbc-'
}
intlbinput(lbStudentlbstu[],intlbn)
intlbi=0;
charlbsign='
while(lbsign!
='
lbn'
&
lbsign!
lbN'
)
getchar();
\t\t学号:
gets(lbstu[lbn+qhi].lbnum);
\t\t班级:
cin>
>
lbstu[lbn+lbi].lbbanji;
\t\t姓名:
gets(lbstu[lbn+lbi].lbname);
\t\t继续输入?
是请按Y,否请按N:
lbsign;
lbstu[lbn+qhi].lbflag=0;
lbi++;
return(lbn+lbi);
voidlbonline(lbStudentlbstu[],intlbn)
charlbnum_t[20],lbname_t[20];
intlbi,lbs;
\t\t使用姓名按1,使用学号按2:
lbs;
while(lbs!
=1&
lbs!
=2);
if(lbs==1)
\t\t请输入姓名:
gets(lbname_t);
for(lbi=0;
lbi<
lbn;
lbi++)
if(strcmp(lbstu[lbi].lbname,lbname_t)==0)
break;
else
\t\t请输入学号:
gets(lbnum_t);
if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)
if(lbi==lbn)
\t\t信息库中暂无该生,请输入该生信息再上机!
\n"
return;
elseif(lbstu[lbi].lbflag==1)
\t\t该生正在上机!
for(lbk=0;
lbk<
30;
lbk++)
if(lbcom[lbk].lbf==0)
lbcom[lbk].lbf=1;
\t\t请输入上机时间(当前时间):
lbstu[lbi].lbstart.lbhour>
lbstu[lbi].lbstart.lbminute>
lbstu[lbi].lbstart.lbsecond;
lbstu[lbi].lbflag=1;
lbcom[lbk].lbstut=lbstu[lbi];
break;
if(lbk==30)
\t\t机器全部使用中,请稍后再上机!
2、计算功能
voidlbcalculate(lbStudentlbstu){
intlbt;
structlbtimelbtimet;
if(lbstu.lbfinish.lbsecond<
lbstu.lbstart.lbsecond)
{if(lbstu.lbfinish.lbminute==0)
{lbstu.lbfinish.lbhour-=1;
lbstu.lbfinish.lbminute=59;
lbstu.lbfinish.lbminute-=1;
lbtimet.lbsecond=lbstu.lbfinish.lbsecond+60-lbstu.lbstart.lbsecond;
lbtimet.lbsecond=lbstu.lbfinish.lbsecond-lbstu.lbstart.lbsecond;
if(lbstu.lbfinish.lbminute<
lbstu.lbstart.lbminute)
lbstu.lbfinish.lbhour-=1;
lbtimet.lbminute=lbstu.lbfinish.lbminute+60-lbstu.lbstart.lbminute;
lbtimet.lbminute=lbstu.lbfinish.lbminute-lbstu.lbstart.lbminute;
lbtimet.lbhour=lbstu.lbfinish.lbhour-lbstu.lbstart.lbhour;
if(lbtimet.lbsecond==0&
lbtimet.lbminute==0)
lbt=lbtimet.lbhour;
lbt=lbtimet.lbhour+1;
\t\t该生上机用时%d小时,费用为%d元\n"
lbt,lbt;
3、查询功能
voidlboffline(lbStudentlbstu[],intlbn)
cin>
}while(lbs!
qhi<
\t\t没有这个学生!
elseif(lbstu[lbi].lbflag==0)
\t\t该生未上机或已下机!
\t\t请输入下机时间(当前时间):
lbstu[lbi].lbfinish.lbhour>
lbstu[lbi].lbfinish.lbminute>
lbstu[lbi].lbfinish.lbsecond;
lbcalculate(lbstu[qhi]);
lbstu[lbi].lbflag=0;
3;
if(strcmp(lbcom[lbk].lbstut.lbnum,lbstu[lbi].bnum)==0)
lbcom[lbk].lbf=0;
voidlbsearch(lbStudentlbstu[],intlbn){
qhs!
else
bi++)
\t\t查无此生!
\t\t该生正在上机,上机起始时间为%d:
%d:
%d\n"
lbstu[lbi].lbstart.lbhour,lbstu[lbi].lbstart.lbminute,lbstu[lbi].lbstart.lbsecond;
}
4、机器使用情况的显示
voiddisplay()
\t机器号是否使用使用者学号班级上机时间\n"
\t----------------------------------------------------------\n"
\t%02d否-----:
--:
--\n"
qhk+1;
yes"
endl;
lbcom[lbk].lbstut.lbname,lbcom[lbk].lbstut.lbnum,lbcom[lbk].lbstut.lbbanji,lbcom[lbk].lbstut.lbstart.lbhour,
lbcom[lbk].lbstut.lbstart.lbminute,lbcom[lbk].lbstut.lbstart.lbsecond;
\t"
pause"
}
1总体结构图
2主函数程序流程图
3子函数程序流程图
1输入学生信息
2学生上机
3学生下机
4上机时间查询
5机器使用情况
四、源程序清单
包括调试过程(碰到的错误、如错误排除)
#include"
stdafx.h"
#include<
iostream>
stdio.h>
stdlib.h>
ctype.h>
string.h>
usingnamespacestd;
structqhtime
{intqhhour;
{charqhc;
||qhc>
gets(lbstu[lbn+lbi].lbnum);
lbstu[lbn+lbi].lbflag=0;
lbtimet.lbminute=lbstu.lbfinish.lbminute+60-lbstu.lbstart.lbminute;
voidlboffline(lbStudentlbstu[],intqhn)
lbcalculate(lbstu[lbi]);
if(strcmp(lbcom[lbk].lbstut.lbnum,lbstu[lbi].lbnum)==0)
\t------