数据结构停车场模拟管理程序的设计与实现.docx

上传人:b****1 文档编号:1070836 上传时间:2022-10-16 格式:DOCX 页数:10 大小:142.21KB
下载 相关 举报
数据结构停车场模拟管理程序的设计与实现.docx_第1页
第1页 / 共10页
数据结构停车场模拟管理程序的设计与实现.docx_第2页
第2页 / 共10页
数据结构停车场模拟管理程序的设计与实现.docx_第3页
第3页 / 共10页
数据结构停车场模拟管理程序的设计与实现.docx_第4页
第4页 / 共10页
数据结构停车场模拟管理程序的设计与实现.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数据结构停车场模拟管理程序的设计与实现.docx

《数据结构停车场模拟管理程序的设计与实现.docx》由会员分享,可在线阅读,更多相关《数据结构停车场模拟管理程序的设计与实现.docx(10页珍藏版)》请在冰豆网上搜索。

数据结构停车场模拟管理程序的设计与实现.docx

数据结构停车场模拟管理程序的设计与实现

停车场模拟管理程序的设计与实现

一、简介

设计停车场模拟管理程序,要求实现4个大的功能模块

1.程序功能介绍和操作提示

2.汽车进入停车位的管理模块

3.汽车离开停车位的管理模块

查看停车厂停车状态的的查询模块

二、数据结构的设计:

(1)停车场停放收费是按照时间来计算,首先要定义一个时间的结构体,并定义出一个最短时间。

typedefstructtime

{

inthour;

intmin;

}Time;

(2)为了便于区分每辆汽车并了解每辆车当前所处的位置,需要记录汽车的牌照号码,停放地址和到达时间。

typedefstructcar

{

intnum;

intposition;

Timet;

doublemoney;

}Car;

(3)创建栈来构建停车场。

typedefstruct

{

Carelem[N+1];

inttop;

}Stack;

(4)创建队列来构建便道,方便汽车出入。

typedefstructNode

{

Cardata;

structNode*next;

}QueueNode;

(5)当停车场的停车位上都已停满了汽车,又有新的汽车到来时要把它调度到便道上,便道上的车辆要按照进入便道的先后顺序顺次序放在便道上。

当有车从停车位上离开后,便道上的第一辆汽车就立即进入停车位上的某个车位。

typedefstruct

{

QueueNode*front;

QueueNode*rear;

}LinkQueue;

三、功能(函数)设计:

本程序从总体上分为四个功能模块,分别为:

(1)程序功能介绍,和操作提示模块

(2)汽车进入停车位的管理模块

(3)汽车离开停车位的管理模块

(4)查看停车场状态的查询模块

 

函数功能:

(1)进入停车位函数:

输入1后进入“进入停车场”函数,然后输入车牌号、到达时间。

然后程序自动提示停放位置,若车位已满,程序将提示“车库已满,请稍等!

”。

(2)进入离开停车场函数:

输入2后进入“离开停车场”函数,然后车牌号、离开时间。

若有此车牌号的车,程序自动显示要收取的费用,如果停车时间没超过最小时间,将提示“未使用车位,不收费”。

若没有此车牌号的车,程序将显示“没有这车”。

序将显示整个停车场情况,有车显示车的数据,无车显示“无车”。

四、界面设计:

(1)用“*”和“\n”(回车)来构出上下界。

(2)在界内显示出程序功能介绍,和操作提示,用1234的序号区分。

(3)用“\t”(空格)对齐。

 

五、程序设计:

(1)voidInitQueue函数:

便道初始化程序,使malloc返回的指针转化为指向QueueNode类型数据的指针。

(2)intEnterQueu函数:

给便道申请空间。

(3)voidInitStack函数:

确保堆栈为空。

(4)voidPush函数:

便道中的车入库。

(5)intIsEmpty函数:

判断车库是否为空。

(6)intIsFull函数:

判断车库是否为满。

(7)intGetTop函数:

车离开车库。

(8)intDeleteQueue函数:

将便道中的车放入车库。

(9)voidIn函数:

汽车进入停车位的管理模块。

(10)voidMoney函数:

计算停车花费。

(11)voidOut函数:

汽车离开停车位的管理模块。

(12)voidprint1函数:

查看停车场状态的查询模块。

(13)voidprint2函数:

查看通道状况。

(14)voidprint函数:

界面输出。

 

 

函数的调用关系图

 

 

主函数流程图

 

“到达函数”流程图

 

“离开函数”程序图

 

“显示函数”流程图

 

描述编写代码期间遇到的问题及其解决办法。

(1)Declarationmissing经常漏“;”号,和打出中文标点符号。

在编译后发现错误,一一改正。

(2)访问结构体时,拼错结构体中的定义。

(3)Callofnon-function调用未定义函数。

由于不正确的函数声明或函数名拼错造成的。

更改函数名正常。

(4)Compoundstatementmissing复合语句漏掉了大括号“}”。

补上后正常。

(5)还有各种小错误。

六、运行与测试:

1、测试的数据及其结果:

1)连续有7辆汽车到来,牌照号分别为001、002、003、004、005、006、007,前5辆车应该进入停车位1-5车位,第6、7辆车应停入便道的1、2位置上。

(2)上面

(1)中的情况发生后,让牌照003的汽车从停车场开走,应显示005、004的让路动作和006从便道到停车位的动作。

(3)随时检查停车位和便道的状态,不应该出现有空位而便道上还有车的情况。

(4)其它正常操作的一般情况。

2、运行与测试期间遇到的问题及其解决办法。

(1).问题1:

输入一样的牌照号,程序不提示错误。

解决:

增加个输出错误的程序。

(2).问题2:

车辆离开后,便道中的车不入车位。

解决:

队列的指针指向栈。

(3).问题3:

程序陷入死循环。

解决:

while

(1)的使用出错,更改位置。

……………………………………………

 

七、设计后的思考:

通过本次课程设计,谈谈对数据结构课程设计的体会。

初次进行数据结构课程设计,我深刻感受到了程序在实际生活中的应用,各种函数分工明确,在主函数的调用下,有条不紊的运行着,就像人在社会中,每个人的有自己的职业一样。

函数也是这样的。

不得不说,课程设计是一项工作量大,繁琐枯燥,并且要求思维要高度集中的事,在最初的时候,我也是特别厌倦,不想打代码,看见代码就烦,但是经过这一星期的程序设计在这次程序设计课中,我突然发现写程序还挺有意思的。

每当程序完美运行的时候,就感觉干成了一件大事,并且受益匪浅。

讲道理,其实上学期的C语言加上本学期的数据结构,我其实都算不上真正的懂,还是处于懵懂的状态,老师讲的知识点也是听的马马虎虎,对程序的理解也是只言片语。

但是经过这一星期的程序设计,我发现一个程序设计就是算法与数据结构的结合体,自己也开始对程序产生了前所未有的兴趣,其实想要在程序上有所突破,就是要多写代码,多多练习,在练习中才会发现自己的弱点和对知识点的不了解之处。

真正坐下来,用心去处理程序,就会发现其实这些字母、符号并不是死的,他们是有生命力的,一个程序设计就像造物主在创造生命,每一个函数就像一个器官,每一个字符就像一个细胞。

归根结底,还是一个练字,熟能生巧,我准备在接下来的暑假里,多做几次类似的程序设计,增强自己的能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1