c语言课程设计 停车场管理

上传人:suns****4568 文档编号:78872792 上传时间:2019-02-15 格式:PDF 页数:14 大小:350.87KB
返回 下载 相关 举报
c语言课程设计  停车场管理_第1页
第1页 / 共14页
c语言课程设计  停车场管理_第2页
第2页 / 共14页
c语言课程设计  停车场管理_第3页
第3页 / 共14页
c语言课程设计  停车场管理_第4页
第4页 / 共14页
c语言课程设计  停车场管理_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《c语言课程设计 停车场管理》由会员分享,可在线阅读,更多相关《c语言课程设计 停车场管理(14页珍藏版)》请在金锄头文库上搜索。

1、1 C 语言课程设计报告 C C ProgramProgram LanguageLanguage 设计题目:_停车场管理_ 指导教师: _ 班级: _ 学号: _ 设 计 者: _ 成绩: _ 设计时间: 2011 年06 月 23 日 2 目录目录 第一章 设计目的与要求.3 1.1 设计目的3 1.2 题目要求3 第二章 课程设计的相关内容 .3 2.1 程序设计的原理.3 2.2 功能模块分解(框图).4 第三章 系统运行结果及运行截图5 3.1 设计测试说明.5 3.1.1 初始进入状态.5 3.1.2 当车辆到达时6 3.1.3 车辆离开时及停放所需的费用:.6 3.1.4 车场已满

2、时.6 3.1.5 列出车场信息6 3.2 我完成的部分.6 3.2.1 我完成部分的程序.6 3.2.2 我完成的程序的说明8 3.3 源程序8 第四章 课程设计体会13 参考文献.13 3 第一章第一章 设计目的与要求设计目的与要求 1.11.1 设计目的:设计目的:: 通过 C 语言课程设计, 学会利用结构体,指针,数组,变量等元素实现文件的读写,既能往 文件中存放信息,又能将信息从文件中读取出来。从中训练自己动手操作能力,使我们了解 高级程序设计语言的结构, 掌握基本的程序设计过程和技巧, 掌握基本的分析问题和利用计 算机求解问题的能力, 具备初步的高级语言程序设计能力。 为后续各门计

3、算机课程的学习和 毕业设计打下坚实基础。 1.21.2 题目要求:题目要求: 用于利用计算机实现停车场的管理,包括车位调度,停车记费。车位记录,收费管理与 计算。 主要功能:车位调度;停车时间与费用的计算;车位记录。 第二章第二章 课程设计的相关内容课程设计的相关内容 2.12.1 程序设计原理:程序设计原理: 设计一个停车场用长度为 N 的堆栈来模拟。由于停车场内如有某辆车要开走 ,在它之 后进来的车都必须先退出为它让道,待其开出停车场后,这些车再依原来的顺序进入。 程序输出每辆车到达后的停车位置, 以及某辆车离开停车场时应交纳的费用和它在停车 场内停留的时间。 以栈模拟停车场, 以队列模拟

4、车场外的便道, 按照从终端读入的输入数据序列进行模拟 管理。栈以顺序结构实现,队列以链表实现。程序中分别采用了“栈”和“队列”作为其存 储结构。 “栈”的定义可知,每一次入栈的元素都在原栈顶元素之上成为新的元素,每一次出栈 的元素总是当前栈顶元素使次栈元素成为新的栈顶元素, 即最后进栈者先出栈。 程序中采用 的结构是: typedef struct NODE CarNode *stackMAX+1; int top; SeqStackCar; /*模拟车库*/ “队列” 是限定所有插入操作只能在表的一端进行, 而所有的删除操作都只能在表的另 一端进行。插入端叫队尾,删除端叫对头。按先进先出规则

5、进行。程序中采用的结构是: typedef struct Node QueueNode *head; QueueNode *rear; LinkQueueCar; /*模拟通道*/ 由于停车场是一个狭窄通道, 而且只有一个大门可供汽车进出, 问题要求汽车停车场内 按车辆到达时间的先后顺序, 依次由北向南排列。 由此很容易联想到数据结构中的堆栈模型, 因此可首先设计一个堆栈,以堆栈来模拟停车场,又每个汽车的车牌号都不一样,这样一来 可以根据车牌号准确找到汽车位置, 所以堆栈里的数据元素我设计成汽车的车牌号。 当停车 场内某辆车要离开时, 在他之后进入的车辆必须先退出车场为它让路, 待该辆车开出大

6、门外, 其他车辆再按原次序进入停车场。 这是个一退一进的过程, 而且让道的汽车必须保持原有的 先后顺序,因此可再设计一个堆栈,以之来暂时存放为出站汽车暂时让道的汽车车牌号。当 停车场满后,继续进来的汽车需要停放在停车场旁边的便道上等候,若停车场有汽车开走, 则按排队的先后顺序依次进站, 最先进入便道的汽车将会最先进入停车场, 这完全是一个先 4 进先出模型, 因此可设计一个队列来模拟便道, 队列中的数据元素仍然设计成汽车的车牌号。 另外,停车场根据汽车在停车场内停放的总时长来收费的,在便道上的时间不计费,因此必 须记录车辆进入停车场时的时间, 车辆离开停车场时的时间不需要记录, 当从终端输入时

7、可 直接使用。由于时间不象汽车一样需要让道,我们设计了一个顺序表来存放时间。又用顺序 表用派生法设计了一个堆栈,恰好满足上面模拟停车场的需要。 2.22.2 功能模块分解(框图)功能模块分解(框图) 车辆到达 以堆栈来模拟停车场和以堆栈里的数据元 素我设计成汽车的车牌号 初始化车站, 初始化让 路的临时栈, 初始化通 道 车场未满,车进车场 车场已满,车进便道 判断车场是 否已满 输入车子到达时间,车牌 号 未满 输入离开车辆的离开时间,进 行停车费用的计算 不做任何计算 判断车场内是 否有车 有 无 车进入车场 此车后面的车辆退出并进入 临时栈 5 第三章第三章 系统运行结果及运行截图系统运

8、行结果及运行截图 3.13.1 设计测试说明:设计测试说明: 本程序相对来说比较容易看明白,其中涉及到的输入,输出显示明白,便于实际操 作。通过调试,运行,基本上达到了要求,但还存在一些缺点。如:界面不够新颖突出, 有点单调等。 3.1.1 初始进入状态(用户界面) : 3.1.2 当车辆到达时: 车子离开 6 3.1.3 车辆离开时及停放所需的费用: 3.1.4 车场已满时: 3.1.5 列出车场信息: 3.2 我完成的部分:我完成的部分: 3.2.13.2.1 程序程序 void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar

9、 *W) /*车辆离开*/ int i, room; 7 CarNode *p,*t; QueueNode *q; /*判断车场内是否有车*/ if(Enter=top0) /*有车*/ while(1) /*输入车辆离开的信息*/ printf(“n 请输入车在车场的位置/1-%d/:“,Enter=top); scanf(“%d“, if(room=1 Temp=stackTemp=top=Enter=stackEnter=top; Enter=stackEnter=top=NULL; Enter=top-; p=Enter=stackEnter=top; Enter=stackEnter

10、=top=NULL; Enter=top-; while(Temp=top=1) Enter=top+; Enter=stackEnter=top=Temp=stackTemp=top; Temp=stackTemp=top=NULL; Temp=top-; PRINT(p,room); /*判断通道上是否有车及车站是否已满*/ if(W=head!=W=rear) int min; Time; /*时间结点*/ typedef struct node char num10; Time reach; Time leave; CarNode;/*车辆信息结点*/ typedef struct N

11、ODE CarNode *stackMAX+1; int top; SeqStackCar; typedef struct car CarNode *data; struct car *next; QueueNode; typedef struct Node 9 QueueNode *head; QueueNode *rear; LinkQueueCar; /*模拟通道*/ void InitStack(SeqStackCar *); /*初始化栈*/ int InitQueue(LinkQueueCar *);/*初始化便道*/ intArrival(SeqStackCar *,LinkQu

12、eueCar *); /*车辆到达*/ void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); /*车辆离开*/ void List(SeqStackCar,LinkQueueCar); /*显示存车信息*/ void main() SeqStackCar Enter,Temp; LinkQueueCar Wait; int ch; InitStack( /*初始化车站*/ InitStack( /*初始化让路的临时栈*/ InitQueue( /*初始化通道*/ printf(“欢迎光临“); printf(“n“); while(1)

13、 printf(“n1.车辆到达“); printf(“ 2.车辆离开“); printf(“ 3.列表显示 “); printf(“ 4.退出系统“); while(1) scanf(“%d“, if(ch=1 scanf(“%d“, if(room=1 Temp=stackTemp=top=Enter=stackEnter=top; Enter=stackEnter=top=NULL; Enter=top-; p=Enter=stackEnter=top; Enter=stackEnter=top=NULL; Enter=top-; while(Temp=top=1) Enter=top+

14、; Enter=stackEnter=top=Temp=stackTemp=top; 12 Temp=stackTemp=top=NULL; Temp=top-; PRINT(p,room); /*判断通道上是否有车及车站是否已满*/ if(W=head!=W=rear) printf(“n 位置 到达时间 车牌号n“); for(i=1;i=1|tag=3) break; else printf(“n 请选择 1|2|3:“); switch(tag) case 1:List1(break;/*列表显示车场信息*/ case 2:List2(break; /*列表显示便到信息*/ case 3:flag=0;break; default: break; 第四章第四章 课程设计体会课程设计体会 此次课程设计很锻炼人,因为这是从课本知识到实际操作、从理论到应用的一个过渡, 很多知识都还不懂(比如说堆栈) ,我们就查阅了很多的资料,图书馆,网络,咨询老师等 等。还检验了我的实践能力,感觉自己还有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号