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

上传人:b****5 文档编号:10163267 上传时间:2023-02-08 格式:DOCX 页数:17 大小:95.61KB
下载 相关 举报
机房机位预约模拟系统C语言课程设计.docx_第1页
第1页 / 共17页
机房机位预约模拟系统C语言课程设计.docx_第2页
第2页 / 共17页
机房机位预约模拟系统C语言课程设计.docx_第3页
第3页 / 共17页
机房机位预约模拟系统C语言课程设计.docx_第4页
第4页 / 共17页
机房机位预约模拟系统C语言课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

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

《机房机位预约模拟系统C语言课程设计.docx》由会员分享,可在线阅读,更多相关《机房机位预约模拟系统C语言课程设计.docx(17页珍藏版)》请在冰豆网上搜索。

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

机房机位预约模拟系统机房机位预约模拟系统C语言课程设计语言课程设计机房机位预约模拟一题目要求20台机器,从早八点到晚八点,每两个小时一个时间段.需要实现的功能:

(1)查询,根据输入的时间,输出机位信息.

(2)机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近空机时间段.另:

若用户要求在非空时间上机,则将用户信息插入该时间段的等待列表.(3)退出预定,根据输入的时间,撤消该时间的预定.(4)查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息.二需求分析根据题目要求,在程序中应实现查询,机位预定,插入等待列表,退出预定,查询等待信息等功能。

还应提供键盘式选择菜单实现功能选择。

而等待信息放在文件里,所以在相关的模块应提供文件的输入、输出操作。

三总体设计根据上面的需求分析,将这个系统的设计分为下面4个模块:

4详细设计1.预处理命令及函数声明#include#include#include#defineN20#defineT(time-8)/2intsum6=0;intcomputer620=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);structwaitlistcharnumber3;chartelephonenumber12;waitN;2主函数主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

其流程图如图所示:

显示一系列功能模块根据的值调用各功能模块函数YN输入n的值1-5结束2./*主函数*/voidmain()Menu();/*当前状态函数*/voidMenu()/*主界面*/intn,w;doputs(tt*COMPUTERBOOKSYSTERM*n);puts(tt*MENU*n);puts(ttt1.Searchthecurrentsituation);/*查询某时间段机位状态*/puts(ttt2.Bookthevacantcomputer);/*预定空机位*/puts(ttt3.Cancelbooking);/*取消预订*/puts(ttt4.Searchwaiting);/*查询等待信息*/puts(ttt5.Exit);/*退出*/puts(tt*n);printf(Chooseyournumber(1-5):

bb);scanf(%d,&n);if(n5)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.状态查询函数流程图调用detail函数返回主菜单/*查询模块*/*查询当前状态*/voidSituation()inttime;printf(Inputtimebetween(8-20):

);scanf(%d,&time);if(time20)printf(tWrongtime!

n);printf(Pleaseinputtimebetween(8-20):

);scanf(%d,&time);detail(time);/*函数调用*/getchar();Menu();4.预定模块函数流程图N执行一个循环,进入后面的时间段程序:

/*预定模块*/voidBook()inttime,i=0,x,y;FILE*fp;charc;printf(Inputtimeyouwanttobookbetween(8-20):

);scanf(%d,&time);if(time20)printf(tWrongtime!

n);printf(tInputtimeyouwanttobookbetween(8-20):

);scanf(%d,&time);detail(time);/*函数调用*/if(sumT0)if(fp=fopen(waitlist.txt,a)=NULL)printf(nCannotopenfile!

n);exit(0);printf(ntPleaseInputthenumberyouwanttobookandleaveyourtelephonenumber!

:

n);scanf(%s%s,waiti.number,waiti.telephonenumber);for(i=0;i1;i+)fwrite(&waiti,sizeof(structwaitlist),1,fp);fclose(fp);/*向文本文档添加一个结构体单元*/printf(tInputthenumberyouwanttobookagain!

n);scanf(%d,&x);sumT-;/*预定后该时间段空机位数减1*/computerTx=1;/*预定后该机状态变为1*/printf(tBooksucceed!

n);getchar();Menu();elseprintf(Thereisnovacantcomputeratthattime!

n);for(i=T+1;i0)printf(tThelatestfreetimeis%d,%dn,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);elseprintf(waitlist:

numbertelephonenumbern);for(i=0;!

feof(fp);i+)fscanf(fp,%s%s,&waiti.number,&waiti.telephonenumber);fclose(fp);for(i=0;i10;i+)printf_one(i);printf(ntPleaseInputthenumberyouwanttobookandleaveyourtelephonenumber!

:

n);if(fp=fopen(waitlist.txt,a)=NULL)printf(nCannotopenfile!

n);exit(0);scanf(%s%s,waiti.number,waiti.telephonenumber);for(i=0;i1;i+)fwrite(&waiti,sizeof(structwaitlist),1,fp);fclose(fp);/*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式*/printf(Inputthenumberofthecomputeragain!

n);scanf(%d,&y);sumT-;computerTy=1;printf(tOk,pleasewaitourphone!

n);Menu();elseMenu();5,取消预订模块函数流程图调用detail函数该时间段空电脑数加1,所取消电脑号状态变为0主菜单/*取消预订模块*/voidCancel()inttime,number;printf(Inputtimeyouhavebookedbetween(8-20):

);scanf(%d,&time);if(time20)printf(tWrongtime!

n);printf(tInputtimeyouhavebookedbetween(8-20):

);scanf(%d,&time);elseprintf(tInputnumberyouhavebooked:

);scanf(%d,&number);detail(time);sumT+;/*预定后该时间段空机位数加1*/computerTnumber=0;/*预定后该机状态变为0*/printf(tCancelsucceed!

n);getchar();Menu();6查询等待信息模块流程图输入时间8-20打开文本文件,将文本文件转化为二进制文件输出到屏幕上,显示等待信息YN返回主菜单/*查询等待信息模块*/voidSearchWaiting()inttime,i;FILE*fp;printf(tInputtimeyouwanttosearchbetween(8-20):

);scanf(%d,&time);if(time20)printf(tWrongtime!

n);printf(tInputtimeyouwanttosearchbetween(8-20):

);scanf(%d,&time);else;if(fp=fopen(waitlist.txt,r)=NULL)printf(nCannotopenfile!

n);exit(0);elseprintf(waitlist:

numbertelephonenumbern);for(i=0;!

feof(fp);i+)fscanf(fp,%s%s,&waiti.number,&waiti.telephonenumber);fclose(fp);for(i=0;i10;i+)printf_one(i);Menu();7.公共函数程序voiddetail(inttime)/*此函数功能是实现查找每个时间段空机位总数和空机位号*/inti,j=0,k,s=0;intv30;for(i=0;i20;i+)if(computerTi=0)s+;vj+=i;sumT=s;printf(tCurrentvacantcomputers:

%dn,sumT);for(k=0;kj;k+)printf(tThevacantcomputersare:

%dn,vk);voidprintf_one(inti)/*此函数功能是实现输出等待列表到屏幕*/printf(tt%s%sn,waiti.number,waiti.telephonenumber);8运行界面1,选1.,进入查询当前状态2选2,进入预定函数3.选4.进入查询当前状态函数4.选3.取消预订5.选2.当某时间段没有空机位时,进入下一个时间段的查询和预定6.选5.退出界面

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

当前位置:首页 > 表格模板 > 书信模板

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

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