学习日志4
姓名:沈菲 日期:2018.9.13
今日学习任务:
完成用c语言栈和队列的知识编写出停车场的程序。
今日任务完成情况:
在计算机内创建一个停车场的文件夹,再此文件夹中分别创建main.c,queue.c,park.c,park.h,stack.c五个文档,分别在这几个文档中编写程序。
上课按照老师的要求完成停车场的程序编写以及成功完成了编译与调试,编写500行代码。
1、 车辆出栈
2、 出去的进来
3、 等候队列进来
包括停车栈、让路栈、等候栈
今日开发中出现的问题汇总:
有些常用函数没有熟悉。
今日开发收获:
打代码速度有所提升,所犯的错误也变少了,对之前的知识点有了更深的印象先在计算机内创建一个停车场的文件夹,再此文件夹中分别创建main.c,queue.c,park.c,park.h,stack.c五个文档,分别在这几个文档中编写程序。
今日未解决问题:对停车战程序还不是很明白。
自我评价:
了解了基础项目编写的方法,便于以后编写程序。
main.c
include
include”queue.h”
int main()
{
int ret,i;
Q queue;
ret= InitQueue(&queue);
if (SUCCESS ==ret)
{
printf(“Init Success!\n”);
}
else
{
printf(“Init Failure!\n”);
}
for (i = 0; i<10;i++)
{
ret = EnterQueue(&queue,i +1);
if(ret ==FAILURE)
{
printf(“Enter Failure!\n”);
}
else
{
printf(“Enter %d Success!\n”,i +1);
}
}
for(i = 0; i< 5 ;i++)
{
ret = DelQueue(&queue);
if (ret == FAILURE)
{
printf(“Delete Failure!\n”);
}
else
{
printf(“Delete %d Success!\n”,ret);
}
}
ret = LengthQueue(queue);
printf(“Length is %d \n”,ret);
ret =ClearQueue(&queue);
if(ret==SUCCESS)
{
printf(“Clear Success!\n”);
}
else
{
printf(“Clear Failure!\n”);
}
ret = DestroyQueue(&queue);
if(ret==SUCCESS)
{
printf(“Destroy Success!\n”);
}
else
{
printf(“Destroy Failure!\n”);
}
return 0;
}
queue.h
#include "queue.h"
#include <stdlib.h>
int InitQueue(Q *q)
{
if(NULL ==q)//
{
return FAILURE;
}
q->data = (int *)malloc(sizeof(int) * MAXSIZE);
if(NULL ==q->data)
{
return FAILURE;
}
q->rear = q->front = 0;
return SUCCESS;
}
int EnterQueue(Q *q, int e)
{
if(NULL == q)
{
return FAILURE;
}
if((q->rear +1)% MAXSIZE ==q->front)
{
return FAILURE;
}
q->data[q->rear] = e;
q->rear =(q->rear +1)% MAXSIZE;
return SUCCESS;
}
int DelQueue(Q *q)
{
if(NULL == q)
{
return FAILURE;
}
if(q->rear ==q->front)
{
return FAILURE;
}
int e= q->data[q->front];
q->front =(q->front +1) % MAXSIZE;
return e;
}
int LengthQueue(Q q)
{
return (q.rear - q.front + MAXSIZE )% MAXSIZE;
}
int ClearQueue(Q *q)
{
if(NULL == q)
{
return FAILURE;
}
q->rear = q->front;
return SUCCESS;
}
int DestroyQueue(Q *q)
{
if(NULL == q)
{
return FAILURE;
}
free(q->data);
q->data= NULL;
return SUCCESS;
}
queue.h
ifndef QUEUE_H
define QUEUE_H
define MAXSIZE 10
define SUCCESS 1000
define FAILURE 1001
struct queue
{
int *data;//鎸囧悜瀵瑰ご鐨勫瓨鍌ㄧ┖闂? int front;//瀵瑰ご鎸囬拡
int rear;//闃熷熬鎸囬拡
};
typedef struct queue Q;
int InitQueue(Q *q);
int EnterQueue(Q *q, int e);
int DelQueue(Q *q);
int LengthQueue(Q q);
int ClearQueue(Q *q);
int DestroyQueue(Q *q);
endif
“`