69,371
社区成员
发帖
与我相关
我的任务
分享
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
#include <malloc.h>
# define MAXSIZE 3
typedef struct{//定义汽车进入停车场的登记信息
char number[10];
char comedata[10];
char cometime[10];
char leavedata[10];
char leavetime[10];
}carmes;
typedef struct {//定义停车场的信息
carmes* top;
carmes* base;
int size;
}*parkmes,parkarea;
typedef struct sidewalk{//定义便道上车的信息
char carnum[10];
struct sidewalk *next;
}*sidecar,sidewalkcar;
typedef struct {
sidecar front;//队列的头指针
sidecar rear;//队列的尾指针
}sidewalkmes;
void time(char time1[],char time2[])//获取停车时间函数
{
_tzset();
_strdate(time2);
_strtime(time1);
}
void Initsidepark(sidewalkmes &sidepark)//初始化便道停车场
{
sidepark.front=(sidewalkcar*)malloc(sizeof(sidewalkcar));
if(!sidepark.front)
{
printf("\n\n初始化分配空间失败");
exit(1);
}
sidepark.rear=sidepark.front;
sidepark.front->next=NULL;
}
void sidewalkpark(sidewalkmes sidepark)//便道停车
{
sidewalkmes p;
printf("\n\n请输入要停车的车牌号:");
gets(sidepark.front->carnum);
p.front=(sidewalkcar*)malloc(sizeof(sidewalkcar));
if(!p.front)
{
printf("\n\n分配空间失败");
exit(1);
}
sidepark.front->next=p.front;
sidepark.front=p.front;
p.front->next=NULL;
}
void Initpark(parkarea &park)//初始化停车场
{
park.base=(carmes *)malloc(MAXSIZE*sizeof(carmes));
//申请空间 好像这里不正确可是我不知道怎么改
if(!park.base)
{
printf("申请空间失败");
exit(1);
}
park.top=park.base;
park.size=0;
}
void inputcarmess(parkmes park)//停入停车场输入车的信息
{
printf("\n\n\t\t请输入车牌号:");
gets(park->top->number);
time(park->top->comedata,park->top->cometime);
printf("\t\t停车成功!!!车辆信息:\n");
printf("\t\t车牌:%s\n\t\tcomedata:%s\n\t\tcometime:%s",park->top->number,park->top->comedata,park->top->cometime);
}
void carpark(parkmes park,sidewalkmes sidepark)//停车
{
if(park->size>=MAXSIZE)
{
printf("警告:");
printf("\n\n停车场已满,请暂时停到便道\n");
sidewalkpark(sidepark);
}
inputcarmess(park);
park->size++;
}
void free(parkmes park)//释放空间
{
while(park->top!=park->base)
{
free(park->top);
park->top--;
}
free(park->base);
}
int main()
{
parkarea park;//定义停车场变量
sidewalkmes sidepark;//定义便道变量
parkmes park2;
//printf("%d\n",sizeof(carmes));
Initpark(park);//初始化停车场变量
park2=&park;
Initsidepark(sidepark);//初始化便道变量
while(1)
{
carpark(park2,sidepark);//停车开始
}
//free(park);
return 0;
}
int main()
{
parkmes park = (parkmes)malloc(sizeof(parkarea));//定义停车场变量
sidewalkmes sidepark;//定义便道变量
Initpark(park);//初始化停车场变量
Initsidepark(sidepark);//初始化便道变量
carpark(park,sidepark);//停车开始
free(park);
return 1;
}