首页 机房机位预约模拟系统—C语言课程设计

机房机位预约模拟系统—C语言课程设计

举报
开通vip

机房机位预约模拟系统—C语言课程设计C语言课程设计报告机房机位预约模拟一.题目要求20台机器,从早八点到晚八点,每两个小时一个时间段.需要实现的功能:(1)查询,根据输入的时间,输出机位信息.(2)机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近空机时间段.另:若用户要求在非空时间上机,则将用户信息插入该时间段的等待列表.(3)退出预定,根据输入的时间,撤消该时间的预定.(4)查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息.二.需求分析根据题目要求,在程序中应实现查询,机位预定,插入等待列表,退出预定,查...

机房机位预约模拟系统—C语言课程设计
C语言课程设计报告机房机位预约模拟一.题目要求20台机器,从早八点到晚八点,每两个小时一个时间段.需要实现的功能:(1)查询,根据输入的时间,输出机位信息.(2)机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近空机时间段.另:若用户要求在非空时间上机,则将用户信息插入该时间段的等待列表.(3)退出预定,根据输入的时间,撤消该时间的预定.(4)查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息.二.需求分析根据题目要求,在程序中应实现查询,机位预定,插入等待列表,退出预定,查询等待信息等功能。还应提供键盘式选择菜单实现功能选择。而等待信息放在文件里,所以在相关的模块应提供文件的输入、输出操作。三.总体设计根据上面的需求分析,将这个系统的设计分为下面4个模块:4.详细设计1.预处理命令及函数声明#include<stdio.h>#include<stdlib.h>#include<string.h>#defineN20#defineT(time-8)/2intsum[6]={0};intcomputer[6][20]={{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1},{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0},{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1}};/*该数组表示假设某天某人查询时机房各个时间段机位数情况*/voidMenu();voidSituation();voidBook();voidCancel();voidSearchWaiting();voidExit();voiddetail(inttime);voidprintf_one(inti);structwaitlist{charnumber[3];chartelephonenumber[12];}wait[N];2.主函数主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如图所示:2./*主函数*/voidmain(){Menu();/*当前状态函数*/}voidMenu()/*主界面*/{intn,w;do{puts("\t\t****************COMPUTERBOOKSYSTERM*******************\n");puts("\t\t*************************MENU***************************\n");puts("\t\t\t1.Searchthecurrentsituation");/*查询某时间段机位状态*/puts("\t\t\t2.Bookthevacantcomputer");/*预定空机位*/puts("\t\t\t3.Cancelbooking");/*取消预订*/puts("\t\t\t4.Searchwaiting");/*查询等待信息*/puts("\t\t\t5.Exit");/*退出*/puts("\t\t********************************************************\n");printf("Chooseyournumber(1-5):[]\b\b");scanf("%d",&n);if(n<1||n>5){w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:Situation();break;case2:Book();break;case3:Cancel();break;case4:SearchWaiting();break;case5:Exit(0);break;}}3.状态查询函数流程图/*查询模块*//*查询当前状态*/voidSituation(){inttime;printf("Inputtimebetween(8-20):");scanf("%d",&time);if(time<8||time>20){printf("\tWrongtime!\n");printf("Pleaseinputtimebetween(8-20):");scanf("%d",&time);}detail(time);/*函数调用*/getchar();Menu();}4.预定模块函数流程图程序:/*预定模块*/voidBook(){inttime,i=0,x,y;FILE*fp;charc;printf("Inputtimeyouwanttobookbetween(8-20):");scanf("%d",&time);if(time<8||time>20){printf("\tWrongtime!\n");printf("\tInputtimeyouwanttobookbetween(8-20):");scanf("%d",&time);}detail(time);/*函数调用*/if(sum[T]>0){if((fp=fopen("waitlist.txt","a"))==NULL){printf("\nCannotopenfile!\n");exit(0);}printf("\n\tPleaseInputthenumberyouwanttobookandleaveyourtelephonenumber!:\n");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("\tInputthenumberyouwanttobookagain!\n");scanf("%d",&x);sum[T]--;/*预定后该时间段空机位数减1*/computer[T][x]=1;/*预定后该机状态变为1*/printf("\tBooksucceed!\n");getchar();Menu();}else{printf("Thereisnovacantcomputeratthattime!\n");for(i=T+1;i<6;i++){time=9+2*i;detail(time);/*函数调用*/if(sum[T]>0)printf("\tThelatestfreetimeis%d,%d\n",2*i+8,2*i+10);break;}printf("\tDoyouwanttowait?:y/n?");scanf("%s",&c);getchar();if(c=='Y'||c=='y'){if((fp=fopen("waitlist.txt","r"))==NULL){printf("\nCannotopenfile!\n");exit(0);}else{printf("waitlist:numbertelephonenumber\n");for(i=0;!feof(fp);i++){fscanf(fp,"%s%s",&wait[i].number,&wait[i].telephonenumber);}fclose(fp);}for(i=0;i<10;i++){printf_one(i);}printf("\n\tPleaseInputthenumberyouwanttobookandleaveyourtelephonenumber!:\n");if((fp=fopen("waitlist.txt","a"))==NULL){printf("\nCannotopenfile!\n");exit(0);}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("Inputthenumberofthecomputeragain!\n");scanf("%d",&y);sum[T]--;computer[T][y]=1;printf("\tOk,pleasewaitourphone!\n");Menu();}elseMenu();}}5,取消预订模块函数流程图/*取消预订模块*/voidCancel(){inttime,number;printf("Inputtimeyouhavebookedbetween(8-20):");scanf("%d",&time);if(time<8||time>20){printf("\tWrongtime!\n");printf("\tInputtimeyouhavebookedbetween(8-20):");scanf("%d",&time);}else{printf("\tInputnumberyouhavebooked:");scanf("%d",&number);}detail(time);sum[T]++;/*预定后该时间段空机位数加1*/computer[T][number]=0;/*预定后该机状态变为0*/printf("\tCancelsucceed!\n");getchar();Menu();}6查询等待信息模块流程图/*查询等待信息模块*/voidSearchWaiting(){inttime,i;FILE*fp;printf("\tInputtimeyouwanttosearchbetween(8-20):");scanf("%d",&time);if(time<8||time>20){printf("\tWrongtime!\n");printf("\tInputtimeyouwanttosearchbetween(8-20):");scanf("%d",&time);}else;if((fp=fopen("waitlist.txt","r"))==NULL){printf("\nCannotopenfile!\n");exit(0);}else{printf("waitlist:numbertelephonenumber\n");for(i=0;!feof(fp);i++){fscanf(fp,"%s%s",&wait[i].number,&wait[i].telephonenumber);}fclose(fp);}for(i=0;i<10;i++){printf_one(i);}Menu();}7.公共函数程序voiddetail(inttime)/*此函数功能是实现查找每个时间段空机位总数和空机位号*/{inti,j=0,k,s=0;intv[30];for(i=0;i<20;i++){if(computer[T][i]==0){s++;v[j++]=i;}}sum[T]=s;printf("\tCurrentvacantcomputers:%d\n",sum[T]);for(k=0;k<j;k++)printf("\tThevacantcomputersare:%d\n",v[k]);}voidprintf_one(inti)/*此函数功能是实现输出等待列表到屏幕*/{printf("\t\t%s%s\n",wait[i].number,wait[i].telephonenumber);}8运行界面1,选1.,进入查询当前状态2选2,进入预定函数3.选4.进入查询当前状态函数4.选3.取消预订5.选2.当某时间段没有空机位时,进入下一个时间段的查询和预定6.选5.退出界面查询等待信息模块取消预订模块预订模块状态查询模块机房机位预约模拟系统开始NY根据的值调用各功能模块函数结束输入n的值1-5显示一系列功能模块开始输入1输入时间8-20调用detail函数返回主菜单是否开始开始调用detail函数输入机位号YN该时间段空电脑数加1,所取消电脑号状态变为0主菜单输入time的值8-20调用detail函数,sum[T]的值改变打开文本文件waitlist.txt,输入预定机位号和联系方式,追加一个结构体成员。Sum[T]>0执行一个循环,进入后面的时间段输出空机位数,是否等待N返回主菜单NY输入时间8-20开始输入时间8-20打开文本文件,将文本文件转化为二进制文件输出到屏幕上,显示等待信息返回主菜单YNPAGE1
本文档为【机房机位预约模拟系统—C语言课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥16.9 已有0 人下载
最新资料
资料动态
专题动态
is_704284
暂无简介~
格式:doc
大小:327KB
软件:Word
页数:0
分类:公务员考试
上传时间:2018-05-18
浏览量:4