数据结构停车场管理器设计.docx

上传人:b****5 文档编号:2869329 上传时间:2022-11-16 格式:DOCX 页数:14 大小:145.87KB
下载 相关 举报
数据结构停车场管理器设计.docx_第1页
第1页 / 共14页
数据结构停车场管理器设计.docx_第2页
第2页 / 共14页
数据结构停车场管理器设计.docx_第3页
第3页 / 共14页
数据结构停车场管理器设计.docx_第4页
第4页 / 共14页
数据结构停车场管理器设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数据结构停车场管理器设计.docx

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

数据结构停车场管理器设计.docx

数据结构停车场管理器设计

内蒙古科技大学课程设计任务书

课程名称

数据结构课程设计

设计题目

停车场管理器设计

指导教师

周李涌、康懿、兰孝文

时间

2009.6.15——2008.6.26

一、教学要求

1.掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能

3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力

4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风

二、设计资料及参数

每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。

停车场管理器设计

以结构体类型表示停车时间和车辆信息,在此基础上借助栈完成对车辆的入场和出场操作,借助队列完成辅助停车场便道,即存放等待入场车辆或辅助车场中的某辆车出场。

要求设计类(或类模板)来描述栈、队列、停车场及其操作,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:

v压栈、退栈

v入队列、出队列

v车辆到场(有车位即入场,否则入便道等待)、车辆出场(任意位置车辆均可出场)

v查询车辆信息、输出停车场(包括停车位和便道的车辆)

并设计主函数测试该类。

三、设计要求及成果

1.分析课程设计题目的要求

2.写出详细设计说明

3.编写程序代码,调试程序使其能正确运行

4.设计完成的软件要便于操作和使用

5.设计完成后提交课程设计报告

四、进度安排

资料查阅与讨论(1天)

系统分析(2天)

系统的开发与测试(5天)

编写课程设计说明书和验收(2天)

五、评分标准

1.根据平时上机考勤、表现和进度,教师将每天点名和检查

2.根据课程设计完成情况,必须有可运行的软件。

3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。

4.根据答辩的情况,应能够以清晰的思路和准确、简练的语言叙述自己的设计和回答教师的提问

六、建议参考资料

1.《数据结构(C语言版)》严蔚敏、吴伟民主编清华大学出版社2004.11

2.《数据结构课程设计案例精编(用C/C++描述)》,李建学等编著,清华大学出版社2007.2

3.《数据结构:

用面向对象方法与C++语言描述》,殷人昆主编, 清华大学出版社2007.6

摘要

仅仅认识到栈和队列是两种特殊的线性表是远远不够的,本次实习的目的在于使读者深入了解栈和队列的特征,以便在实际问题背景下灵活运用它们;同时还将巩固这两种结构的构造方法,接触较复杂问题的递归算法设计。

以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

每一组输入数据包括三个数据项:

汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:

若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。

栈以顺序结构实现,队列以链表实现。

设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。

汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。

试为停车场编制按上述要求进行管理的模拟程序。

一、功能描述

停车场管理系统主要有以下几个功能:

1、汽车进入车场

添加车辆信息:

车牌号、进车时间,如果停车场已满,则将车辆停入临时便道内。

2、汽车退出车场

根据退出车辆的车牌号,进行优先退出,再根据退出时间计算停车费用。

并将临时便道中的车辆停入停车场内。

3、退出系统

二、系统设计及实现

软件规格要求合理,基于C语言程序设计,在有限空间达到效果最优化。

3.1设计要求

用C语言实现“停车场管理系统”。

3.2系统功能

(1)系统启动后,出现用户界面,人机交互。

(2)根据提示输入选项

1、汽车进入车场

2、汽车退出车场

3、退出系统

(3)进入车场时录入车辆牌号、和入场时间,输出停靠的停车位置,当停车场车位满时则停靠在临时停车便道内。

(4)退出车场时录入车辆牌号、和出场时间,输出停车总时间,和所停的费用。

 

3.3系统性能:

(1)时间特性需求

在网络连接正常的情况下,查询响应时间为秒级。

(2)灵活性

当需求发生某些变化时,机票管理应用软件操作方式、数据结构、运行环境基本不会发生变化,变化只是将对应的数据文件内的记录改变,或改变过滤条件。

(3)可用性

软件应该尽可能的一目了然,使一般用户能够使用。

(4)安全性

本套职工信息系统所涉及的数据存放于文件中,在程序中应尽可能的使用调用存储过程的方法以免使某人反编译软件后或入侵到服务器后对数据的结构了如指掌,在程序中应该设置访问时的密码,以保证数据不容易被错改、破坏,而且要经常对数据文件进行备份操作,使得数据一旦受到破坏或是出错能够保证及时的恢复数据,将损失降低到最低。

(5)可维护性

(6)应用程序的维护

当用户使用本套职工信息系统软件时,遇到了软件本身的逻辑错误时,应当有软件的维护人员对软件进行修改。

(7)可转移、可转换性

VisualStudio及C编程语言的兼容性很高,在windows95/98.WindowsNT.windows2000.windowsXP等操作系统都可以直接运行。

输入项:

用户通过软件输入必要的信息,然后保存到数据文件,所输入的信息是经过需求分析限定的内容,同时也是数据文件中每个字段中存储的内容。

输出项:

本套职工信息系统软件会将所有需要浏览的数据显示在屏幕上,以便使用户能够浏览到数据文件中的数据或用户想要浏览范围中的数据

算法:

1)将用户输入的数据,按字段保存到数据文件中。

2)将数据文件中的数据,按字段提取到用户界面中。

3)必要的去除重复项的算法。

4)保持文件和输出数据的一致性。

注释设计:

尽可能的将软件中插入注释语句,使语句功能明了。

制作的时候应该制作两分,一份是标有注释语句的代码,用来给维护人员、测试人员和开发人员了解开发过程所用,另一份是不带有注释语句的代码,用来最后实际应用当中,这样可以充分的利用有限的时间,降低客户的计算机打开系统功能的时间,提高客户的使用速度。

限制条件:

限制必要的条件,以排除由于用户的误操作造成不必要的错误。

测试计划:

在软件编辑的工作进行当中,测试人员便要开始制定测试计划,其中要包括白盒和黑盒的具体测试项目,及其必要的测试数据和出错的信息。

每次测试的结果要写报告,并就发现和怀疑的问题与编辑人员联系。

测试的结果要让编辑人员明白。

通过文件存储方式将用户所录入的数据保存妥当,充分地描述了数据间的内在联系,便于数据修改、更新与扩充,同时保证了数据的独立性、可靠性、安全性与完整性,减少了数据冗余,提高了数据共享程度及数据管理效率。

3.4设计思路及框架

停车场的管理流程如下:

①当车辆要进入停车场时,检查停车场是否已满,如果未满则车辆进入停车场;如果停

车场已满,则车辆进入便道等候。

②当车辆要求出栈时,先让在它之后进入停车场的车辆退出停车场为它让路,再让该车

退出停车场,让路的所有车辆再按其原来进入停车场的次序进入停车场。

之后,再检查在便

道上是否有车等候,有车则让最先等待的那辆车进入停车场。

 

四、各功能模块

1、交互菜单

 

 

2、汽车进入停车场

1

 

3、汽车退出停车场

2

五、总结

实训期间,让我学到了很多东西,不仅使我在理论上对软件行业有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,对我来说受益非浅。

除此以外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。

第一次亲身感受到理论与实际的相结合,让我大开眼界。

也是对以前所学知识的一个初审吧!

这次实训对于我以后学习、找工作也真是受益菲浅,在这短短的几天中相信这些宝贵的经验会成为我今后成功的重要的基石。

作为一名大二的学生,经过两年的在校学习,对程序设计有了理性的认识和理解。

在校期间,一直忙于理论知识的学习,没有机会也没有相应的经验来参与项目的开发。

所以在实训之前,软件项目开发对我来说是比较抽象的,一个完整的项目要怎么来分工以及完成该项目所要的基本步骤也不明确。

而经过这次实训,让我明白一个完整项目的开发它所要经历的阶段包括:

规划和用例说明、项目结构、业务功能说明书、详细设计说明书、代码实现、测试、实训手册。

一个项目的开发所需要的财力、人力都是大量的,如果没有一个好的远景规划,对以后的开发进度会产生很大的影响,严重时导致在预定时间内不能完成该项目或者完成的项目跟原先计划所要实现的项目功能不符合。

一份好的项目结构、业务功能和详细设计说明书对一个项目的开发有明确的指引作用,它可以使开发人员对这个项目所要实现的功能在总体上有具体的认识,并能减少在开发过程中出现不必要的脱节。

代码的实现是一个项目开发成功与否的关键,可以说,前面所做的事情就是为代码的实现做铺垫。

这次实训也让我深刻了解到,不管在工作中还是在生活中要和老师,同学保持良好的关系是很重要的。

做事首先要学做人,要明白做人的道理,如何与人相处是现代社会的做人的一个最基本的问题。

对于自己这样一个即将步入社会的人来说,需要学习的东西很多,他们就是最好的老师,正所谓“三人行,必有我师”,我们可以向他们学习很多知识、道理。

在此,我应当感谢老师的指导与帮助以及学院提供此次千载难逢的实训机会。

 

六、附录

#include

#include

#include

#include

#definesize1//停车场位置数

//模拟停车场的堆栈的性质;

typedefstructzanlind{

intnumber;//汽车车号

floatar_time;//汽车到达时间

}zanInode;

typedefstruct{

zanInode*base;//停车场的堆栈底

zanInode*top;//停车场的堆栈顶

intstacksize_curren;

}stackhead;

//堆栈的基本操作;

voidinitstack(stackhead&L)//构造一个空栈L

{

L.base=(zanInode*)malloc(size*sizeof(zanlind));

if(!

L.base)exit(0);//存储分配失败

L.top=L.base;

L.stacksize_curren=0;

}

voidpush(stackhead&L,zanInodee)//插入元素e为新的栈顶元素

{

*L.top++=e;

L.stacksize_curren++;

}

voidpop(stackhead&L,zanInode&e)//若栈不为空,删除L的栈顶元素,用e返回其值

{

if(L.top==L.base)

{

printf("停车场为空!

!

");

return;

}

e=*--L.top;

L.stacksize_curren--;

}

//模拟便道

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

当前位置:首页 > 表格模板 > 合同协议

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

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