姓名:吴夕雨 日期:2018-9-13
今日学习任务:利用栈和队列来编写一个具有定时功能的停车场程序
今日任务完成情况:虽然其中遇到一些困难,有些不该出的错,但是最终都按要求完成了任务,今日代码达到440行左右。
今日出现的问题汇总:出现次数最多的是大括号不对应,还有一些字母大小写的问题,以及少数函数变量的问题。
今日的开发收获:这个程序我觉得是对之前学习的所有知识的一个汇总,可以说是一个总结和复习,用一个具有实际意义的项目来进行回顾并加以实践并且运行成功,也让我有种成就感。
自我评价:通过这几天对于编程的训练,让我对程序又多了新的理解,跟以前学习C语言时相比,知道了更多的知识和新的用法,尤其是通过今天的编译,相比起以前功能较少的小程序虽说复杂了很多但是能用新的知识解决。
程序部分:
#ifndef PARK_H
#define PARK_H
#include <time.h>
#include<string.h>
#define MAXSIZE 5
#define SUCCESS 1000
#define FAILURE 1001
#define FULL 1002
struct carinfo
{
char number[10];
time_t park_time;
struct carinfo * next;
};
typedef struct carinfo car;
struct stackinfo
{
car data[MAXSIZE];
int top;
};
typedef struct stackinfo stack;
struct queueinfo
{
car *front;
car *rear;
};
typedef struct queueinfo queue;
void welcome();
void menu();
void bye();
void Init(stack *s1,stack *s2,queue *q);
int Initstack(stack *s);
int InitQueue(queue *q);
int push(stack *s,char *id);
int EnterQueue(queue *q,char *id);
void EnterPark(stack *s,queue *q);
void ShowParkInfo(stack *s);
int EmptyQueue(queue *q);
void ShowWaitInfo(queue *q);
car pop(stack *s);
void LeavePark(stack *s1,stack *s2,queue *q);
int EmptyStack(stack *s);
char *DelQueue(queue *q);
#endif
main.c
#include<stdio.h>
int main()
{
int choice;
stack park_stack,leave_stack;
queue wait_queue;
welcome();
Init(&park_stack,&leave_stack,&wait_queue);
while(1)
{
menu();
scanf("%d",&choice);
switch(choice)
{
case 1:
EnterPark(&park_stack,&wait_queue);
break;
case 2:
LeavePark(&park_stack,&leave_stack,&wait_queue);
break;
case 3:
ShowParkInfo(&park_stack);
break;
case 4:
ShowWaitInfo(&wait_queue);
break;
case 5:
bye();
break;
default:
printf("shuruyouwu\n");
break;
}
}