机房收费管理系统C程序设计报告.docx
- 文档编号:25746621
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:28
- 大小:466.15KB
机房收费管理系统C程序设计报告.docx
《机房收费管理系统C程序设计报告.docx》由会员分享,可在线阅读,更多相关《机房收费管理系统C程序设计报告.docx(28页珍藏版)》请在冰豆网上搜索。
机房收费管理系统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------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机房 收费 管理 系统 程序设计 报告