机房收费管理系统C程序设计报告.docx

上传人:b****6 文档编号:9084783 上传时间:2023-02-03 格式:DOCX 页数:28 大小:465.89KB
下载 相关 举报
机房收费管理系统C程序设计报告.docx_第1页
第1页 / 共28页
机房收费管理系统C程序设计报告.docx_第2页
第2页 / 共28页
机房收费管理系统C程序设计报告.docx_第3页
第3页 / 共28页
机房收费管理系统C程序设计报告.docx_第4页
第4页 / 共28页
机房收费管理系统C程序设计报告.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

机房收费管理系统C程序设计报告.docx

《机房收费管理系统C程序设计报告.docx》由会员分享,可在线阅读,更多相关《机房收费管理系统C程序设计报告.docx(28页珍藏版)》请在冰豆网上搜索。

机房收费管理系统C程序设计报告.docx

机房收费管理系统C程序设计报告

C++程序设计

设计报告

题目:

机房收费管理系统

 

一、实验题目

机房收费管理系统

二、实验环境

VisualC++6.0

三、设计思想

包括:

函数分解过程、算法描述以及相应的数据流程图

一、函数分解过程

1、输入功能

structlbtime

{intlbhour;

intlbminute;

intlbsecond;

};

typedefstruct

{

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-'0');

}

intlbinput(lbStudentlbstu[],intlbn)

{

intlbi=0;

charlbsign='0';

while(lbsign!

='lbn'&&lbsign!

='lbN')

{

getchar();

cout<<"\t\t学号:

";

gets(lbstu[lbn+qhi].lbnum);

cout<<"\t\t班级:

";

cin>>lbstu[lbn+lbi].lbbanji;

getchar();

cout<<"\t\t姓名:

";

gets(lbstu[lbn+lbi].lbname);

cout<<"\t\t继续输入?

是请按Y,否请按N:

";

cin>>lbsign;

lbstu[lbn+qhi].lbflag=0;

lbi++;

}

return(lbn+lbi);

}

voidlbonline(lbStudentlbstu[],intlbn)

{

charlbnum_t[20],lbname_t[20];

intlbi,lbs;

do

{

cout<<"\t\t使用姓名按1,使用学号按2:

";

cin>>lbs;}

while(lbs!

=1&&lbs!

=2);

getchar();

if(lbs==1)

{

cout<<"\t\t请输入姓名:

";

gets(lbname_t);

for(lbi=0;lbi

if(strcmp(lbstu[lbi].lbname,lbname_t)==0)

break;

}

else

{

cout<<"\t\t请输入学号:

";

gets(lbnum_t);

for(lbi=0;lbi

{

if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)

break;

}

}

if(lbi==lbn)

{

cout<<"\t\t信息库中暂无该生,请输入该生信息再上机!

\n";

return;}

elseif(lbstu[lbi].lbflag==1)

{

cout<<"\t\t该生正在上机!

\n";

return;

}

else

{

for(lbk=0;lbk<30;lbk++)

if(lbcom[lbk].lbf==0)

{

lbcom[lbk].lbf=1;

cout<<"\t\t请输入上机时间(当前时间):

";

cin>>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)

cout<<"\t\t机器全部使用中,请稍后再上机!

\n";

}

}

2、计算功能

voidlbcalculate(lbStudentlbstu){

intlbt;

structlbtimelbtimet;

if(lbstu.lbfinish.lbsecond

{if(lbstu.lbfinish.lbminute==0)

{lbstu.lbfinish.lbhour-=1;

lbstu.lbfinish.lbminute=59;

}

else

lbstu.lbfinish.lbminute-=1;

lbtimet.lbsecond=lbstu.lbfinish.lbsecond+60-lbstu.lbstart.lbsecond;

}

else

lbtimet.lbsecond=lbstu.lbfinish.lbsecond-lbstu.lbstart.lbsecond;

if(lbstu.lbfinish.lbminute

{

lbstu.lbfinish.lbhour-=1;lbtimet.lbminute=lbstu.lbfinish.lbminute+60-lbstu.lbstart.lbminute;

}

else

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;

else

lbt=lbtimet.lbhour+1;

cout<<"\t\t该生上机用时%d小时,费用为%d元\n",lbt,lbt;

}

3、查询功能

voidlboffline(lbStudentlbstu[],intlbn)

{

charlbnum_t[20],lbname_t[20];

intlbi,lbs;

do

{

cout<<"\t\t使用姓名按1,使用学号按2:

";

cin>>lbs;

}while(lbs!

=1&&lbs!

=2);

getchar();

if(lbs==1)

{

cout<<"\t\t请输入姓名:

";

gets(lbname_t);

for(lbi=0;qhi

{

if(strcmp(lbstu[lbi].lbname,lbname_t)==0)

break;

}

}

else

{

cout<<"\t\t请输入学号:

";

gets(lbnum_t);

for(lbi=0;lbi

{

if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)

break;

}

}

if(lbi==lbn)

{

cout<<"\t\t没有这个学生!

\n";

return;

}

elseif(lbstu[lbi].lbflag==0)

{

cout<<"\t\t该生未上机或已下机!

\n";

return;

}

else

{

cout<<"\t\t请输入下机时间(当前时间):

";

cin>>lbstu[lbi].lbfinish.lbhour>>lbstu[lbi].lbfinish.lbminute>>lbstu[lbi].lbfinish.lbsecond;

lbcalculate(lbstu[qhi]);lbstu[lbi].lbflag=0;

for(lbk=0;lbk<3;lbk++)

if(strcmp(lbcom[lbk].lbstut.lbnum,lbstu[lbi].bnum)==0)

{

lbcom[lbk].lbf=0;break;

}

}

}

voidlbsearch(lbStudentlbstu[],intlbn){

charlbnum_t[20],lbname_t[20];

intlbi,lbs;

do

{

cout<<"\t\t使用姓名按1,使用学号按2:

";

cin>>lbs;

}while(lbs!

=1&&qhs!

=2);

getchar();

if(lbs==1)

{

cout<<"\t\t请输入姓名:

";

gets(lbname_t);

for(lbi=0;qhi

{

if(strcmp(lbstu[lbi].lbname,lbname_t)==0)

break;

}

}

else

{

cout<<"\t\t请输入学号:

";

gets(lbnum_t);

for(lbi=0;qhi

{

if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)

break;

}

}

if(lbi==lbn)

{

cout<<"\t\t查无此生!

\n";

return;

}

elseif(lbstu[lbi].lbflag==1)

cout<<"\t\t该生正在上机,上机起始时间为%d:

%d:

%d\n",lbstu[lbi].lbstart.lbhour,lbstu[lbi].lbstart.lbminute,lbstu[lbi].lbstart.lbsecond;

else

cout<<"\t\t该生未上机或已下机!

\n";

}

4、机器使用情况的显示

voiddisplay()

{

cout<<"\t机器号是否使用使用者学号班级上机时间\n";

cout<<"\t----------------------------------------------------------\n";

for(lbk=0;lbk<30;lbk++)

{

if(lbcom[lbk].lbf==0)

cout<<"\t%02d否-----:

--:

--\n",qhk+1;

else

cout<<"yes"<

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;

}

cout<<"\t";

system("pause");

}

1总体结构图

2主函数程序流程图

3子函数程序流程图

1输入学生信息

2学生上机

3学生下机

4上机时间查询

5机器使用情况

四、源程序清单

包括调试过程(碰到的错误、如何错误排除)

#include"stdafx.h"

#include

#include

#include

#include

#include

usingnamespacestd;

structqhtime

{intqhhour;

intlbminute;

intlbsecond;

};

typedefstruct

{

charlbnum[20];

intlbbanji;

intlbflag;

charlbname[20];

structlbtimelbstart,lbfinish;}

lbStudent;

lbStudentlbstu[50];

structlbcomputer

{intlbf;

lbStudentlbstut;

}lbcom[30];

intlbk;

intlbmain_menu()

{charqhc;

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'||qhc>'5');

return(lbc-'0');

}

intlbinput(lbStudentlbstu[],intlbn)

{

intlbi=0;

charlbsign='0';

while(lbsign!

='lbn'&&lbsign!

='lbN')

{

getchar();

cout<<"\t\t学号:

";

gets(lbstu[lbn+lbi].lbnum);

cout<<"\t\t班级:

";

cin>>lbstu[lbn+lbi].lbbanji;

getchar();

cout<<"\t\t姓名:

";

gets(lbstu[lbn+lbi].lbname);

cout<<"\t\t继续输入?

是请按Y,否请按N:

";

cin>>lbsign;

lbstu[lbn+lbi].lbflag=0;

lbi++;

}

return(lbn+lbi);

}

voidlbonline(lbStudentlbstu[],intlbn)

{

charlbnum_t[20],lbname_t[20];

intlbi,lbs;

do

{

cout<<"\t\t使用姓名按1,使用学号按2:

";

cin>>lbs;}

while(lbs!

=1&&lbs!

=2);

getchar();

if(lbs==1)

{

cout<<"\t\t请输入姓名:

";

gets(lbname_t);

for(lbi=0;lbi

if(strcmp(lbstu[lbi].lbname,lbname_t)==0)

break;

}

else

{

cout<<"\t\t请输入学号:

";

gets(lbnum_t);

for(lbi=0;lbi

{

if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)

break;

}

}

if(lbi==lbn)

{

cout<<"\t\t信息库中暂无该生,请输入该生信息再上机!

\n";

return;}

elseif(lbstu[lbi].lbflag==1)

{

cout<<"\t\t该生正在上机!

\n";

return;

}

else

{

for(lbk=0;lbk<30;lbk++)

if(lbcom[lbk].lbf==0)

{

lbcom[lbk].lbf=1;

cout<<"\t\t请输入上机时间(当前时间):

";

cin>>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)

cout<<"\t\t机器全部使用中,请稍后再上机!

\n";

}

}

voidlbcalculate(lbStudentlbstu){

intlbt;

structlbtimelbtimet;

if(lbstu.lbfinish.lbsecond

{if(lbstu.lbfinish.lbminute==0)

{lbstu.lbfinish.lbhour-=1;

lbstu.lbfinish.lbminute=59;

}

else

lbstu.lbfinish.lbminute-=1;

lbtimet.lbsecond=lbstu.lbfinish.lbsecond+60-lbstu.lbstart.lbsecond;

}

else

lbtimet.lbsecond=lbstu.lbfinish.lbsecond-lbstu.lbstart.lbsecond;

if(lbstu.lbfinish.lbminute

{

lbstu.lbfinish.lbhour-=1;

lbtimet.lbminute=lbstu.lbfinish.lbminute+60-lbstu.lbstart.lbminute;

}

else

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;

else

lbt=lbtimet.lbhour+1;

cout<<"\t\t该生上机用时%d小时,费用为%d元\n",lbt,lbt;

}

voidlboffline(lbStudentlbstu[],intqhn)

{

charlbnum_t[20],lbname_t[20];

intlbi,lbs;

do

{

cout<<"\t\t使用姓名按1,使用学号按2:

";

cin>>lbs;

}while(lbs!

=1&&lbs!

=2);

getchar();

if(lbs==1)

{

cout<<"\t\t请输入姓名:

";

gets(lbname_t);

for(lbi=0;lbi

{

if(strcmp(lbstu[lbi].lbname,lbname_t)==0)

break;

}

}

else

{

cout<<"\t\t请输入学号:

";

gets(lbnum_t);

for(lbi=0;lbi

{

if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)

break;

}

}

if(lbi==lbn)

{

cout<<"\t\t没有这个学生!

\n";

return;

}

elseif(lbstu[lbi].lbflag==0)

{

cout<<"\t\t该生未上机或已下机!

\n";

return;

}

else

{

cout<<"\t\t请输入下机时间(当前时间):

";

cin>>lbstu[lbi].lbfinish.lbhour>>lbstu[lbi].lbfinish.lbminute>>lbstu[lbi].lbfinish.lbsecond;

lbcalculate(lbstu[lbi]);lbstu[lbi].lbflag=0;

for(lbk=0;lbk<3;lbk++)

if(strcmp(lbcom[lbk].lbstut.lbnum,lbstu[lbi].lbnum)==0)

{

lbcom[lbk].lbf=0;break;

}

}

}

voidlbsearch(lbStudentlbstu[],intlbn){

charlbnum_t[20],lbname_t[20];

intlbi,lbs;

do

{

cout<<"\t\t使用姓名按1,使用学号按2:

";

cin>>lbs;

}while(lbs!

=1&&lbs!

=2);

getchar();

if(lbs==1)

{

cout<<"\t\t请输入姓名:

";

gets(lbname_t);

for(lbi=0;lbi

{

if(strcmp(lbstu[lbi].lbname,lbname_t)==0)

break;

}

}

else

{

cout<<"\t\t请输入学号:

";

gets(lbnum_t);

for(lbi=0;lbi

{

if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)

break;

}

}

if(lbi==lbn)

{

cout<<"\t\t查无此生!

\n";

return;

}

elseif(lbstu[lbi].lbflag==1)

cout<<"\t\t该生正在上机,上机起始时间为%d:

%d:

%d\n",lbstu[lbi].lbstart.lbhour,lbstu[lbi].lbstart.lbminute,lbstu[lbi].lbstart.lbsecond;

else

cout<<"\t\t该生未上机或已下机!

\n";

}

voiddisplay()

{

cout<<"\t机器号是否使用使用者学号班级上机时间\n";

cout<<"\t---------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1