资源描述:
《c语言课程设计--机房机位预定系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C语言课程设计1设计目的机房机位预定系统2任务概述20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求:(1)系统以菜单方式工作(2)查询,根据输入时间,输出机位信息。(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。(4)退出预定,根据输入的时间,机器号撤销该事件的预定!(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。.........3模块划分机房机位预约系统查询机位预定机位退出预定查询等待信息4主要函
2、数说明及其N-S图1.主函数:intmain(){Menu();/*当前状态函数*/}voidMenu()/*主界面*/{intn,w;do{puts("tt****************机房机位预约系统*******************");puts("tt*************************菜单***************************");第16页共17页C语言课程设计puts("ttt1.查询某时间段机位状态");/*查询某时间段机位状态*/puts("ttt2.预定空机位");/*预定空机位*/put
3、s("ttt3.取消预订");/*取消预订*/puts("ttt4.查询等待信息");/*查询等待信息*/puts("ttt5.退出");/*退出*/puts("tt********************************************************");printf("选择菜单号(1-5):");scanf("%d",&n);if(n<1
4、
5、n>5){w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:Situation();break;case2:Book();
6、break;case3:Cancel();break;case4:SearchWaiting();break;case5:exit(0);break;}getch();}2.机位查询:voidSituation(){inttime;printf("输在(8-20)范围内的时间:");scanf("%d",&time);if(time<8
7、
8、time>20)第16页共17页C语言课程设计{printf("t时间输入错误!");printf("输入在(8-20)范围内的时间:");scanf("%d",&time);}detail(time);/*函数调用*/getc
9、har();Menu();}3.机位预定:voidBook(){inttime,i=0,x,y;FILE*fp;charc;printf("在(8-20)时间范围内输入你想要预定的时间:");scanf("%d",&time);if(time<8
10、
11、time>20){printf("t时间输入错误!");printf("t在(8-20)时间范围内输入你想要预定的时间:");scanf("%d",&time);}detail(time);/*函数调用*/if(sum[T]>0){if((fp=fopen("waitlist.txt","a"))==NULL){pr
12、intf("无法打开文件!");exit(0);}printf("t请输入你想要预定的机号,并且留下你的电话号码!:");第16页共17页C语言课程设计scanf("%s%s",wait[i].number,wait[i].telephonenumber);for(i=0;i<1;i++)fwrite(&wait[i],sizeof(structwaitlist),1,fp);fclose(fp);/*向文本文档添加一个结构体单元*/printf("t再次输入你想要预定的时间!");scanf("%d",&x);/*sum[T]--;/*预定后该
13、时间段空机位数减1*//*computer[T][x]=1;/*预定后该机状态变为1*/printf("t预订成功!");getchar();Menu();}else{printf("这是在这个时间段内未预定的电脑!");for(i=T+1;i<6;i++){time=9+2*i;detail(time);/*函数调用*/if(sum[T]>0)printf("tThelatestfreetimeis%d,%d",2*i+8,2*i+10);break;}printf("t你想要预定吗?:y/n?");scanf("%s