C语言 详解华为笔试试题 租借网球场地 场地租借合同

题目:网球中心共有100个网球场,每个单位可以来申请1到100的场地,申请的场地编号必须是连续的,如果场地已经被其他单位占用,就不能再次使用,而且单位在使用完场地后必须归还。请设计一个完整的系统(c语言)

使用结构体来处理这个问题。本题并没有完全按照题目要求做而是对他进行了一些扩展。

#include<stdio.h>

#include<string.h>

#define max 15

struct stu/*定义一个结构体存放数组标志位看当前的地方是否被占用*/

{

int flag;

} ;

struct stc/*定义结构体存放单位的名字和占用的场地*/

{

int flag1;

int begin;

int end;

char name[20];

};

struct stud/*c是存放公司的名字和场地的大小,a是存储具体被占用的场地*/

{

struct stc c[max];

struct stu a[100];

};

check(struct stud *p,int m,int n,int s)/*检查场地是否可以使用*/

{

int i=0;

for(i=m;i<=n;i++)

{

if((*p).a[i].flag==1)/*若不可用接返货*/

return 0;

}

for(i=m;i<=n;i++)/*可用给对应的标志位赋1*/

{

(*p).a[i].flag=1;

(*p).c[s].flag1=1;

}

return 1;

}

void gui_huan(struct stud *p,char *name,int n)/*归还相应场地*/

{

int i,k;

for(i=0;i<n;i++)/*通过输入的公司名字来匹配相应的公司,并归还相应的场地*/

{

if(!strcmp((*p).c[i].name,name))

{

(*p).c[i].flag1=0;/*公司存储信息标志位清零*/

for(k=(*p).c[i].begin-1;k<=(*p).c[i].end-1;++k)

{

(*p).a[k].flag=0;/*场地标志位请0*/

}

}

}

}

void cha_kan(struct stud *p,int flag,int l)/*查看场地是否可用,或看被占用场地*/

C语言 详解华为笔试试题 租借网球场地 场地租借合同
{

int i;

if(flag)

{

printf("没有用的场地号有n");

for(i=0;i!=100;i++)

{

if(!(*p).a[i].flag)/*输出没有被占用的场地*/

{

printf("%dt",i+1);

if(i%5==0)

printf("n");

}

}

}

else

{

int flag2;

for(i=0;i<max;i++)

{

if((*p).c[i].flag1)/*当公司位没有被清0的进行比较*/

{

printf("租借单位为n");/*输出相应的信息*/

printf("%sn",(*p).c[i].name);

printf("租借场地号为n");

for(int s=(*p).c[i].begin;s<=(*p).c[i].end;++s)

{

flag2=0;

printf("%dt",s);

if(s%5==0)

printf("n");

}

}

}

if(flag2)

printf("没有租借单位租借n");

}

}

void main()

{

struct stud p;

int i=0,m,n;

char name[20],c;

for(i=0;i!=100;i++)

p.a[i].flag=0;

for(i=0;i<max;i++)

p.c[i].flag1=0;

printf("您是来租借场地还是来归还场地,输入y租借场地n输入n归还场地,输入l来查看没有租用场地,输入m查看租用的场地,输入x退出n");

i=0;

while((c=getchar())!='x')

{

if(c=='y'||c=='Y')

{

int k;

printf("请输入您要租借的起始场地号和个数n");

scanf("%d%d",&m,&n);

getchar();

m--;

n--;

k=check(&p,m,m+n,i);

if(k==1)

{

p.c[i].begin=m+1;

p.c[i].end=m+n+1;

printf("场地可以租用,请输入您的单位名称n");

scanf("%s",p.c[i].name);

getchar();

while(p.c[i].flag1)

i++;

}

else

{

printf("场地已经被其它单位占用n");

}

}

else if(c=='n'||c=='N')

{

printf("请输入您的单位名称n");

scanf("%s",&name);

getchar();

gui_huan(&p,name,i);

printf("已经归还成功n");

}

else if(c=='l'||c=='Y')

{

int fla=1;

cha_kan(&p,fla,i);

getchar();

}

else if(c=='m'||c=='M')

{

int fla=0;

cha_kan(&p,fla,i);

getchar();

}

else

;

if(i==max)

i=0;

printf("n您是来租借场地还是来归还场地,输入y租借场地,输入n归还场地,输入l来查看场地,输入x退出n");

}

printf("谢谢使用n");

}

  

爱华网本文地址 » http://www.413yy.cn/a/25101012/124081.html

更多阅读

2012年高考语文试题及答案详解之一:全国大纲卷

2012年普通高等学校招生全国统一考试语文题(大纲版)详解井永战一、(12分,每小题3分)1.下列词语中加点的字,读音全都正确的一组是A.颀长(qí)悚然(sù)彰善瘅恶(dàn)韬光养晦(huì)b.人寰(huán)攫取(jué)寻瑕伺隙(xì)啮臂为盟(niè)C.抵牾(yǔ)横亘(gèn)造

华为笔试题面试题集总4 java开发笔试题面试题

华为最新笔试题及其分析1.printf的输出问题printf("%d",total);//this is right printf(total);//this is wrongprintf("hello");//but this is right2.整数类型的长度 char 1个子节,8位unsigned short [int] [signed] short int

声明:《C语言 详解华为笔试试题 租借网球场地 场地租借合同》为网友迷倒万千少女分享!如侵犯到您的合法权益请联系我们删除