- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构项目课程报告停车场管理系统_毕业论文
数据结构项目课程报告
一、 问题描述及分析
题目要求:
设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门外,其他车辆再按原次序进入车场,每辆车停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。
分析:
由题目只有一个大门进出并且“先到后处理”可知,应使构造栈模拟停车场,进入离开停车场即入栈出栈的过程;而便道等候的汽车符合“先到先处理”原则 ,应构造线性队列模拟;构造存储结构,存放车辆信息,车牌号,到达离开时间;通过time.h头文件中的函数获取汽车到来以及离开时间,利用时间差计算价钱。
主要模块如下图:
二、 功能模块及数据结构描述
头文件、宏定义以及存储结构
结构体定义相关类型的链表空间有顺序栈的定义、链队、车辆信息结构体、时间计算结构体、车辆位置字符型结构体数组和循环单链表存储下一个地址空间。
#include stdio.h
#include stdlib.h
#include string.h
#include math.h
#include time.h
#define OK 1
#define ERROR 0
typedef struct time1
{
char times[100];
long time2;
}time1;
typedef struct node
{
char num[10];
time1 reach;
time1 leave;
}Car;
typedef struct Stack
{
Car *stack[100];
int top;
}SqStack;
typedef struct car
{
Car *data;
struct car *next;
}QNode;
typedef struct Node
{
QNode *front;
QNode *rear;
}LinkQueue;
主函数
void main()
{
SqStack In, Out;
LinkQueue Wait;
int ch;
int MAX;
float price;
printf(请输入停车场的容量:);
scanf(%d, MAX);
printf(请输入停车场的收费标准(元 / 小时) :);
scanf(%f, price);
InitStack(In, MAX);
InitStack(Out, MAX);
InitQueue(Wait);
while (1)
{
system(color 0A);
printf( == == == = 欢迎使用停车场管理系统 == == == == == == == == == == \n);
printf(输入的停车场容量为%d位,费用为%2.1f元 / 小时, 请按任意键进入系统, MAX, price);
getchar();
system(CLS);
printf( == == == = 欢迎使用停车场管理系统 == == == == == == == == == \n);
printf(您输入的停车场容量为%d位,费用为%2.1f元 / 小时。\n, MAX, price);
printf(\n == == == == == == == == == == == == = \n);
printf((1)车辆到达\n(2)车辆离开\n(3)停车场信息\n(4)退出系统\n请选择\n);
printf(\n == == == == == == == == == == == == == = \n);
while (1)
{
printf(请输入操作的序号);
scanf(%d, ch);
switch (ch)
{
case 1:
arrive(In, Wait, MAX, price);
break;
case 2:
leave(In, Out, Wait, MAX, price);
break;
case 3:
info(In, Wait);
break;
case 4:
{
system(CLS);
printf(\n == == ==
文档评论(0)