机房机位预约模拟

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机房机位预约模拟
一、题目要求
(1)查询。

根据输入时间输出机位信息。

(2)机位预定。

根据输入的日期和时间段查询是否有空机位,若有
则预约,若无则提供最近时间段。

另外,若用户要求在非空时间段上机,
俄将用户信息插入该时间段的等待时间列表。

(3)退出预定。

根据输入的时间撤出该时间的预订。

二、设计思路
首先需要定义结构体数组存放等待人员,并且用文件来保存这些数据。

纵观整个程序,我用四个分函数来实现各个模块的功能,在主函数中刻画
一个分区模块,进入各个分区功能模块。

三、程序设计
首先写出一些函数头文件、自定义的宏定义、全局变量和定义一个结
构体数组:
#include
#include#include#include#defineSIZE20
{
charnumber[3];
charphonenumber[12];
}wait[SIZE];
然后开始建立函数模块,如下:
1、主函数
主函数提供了一个菜单界面,操作人员可根据界面的提示来操作以选择菜单中功能。

主函数一般设计的比较简洁,只提供输入、处理和输出部分的函数调用。

【主函数程序】main(){
Diplay();
}
voidDiplay()/某一个总的函数,用cae分别引出各个函数某/{
intc;
printf(\
printf(\机房机位预约\\n\printf(\
printf(\选择:\\n\printf(\
printf(\查询\\n\
printf(\printf(\预定\\n\
printf(\printf(\退出预定\\n\
printf(\printf(\查询等待信息\\n\
printf(\printf(\退出\\n\
printf(\printf(\请输入你的选择
(1/2/3/4/0):\\n\canf(\printf(\witch(c){
cae1:Search();break;cae2:Book();break;
cae3:Quit();break;
cae4:SearchWait();break;cae0:E某it();break;
default:printf(\警告:选择错误!\\n\Diplay();}}
2、查询系统
当输入时间在8点到20点之间才符合条件,并定义剩余电脑数量为
时间减去八。

程序如下voidSearch()/某查询函数,通过输出的时间查出
剩下的电脑数。

同时可以连续查询某/{
printf(\printf(\查询\\n\
printf(\printf(\请输入你要查询的时间(8-20,包括8:00):\canf(\
printf(\警告:输入的时间错误!\\n\
printf(\请再次输入(8-20,include8:00):\
canf(\}
printf(\还剩下机位数量:%d\\n\printf(\是否继续查询
Y/N\c=getche();printf(\if(c=='Y'||c=='y')Search();eleDiplay();}:
3、机位预订系统
如果时间减去8大于0,则预定成功。

程序如下:oidBook()/某预约
函数某/{
printf(\printf(\预定\\n\printf(\printf(\请输入你要预定的时间(8-20,包括8:00):\canf(\
printf(\警告:输入的时间错误!\\n\printf(\请再次输入(8-20,包括8:00):\canf(\}
printf(\预定成功!\\n\当电脑数不为0的时候,预约成功某
/Diplay();}ele
{
printf(\最近空机时间段:%d-%d\\n\2某2);
printf(\是否等待Y/N\\n\电脑数为0的时候选择是否等待某
/c=getche();
if(c=='Y'||c=='y')
{if((fp=fopen(\{
printf(\文件无法打开!\\n\e某it(0);
}
for(i=0;!feof(fp);i++)
fread(&wait[i],izeof(tructwaitlit),1,fp);
for(i=0;i<10;i++)
printf(\
printf(\fcloe(fp);
for(i=0;i<1;i++)
canf(\for(i=0;i<1;i++)
fwrite(&wait[i],izeof(tructwaitlit),1,fp);fcloe(fp);
printf(\操作成功,请等待我们的通知!\Diplay();}
eleDiplay();}}
4、退出预定
程序如下:
voidQuit()/某退出预约函数某/{
printf(\printf(\退出预定\\n\
printf(\printf(\请输入你已经预定的时间(8-20,包括
8:00):\canf(\
printf(\警告:输入的时间错误!\\n\printf(\请再次输入(8-20,包括8:00):\canf(\}
5、查询是否有等待信息
首先我在文件里存放了一些等待信息,当输入时间,调用文件直接查看。

程序如下:
voidSearchWait()/某查询等待列表函数某/{
inti;
printf(\printf(\查询等待信息\\n\
printf(\printf(\请输入你要查询的等待时间(8-20,包括
8:00):\canf(\
{
printf(\警告:输入的时间错误!\\n\printf(\请再次输入(8-20,包括8:00):\canf(\
}
if((fp=fopen(\{
printf(\文件无法打开!\\n\e某it(0);
}
for(i=0;!feof(fp);i++)
fread(&wait[i],izeof(tructwaitlit),1,fp);
printf(\fcloe(fp);/某根据输入的时间用文件的方式列出等待的列表某/}
6、退出系统
程序如下:
}oidE某it()/某退出菜单函数某/
{
printf(\e某it(0);}
7、文件
文件名:waitlit
011341969618102136458585850313416969685041586475823405132586965 47
四、源程序:
#include#include#include#include#defineSIZE20
voidDiplay();voidSearch();voidBook();voidQuit();voidWait();v oidSearchWait();
voidE某it();/某定义的一些相关的函数:查询,预约,退订,查询等待,退出某/
charnumber[3];charphonenumber[12];
main(){
Diplay();}
voidDiplay()/某一个总的函数,用cae分别引出各个函数某/{intc;
printf(\
printf(\机房机位预约\\n\printf(\printf(\选
择:\\n\printf(\printf(\查询\\n\
printf(\printf(\预定\\n\
printf(\printf(\退出预定\\n\
printf(\printf(\查询等待信息\\n\
printf(\printf(\退出\\n\
printf(\printf(\请输入你的选择
(1/2/3/4/0):\\n\canf(\printf(\witch(c){
cae1:Search();break;cae2:Book();break;cae3:Quit();break;cae4 :SearchWait();break;cae0:E某it();break;
default:printf(\警告:选择错误!\\n\Diplay();}}
voidSearch()/某查询函数,通过输出的时间查出剩下的电脑数。

同时可以连续查询某/{
printf(\printf(\查询\\n\
printf(\printf(\请输入你要查询的时间(8-20,包括8:00):\
printf(\警告:输入的时间错误!\\n\printf(\请再次输入(8-
20,include8:00):\canf(\}
printf(\还剩下机位数量:%d\\n\printf(\是否继续查询
Y/N\c=getche();printf(\if(c=='Y'||c=='y')Search();eleDiplay();} voidBook()/某预约函数某/{
printf(\printf(\预定\\n\
printf(\警告:输入的时间错误!\\n\printf(\请再次输入(8-20,包括8:00):\canf(\}
printf(\预定成功!\\n\当电脑数不为0的时候,预约成功某
/Diplay();}ele{
printf(\最近空机时间段:%d-%d\\n\
printf(\是否等待Y/N\\n\电脑数为0的时候选择是否等待某
/c=getche();if(c=='Y'||c=='y'){
if((fp=fopen(\{
printf(\文件无法打开!\\n\e某it(0);
}
for(i=0;!feof(fp);i++)
printf(\printf(\fcloe(fp);
{
printf(\文件无法打开!\\n\e某it(0);
for(i=0;i<1;i++)
canf(\for(i=0;i<1;i++)
fwrite(&wait[i],izeof(tructwaitlit),1,fp);fcloe(fp);
printf(\操作成功,请等待我们的通知!\Diplay();}
eleDiplay();}}
voidQuit()/某退出预约函数某/{
printf(\printf(\退出预定\\n\
{
printf(\警告:输入的时间错误!\\n\printf(\请再次输入(8-20,包括8:00):\canf(\}
voidSearchWait()/某查询等待列表函数某/{
printf(\printf(\查询等待信息\\n\
printf(\警告:输入的时间错误!\\n\printf(\请再次输入(8-20,包括8:00):\canf(\}
if((fp=fopen(\{
printf(\文件无法打开!\\n\e某it(0);}
for(i=0;!feof(fp);i++)
printf(\fcloe(fp);/某根据输入的时间用文件的方式列出等待的列表某/}
voidE某it()/某退出菜单函数某/{
printf(\e某it(0);。

相关文档
最新文档