课程设计报告 停车场.docx
- 文档编号:8695837
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:119.94KB
课程设计报告 停车场.docx
《课程设计报告 停车场.docx》由会员分享,可在线阅读,更多相关《课程设计报告 停车场.docx(15页珍藏版)》请在冰豆网上搜索。
课程设计报告停车场
淮阴工学院
数据结构课程设计报告
选题名称:
停车场管理
(1)
系(院):
计算机工程系
专业:
计算机科学与技术
班级:
网络1071
姓名:
陈绍平学号:
1071304104
指导教师:
张亚红张勇军
学年学期:
2008~2009学年第2学期
2009年6月20日
设计任务书
课题
名称
停车场管理
(1)
设计
目的
本课程设计的目的是通过实践使学生经历一个数据结构系统开发的全过程并受到一次综合的训练,以便全面地理解、掌握和综合运用所学的知识去分析和解决实际问题。
实验
环境
1、Windows2000以上操作系统
2、VisualC++6.0
任务
要求
任务
完成《停车场管理》的分析设计并选用适当的开发工具完成系统的开发
要求
1、完成需求分析
2、进行数据结构的概要设计
3、进行数据结构的详细设计
4、进行应用程序设计
5、编程实现
6、调试分析
工作进度计划
序号
起止日期
工作内容
1
2009.6.8-20096.9
需求分析
2
20096.9-2009.6.10
概要设计
3
2009.6.10-2009.6.11
详细设计与实现
4
2009.6.11-2009.6.11
调试与操作说明
5
2009.6.11-2009.6.12
课程设计报告撰写
指导教师:
2009年6月10日
摘要
随着私家车的愈来愈多,在各个公共场所的各式各样的停车场也应运而生,在这样的情况下,停车场的管理就显得尤为重要。
本文介绍运用数据结构中所学的链表、栈等知识,在VisualC++6.0环境下开发一个行之有效的停车场管理系统,要求实现的功能的有:
车辆到达是的信息登记,车辆离开时的信息记录及停车费用的计算和停车场及便道的车辆信息的显示等功能。
关键词:
数据结构;停车场管理;栈;链表;
1.需求分析1
1.1课程设计的目的1
1.2基本要求1
1.3课程设计的任务1
1.4软件运行和开发工具1
1.5课程设计的思想1
2.概要设计1
2.1程序整体描述1
2.2结构描述1
2.3栈描述3
2.4函数描述3
2.5数据结构与算法描述3
2.5功能模块4
3.详细设计和实现4
3.1车辆到达登记4
3.2车辆离开记录5
3.3车辆信息显示8
4.调试及操作说明9
总结12
致谢13
参考文献14
1.需求分析
1.1课程设计的目的
运用数据结构编写一个C++程序,实现对停车场的管理。
主要包括:
车辆到达是的信息登记,车辆离开时的信息记录及停车费用的计算和停车场及便道的车辆信息的显示等功能。
1.2基本要求
设计好算法,使该系统能实现对停车场有效的进行管理。
1.3课程设计的任务
该系统主要实现以下几个功能:
a)车辆到达信息登记:
包括车牌号,到达时间,在停车场停放的位置等;
b)车辆离开记录:
包括离开时间,停车费用等;
c)信息显示:
显示停车场内和便到内的汽车到达时机急位置等基本信息;
1.4软件运行和开发工具
1.Windows2000以上操作系统
2.VisualC++6.0开发环境
1.5课程设计的思想
该程序应用栈来完成的汽车进停车场和出停车场就是一个数据进栈和出栈的过程。
如果停车场(栈)满了,就将车辆放在便到(临时的栈)里;在车辆离开时计算出使用费用,并将便到第一辆车停到该车位置。
2.概要设计
2.1程序整体描述
程序用了一个类,五个结构,两个栈(其中一个为临时栈),除主函数外用了八个函数;
2.2结构描述
结构:
Time-建立时间结点
CarNode-建立车辆信息结点
SeqStackCar-模拟车站
QueueNode
LinkQueueCar-模拟便道
typedefstructtime
{
inthour;
intmin;
}Time;
typedefstructnode
{
charnum[10];
Timereach;
Timeleave;
}CarNode;
typedefstructNODE
{
CarNode*stack[MAX+1];
inttop;
}SeqStackCar;
typedefstructcar
{
CarNode*data;
structcar*next;
}QueueNode;
typedefstructNode
{
QueueNode*head;
QueueNode*rear;
}LinkQueueCar;
2.3栈描述
(1)、在SeqStackCar中定义创建一个栈
CarNode*stack[MAX+1];
inttop;
(2)、SeqStackCarEnter,Temp
InitStack(&Temp)
在车辆离开时,应用temp临时把将要离开的车辆后续车辆压入,等车辆离开后压回原栈stack
voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W)
2.4函数描述
函数:
(1)、intArrival(SeqStackCar*Enter,LinkQueueCar*W)
(2)、intInitQueue(LinkQueueCar*Q)
(3)、voidInitStack(SeqStackCar*s)
(4)、voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W)
(5)、voidList(SeqStackCarS,LinkQueueCarW)
(6)、voidList1(SeqStackCar*S)
(7)、voidList2(LinkQueueCar*W)
(8)、voidPRINT(CarNode*p,introom)
2.5数据结构与算法描述
(1)、在SeqStackCar中定义创建一个栈
CarNode*stack[MAX+1];
inttop;
(2)、SeqStackCarEnter,Temp
InitStack(&Temp)
在车辆离开时,应用temp临时把将要离开的车辆后续车辆压入,等车辆离开后压回原栈stack
voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W)
2.5功能模块
图2.1功能模块
3.详细设计和实现
按照功能模块的描述主要实现三个功能
3.1车辆到达登记
intArrival(SeqStackCar*Enter,LinkQueueCar*W)
{
CarNode*p;
QueueNode*t;
p=(CarNode*)malloc(sizeof(CarNode));
flushall();
printf("\n请输入车牌号(例:
豫B1234):
");
gets(p->num);
if(Enter->top { Enter->top++; printf("\n车辆在车场第%d位置.",Enter->top); printf("\n车辆到达时间: "); scanf("%d: %d",&(p->reach.hour),&(p->reach.min)); Enter->stack[Enter->top]=p; return (1); } else { printf("\n该车须在便道等待! 有车位时进入车场"); t=(QueueNode*)malloc(sizeof(QueueNode)); t->data=p; t->next=NULL; W->rear->next=t; W->rear=t; return (1); } } 进停车场时候必须先判断停车场是不是满了,如果满了车就必须在便道里等候,等有空车位是才能进去。 图3.1进停车场流程 3.2车辆离开记录 voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W) { introom; CarNode*p,*t; QueueNode*q; if(Enter->top>0) { while (1) { printf("\n请输入车在车场的位置/1--%d/: ",Enter->top); scanf("%d",&room); if(room>=1&&room<=Enter->top)break; } while(Enter->top>room) { Temp->top++; Temp->stack[Temp->top]=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; } p=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; while(Temp->top>=1) { Enter->top++; Enter->stack[Enter->top]=Temp->stack[Temp->top]; Temp->stack[Temp->top]=NULL; Temp->top--; } PRINT(p,room); if((W->head! =W->rear)&&Enter->top { q=W->head->next; t=q->data; Enter->top++; printf("\n便道的%s号车进入车场第%d位置.",t->num,Enter->top); printf("\n请输入%s号车进入车场的时间: "); scanf("%d: %d",&(t->reach.hour),&(t->reach.min)); W->head->next=q->next; if(q==W->rear)W->rear=W->head; Enter->stack[Enter->top]=t; free(q); } elseprintf("\n便道里没有车.\n"); } elseprintf("\n车场里没有车."); } 离开的时候先判断停车场里有没有车。 有车: 输入离开的车的车位号,计算使用费用,同时释放该车位。 在判读便道里有没有车,有的话就将便道里的第一辆车停到该车位。 图3.2车辆离开流程 3.3车辆信息显示 voidList1(SeqStackCar*S) { inti; if(S->top>0) { printf("\n车场: "); printf("\n位置到达时间车牌号\n"); for(i=1;i<=S->top;i++) { printf("%d",i); printf("%d: %d",S->stack[i]->reach.hour,S->stack[i]->reach.min); puts(S->stack[i]->num); } } elseprintf("\n车场里没有车"); } voidList2(LinkQueueCar*W) { QueueNode*p; p=W->head->next; if(W->head! =W->rear) { printf("\n等待车辆的号码为: "); while(p! =NULL) { puts(p->data->num); p=p->next; } } elseprintf("\n便道里没有车."); } 由于车辆可能在停车场或便道两个地方,所以,车辆信息的现实也有两个函数用来分别显示停车场和便道的车辆在停车场的基本信息 4.调试及操作说明 执行程序后进入主菜单: 图4.1主菜单 选择“1”进入进停车场登记 图4.2车辆达到登记 选择“3”进入车辆显示,在选择“1”显示停车场车辆信息 图4.3车辆信息显示 选择“2”进入车辆离开管理 图4.4车辆离开 总结 本次课程设计我学会了很多知识,不仅在对数据结构这门课上有了一定的知识上的了解与认识,同时,也是巩固了C++的知识。 我所选择的课程设计是停车场的设计,这个课题在实用性与开放性上上有很多的扩张与发展空间。 在课程设计的时候,我遇到了很多的问题,在代码运行的时候问题则是更为集中,这体现出我在这门课上的学习过程中存在着许多的不足。 虽然,在过程中得到了老师与同学的帮助后,程序是完成了,但是许多的主要问题都是依靠老师与同学才得以完成,自己完成的很少。 希望自己能在这反面有所突破与改观。 本次课程设计的总体收获了解栈的应用,使我有效地、深刻地理解课程内容,体会理论、方法和设计原则;培养了我分析实际应用系统和设计设计实际应用系统的能力,提高了进行实际系统的设计的能力。 课程设计题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。 经过这么多天的努力发现,做课程设计不仅修补了以前学习的漏洞,也知道了一个道理: 做事一定要有耐心和信心。 课程设计不仅培养人们的自学能力,而且能让自己的思维灵活。 同时我也学到了人生哲理,就是在困难面前不要低头,要勇敢面对,始终坚信阳光总在风雨后,彩虹一定会出现的。 课程设计就要结束了,收获相当多,不得不说这是最后的胜利,我们也有一次品尝到了胜利的滋味,那时非常甜蜜的。 相信在以后的课程设计中,我们会做的更好。 致谢 经过一周的忙碌,本次课程设计已经接近尾声,虽然是第二次参与课程设计,第二次写课程设计报告,但是还是感觉经验匮乏,难免有许多考虑不周全的地方,如果没有指导老师的督促指导,以及一起做这个设计的同学们的支持和帮助,想要完成这个设计是很难的。 在做课程设计的过程中,得到了老师的亲切关怀和耐心的指导。 对于我们所犯的错误,不论是多么的幼稚,老师都耐心的给我们讲解,直至我们完全理解。 老师们严肃的教学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。 从课题的选择到设计的最终完成,老师都始终给予我细心的指导和不懈的支持。 老师的专业水平和治学严谨以及科学研究的精神是我永远学习的榜样,并将积极影响我今后的学习和工作。 在此谨向各位指导老师致以诚挚的谢意和崇高的敬意。 还有和我一起做这个设计的同学们,他们给了我帮助,在这里表达我诚挚的谢意! 同时感谢参考文献原作者的无私奉献! 另外一直深于幕后给我们提供优雅、便利的实验环境的实验室管理人员以及在我做设计的过程中给予我帮助的朋友们,请允许我在这里说一声: 谢谢你们! 最后我还要感谢淮阴工学院、计算机工程系提供的这次实践机会。 俗话说: “学习的最好方法是实践,实践才能出真知。 ”通过这次实践,让我对所学的知识有了更进一步的认识,以及了解到更多我们课堂上没有讲到的东西。 参考文献 1.殷人昆.数据结构(用面向对象的方法与C++语言描述).清华大学出版社2008 2.揣锦华.面向对象程序设计与C++实践.西安电子科技大学出版社2004 3.苏仕华.数据结构课程设计.机械工业出版社2005 4.周云静.数据结构习题解析与上机指导.冶金工业出版社2006
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计报告 停车场 课程设计 报告