- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构停车场模拟管理程序的设计与实现
停车场模拟管理程序的设计与实现
简介
设计停车场模拟管理程序,要求实现4个大的功能模块
程序功能介绍和操作提示
汽车进入停车位的管理模块
汽车离开停车位的管理模块
查看停车厂停车状态的的查询模块
数据结构的设计:
停车场停放收费是按照时间来计算,首先要定义一个时间的结构体,并定义出一个最短时间。
typedef struct time
{
int hour;
int min;
}Time;
为了便于区分每辆汽车并了解每辆车当前所处的位置,需要记录汽车的牌照号码,停放地址和到达时间。
typedef struct car
{
int num;
int position;
Time t;
double money;
}Car;
创建栈来构建停车场。
typedef struct
{
Car elem[N+1];
int top;
}Stack;
创建队列来构建便道,方便汽车出入。
typedef struct Node
{
Car data;
struct Node *next;
}QueueNode;
当停车场的停车位上都已停满了汽车,又有新的汽车到来时要把它调度到便道上,便道上的车辆要按照进入便道的先后顺序顺次序放在便道上。当有车从停车位上离开后,便道上的第一辆汽车就立即进入停车位上的某个车位。
typedef struct
{
QueueNode *front;
QueueNode *rear;
}LinkQueue;
三、功能(函数)设计:
本程序从总体上分为四个功能模块,分别为:
(1)程序功能介绍,和操作提示模块
(2)汽车进入停车位的管理模块
(3)汽车离开停车位的管理模块
(4)查看停车场状态的查询模块
函数功能:
进入停车位函数:输入1后进入“进入停车场”函数,然后输入车牌号、到达时间。然后程序自动提示停放位置,若车位已满,程序将提示“车库已满,请稍等!”。
进入离开停车场函数:输入2后进入“离开停车场”函数,然后车牌号、离开时间。若有此车牌号的车,程序自动显示要收取的费用,如果停车时间没超过最小时间,将提示“未使用车位,不收费”。
若没有此车牌号的车,程序将显示“没有这车”。
序将显示整个停车场情况,有车显示车的数据,无车显示“无车”。
四、界面设计:
(1)用“*”和“\n”(回车)来构出上下界。
(2)在界内显示出程序功能介绍,和操作提示,用1234的序号区分。
(3)用“\t”(空格)对齐。
五、程序设计:
(1)void InitQueue 函数:便道初始化程序,使malloc返回的指针转化为指向QueueNode类型数据的指针。
(2)int EnterQueu函数:给便道申请空间。
(3)void InitStack函数:确保堆栈为空。
(4)void Push函数:便道中的车入库。
(5)int IsEmpty函数:判断车库是否为空。
(6)int IsFull函数:判断车库是否为满。
(7)int GetTop函数:车离开车库。
(8)int DeleteQueue函数:将便道中的车放入车库。
(9)void In函数:汽车进入停车位的管理模块 。
(10)void Money函数:计算停车花费。
(11)void Out函数:汽车离开停车位的管理模块。
(12)void print1函数:查看停车场状态的查询模块。
(13)void print2函数:查看通道状况。
(14)void print函数:界面输出。
函数的调用关系图
主函数流程图
“到达函数”流程图
“离开函数”程序图
“显示函数”流程图
描述编写代码期间遇到的问题及其解决办法。
Declaration missing 经常漏“;”号,和打出中文标点符号。在编译后发现错误,一一改正。
访问结构体时,拼错结构体中的定义。
Call of non-function 调用未定义函数。由于不正确的函数声明或函数名拼错造成的。更改函数名正常。
Compound statement missing复合语句漏掉了大括号“}”。补上后正常。
还有各种小错误。
六、运行与测试:
1、测试的数据及其结果:
1)连续有7辆汽车到来,牌照号分别为001、002、003、004、005、006、007,前5辆车应该进入停车位1-5车位,第6、7辆车应停入便道的1、2位置上。
(2)上面(1)中的
文档评论(0)