当前位置:文档之家› 停车场课程设计报告

停车场课程设计报告

typedef struct init_strack
{char a[10];//车牌号
char b[10];//停入时间
}ET;
顺序栈
根据问题要求,场内至多有一辆车进出,选用顺序栈进行模拟场内情况。
void init_stack(ET *s,int m,int *top)
{s=(ET *)malloc(sizeof(ET)*m);
2. 基本要求:
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。
设计目的即是用C语言模拟这一过程,并应用这学期所学的数据结构知识。了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的学习打好基础。
二.
要实现停车场管理,首先的确定模型,即现实生活中具体的事物以及事物之间的相互关系怎样用数据以及数据结构合理的模拟,并实现相应的功能。这里我选用定义一个结构体,其中包括车牌号和停入时间,代表了一辆车的必要信息。停车场因为车位是固定的,所以选用了栈来模拟。而停车场外的便道则用链队来表示,因为便道上的车有先来后到的顺序,所以用队列来模拟,因为队列中的汽车有可能放弃排队,因此用链队可以方便的删除队列的元素。
起 止 日 期
工 作 内 容
2010年12月25日~26日
2010年12月27日
2010年12月28日
2010年12月29日
2010年12月30日
2010年12月31日
熟悉任务,设计算法,编写源程序
上机调试
上机调试
上机调试
上机调试
考核验收
6.成绩考核办法
课程设计成绩的评定:根据设计的完成情况、程序的编制质量、独立设计能力以及答辩情况综合衡量,由答辩小组讨论决定。原则上按以下公式计算:
3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕
(1)分析问题,给出数学模型,设计相应的数据结构。
(2)算法设计
在已经选择好数据结构的前提下,为解决问题设计算法。
确定所需模块
对于稍复杂的程序设计,要充分利用模块化程序设计方法,自顶向下,逐步细化,在整体思路确定的情况下,考虑所需模块数,各模块完成功能以及模块之间的数据联系和调用关系。
2.课程设计题目及要求
题目:停车场管理
1.问题描述
设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。
有创新的同学根据具体情况适当加分。
教研室审查意见:
教研室主任签字:
年月日
院(系、部、中心)意见:
主管领导签字:
年月日
停车场管理
一.
设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列。若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门后,其它车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。
计费问题,出站时将出站时间和进站时间比较,即出站时间减去进站时间,按小时计费不足一小时但超过30分钟的按一小时记。有两个问题,一个是原先在队里,即便道上,后来才进了停车场的,计费时间按进场时间算,涉及到将出站时间赋给将要从队列里进场的车作为入场时间;还有就是一直在队列里等候,后因某种原因离开,即一直未能进场的情况,程序也得作出判断,不收取费用。
各子模块功能描述
给出主要模块的算法描述,用流程图或伪代码表示。
模块之间的调用关系
给出算法各模块之间的关系图示
(3)源程序单(草稿)
为了提高工作效率,充分利用上机调试程序的时间,要求学生在上机之前给出源程序清单。
(4)用测试数据去验证算法及程序的正确性
正序、逆序、随机数
(5)算法分析
经过上机调试,源程序运行正确,并且实现算法要求的功能,解决课程设计题目中给出的问题后,分析算法的时间复杂度和空间复杂度。
void filesave()保存数据至文件
该函数实现的功能即使对数据进行保存,分别见栈内元素,队列中元素逐行保存至文件。可以在关闭程序的情况下电脑中仍保留有数据,而且运行程序时自动读取至内存。这给系统运行带来了的方便。
5.void quit()退出
主函数的主体是一个无条件循环函数,调用此功能可从无限循环中退出,安全退出系统。而保存在文件中的数据不会删除。
定义车辆信息的结构体,车牌号和停入时间
typedef struct init_strack
{char a[10];//车牌号
char b[10];//停入时间
}ET;
定义链队结点
typedef struct linknode
{ET data;
struct linknode *next;
}node;
node *front=NULL,*rear=NULL; //定义全局变量
3、测试数据(示例)
设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。其中:‘A’表示到达(Arrival);‘D’表示(Departure);‘E’表示输入结束(End)。
三.
(1)功能设计
1.int showTable()显示模块
该模块的功能主要是将顺序栈中的元素信息以表格的形式显示在屏幕上,并将汽车是停在停车场,还是场外便道上做出判断,并非别对场内和场外车辆情况依次显示,包括必要的信息,如车牌号和停入时间以及在场内或场外的次序。第二,该模块还有实时统计,显示场内共有多少辆车,还能听几辆,门外便道上有多少辆车在等候都有显示。
(3)功能模块示意图
四.
C程序源代码如下,并有解释。
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
#include<conio.h>
#define N 5
#define PAY 2
成绩
南京工程学院
课程设计说明书(论文)
题目停车场管理
课 程 名 称软件技术基础课程设计
院(系、部、中心)电力工程学院
专业电气工程及其自动化(电网监控技术)
班 级
学 生 姓 名
学 号
设 计 地 点实践中心9-229
指 导 教 师
设计起止时间:2010年12月27日至2010年12月31日
南京工程学院
课程设计任务书
(6)提供的主程序可以象一个应用系统一样有主窗口,通过主菜单和分级菜单调用课程设计中要求完成的各个功能模块,调用后可以返回到主菜单,继续选择其他功能进行其他功能的选择。
(7)按照课程设计说明书的格式规范撰写课程设计说明书,其中正文包括:
①需求分析:对系统要实现的功能进行简明扼要的描述。
②概要设计:根据功能描述,建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能。
4.void driveout()驶出汽车
驶出汽车看似基本功能,其实包含了数据的查找、删除和费用计算,还有若是从场内离开,允许队列中队首元素压进栈,并将上车离开时间作为该车停入时间。
由于场内和场外采用了不同的数据结构,因此对栈和队列分别进行查找,并被别进行处理,栈内元素需要进行计费处理;若从队列中离开,只要显示离开操作成功即可,不需计算收费。另外从栈内离开,需判断队列内是否有元素,若有,将队列内元素出队,压入栈内。
③详细设计:详细说明各功能模块的实现过程,算法、技巧等。重点功能部分要加上清晰的程序注释。
④效果及存在问题:说明系统的运行效果(附上运行界面图片)、存在哪些不足以及预期的解决办法。
⑤心得体会:谈谈自己在课程设计过程中的心得体会。
(8)课程设计说明书用A4纸统一打印,装订按学校的统一要求完成。
(9)课程设计的程序以软盘形式上交,文件夹名称为学生姓名及学号的组合。上交成果中要有你的磁盘文件说明(见下图)。未经指导教师许可或无故不到者,缺勤率达50%的学生不能参加答辩。答辩时,设计者在5分钟内阐述自己的设计过程和最终结果,突出设计中遇到的主要问题和解决方法,然后回答教师提问。每位学生答辩总时间一般不超过15分钟。
ET s1[N],s2[N];
4.主要参考文献
[1]徐士良.计算机软件技术基础[M] .北京:清华大学出版社,2004.
[2]廖雷.C程序设计实践教程[M].北京: 高等教育出版社,2003.
[3]许卓群,张乃孝,杨冬青,唐世渭《数据结构》,高等教育出版社,1988年
相关主题