📄 paking_main.c
字号:
#include<stdio.h>
#include<stdlib.h>
#define N 10
#define price 1
typedef struct paking_car{
int number[N];
int time[N];
int top;
}paking_car;//栈的建立和传递的语法我有点不清楚~
typedef struct waiting_car{
int number;
struct waiting_car *next;
}waiting_car,*waiting_carPtr;
void choice(void){
}
int P_full(paking_car a){
if(a.top <= ( N - 1 ) )
return 1;
else
return 0;
}
int P_empty(paking_car a){
}
int W_empty(waiting_carPtr *a){
if(a == NULL)
return 1;
else
return 0;
}
void P_push(paking_car *a){
int number,time;
printf("请输入进入停车场的车辆车牌号和到达时间:\n");
scanf("%d%d",&number,&time);
a->top++;
a->number[ a->top ] = number;
a->time[ a->top ] = time;
}
void W_push(waiting_carPtr a){
waiting_carPtr node = (waiting_carPtr) malloc (sizeof (waiting_car));
int number;
printf("停车场已满,请输入进入候车场的车辆车牌号:\n");
scanf("%d",&number);
node->number = number;
node->next = a;
a = node;
}
void car_push(paking_car *a,waiting_carPtr b){
waiting_carPtr cur = b;
waiting_carPtr pre;
int time;
while(cur != NULL){
pre = cur;
cur = cur->next;
}
printf("请输入车辆进入停车场的时间:\n");
scanf("%d",&time);
a->top++;
a->number[ a->top ] = cur->number;
a->time[ a->top ] = time;
free( cur );
pre->next = NULL;
}
void P_print(paking_car * a){
}
void W_print(waiting_carPtr *a){
}
int number_check(paking_car * a,int *b){
int number;
int i;
printf("请输入要离开停车场的车辆的车牌号:\n");
scanf("%d",&number);
*b = number;
for(i = 0;i <= a->top;i++)
if(a->number[ i ] == number)
return 1;
else
return 0;
}
void leave(paking_car * a,paking_car * b,int c){
int i,time;
int flag = 0;
for(i = 0;i <= a->top && flag == 0;i++){
if(a->number[ i ] == c)
flag = 1;
}
for(;a->top > i;a->top--){
b->top++;
b->number[ b->top ] = a->number[ a->top ];
b->time[ b->top ] = a->time[ a->top ];
}
printf("请输入车子离开的时间:\n");
scanf("%d",&time);
printf("要离开的车辆车牌号为:%d\n",a->number[ a->top ] );
printf("车子停留的费用为:%d\n",time - a->time[ a->top ] );
printf("车子需要交纳的费用为:%d\n",( time - a->time[ a->top ] ) * price);
for(;b->top >= 0;b->top--){
a->number[ a->top ] = b->number[ a->top ];
a->time[ a->top ] = b->time[ b->top ];
a->top++;
}
}
int main()
{
paking_car a,b;
waiting_carPtr head = NULL;
char flag;
int x;
a.top = -1;
b.top = -1;
choice();
scanf("%c",&flag);
while(flag != 'E'){
if(flag == 'A'){
if(P_full(a) != 0)
P_push(&a);
else
W_push(head);
}
P_print(&a);
w_print(*head);
}
if(flag == 'D'){
if(number_check(&a,&x)){
leave(&a,&b,x);
if(!W_empty(head)){
car_push(&a,head);
}
}
else
printf("输入错误,请重新输入\n");
choice();
scanf("%d",&flag);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -