




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构课程设计报告系 别: 计算机信息与技术系 _班 级:_ _ b080604_ _ _学 号:_b080605_实训日期:2010-08-23至2010-08-27数据结构课程设计实验报告 开课实验室: room-m_ 2010年08月27日班级b080604学号b080605姓名成绩课程名称数据结构实验项目名 称停车场管理系统指导教师赵亚军教师评语教师签名: 年 月 日一、实验目的1、 通过课程设计,加深对数据结构这一课程所学内容的进一步理解与巩固。2、 通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。3、 通过课程设计,提高程序开发功能,能运用
2、合理的控制流程编写清晰高效的程序。4、 通过课程设计,训练c程序调试能力,能将一个中小型各级组织系统联调通过。5、 通过课程设计,开发一个中小型系统,掌握系统研发全过程。6、 通话课程设计,培养分析问题、解决实际问题的能力。二、功能要求 设计一个停车场管理系统,模拟停车场的运作,通过此程序具备以下功能:1、要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的数据序列进行模拟管理2、要求处理的数据元素包括三个数据项:汽车“到达”或“离去”信息,汽车牌照号码及到达或离去的时间3、该系统完成以下功能:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是离去,则输出汽车在停车场内停留的时
3、间和应缴纳的费用(在便道上停留的时间不收费)4、要求栈以顺序结构实现,队列以链表实现三、设计要求1、独立完成全部代码的设计、编写、调试与部署,运行正确无误2、编写设计报告书 设计报告书应包括:(1) 问题描述和系统要求(2) 系统主要功能模块设计(3) 设计中遇到的问题及其解决方法(4) 系统运行报告(5) 总结 问题描述:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排以便道上的第
4、一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。 实现提示:汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(a,1,5)表示1号牌照车在5这个时刻到达,而(d
5、,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(e,0,0)时结束。本题可用栈和队列来实现。四、运行环境1 microsoft visual c+ 6.02 microsoft windows xp 操作系统五、实验步骤(绘制相应的流程图)interface列表显示车辆出库车辆入库信息消除信息登入检索输出返回主界面六、实验过程原始代码#include#include#include#define max 5 /*车库容量*/#define price 0.05 /*每车每分钟费用*/typedef struct time int hour; int min;time;
6、/*时间结点*/typedef struct node char num10; time reach; time leave;carnode; /*车辆信息结点*/typedef struct node carnode *stackmax+1; int top;seqstackcar; /*模拟车站*/typedef struct car carnode *data; struct car *next;queuenode;typedef struct node queuenode *head; queuenode *rear;linkqueuecar; /*模拟通道*/void initsta
7、ck(seqstackcar *); /*初始化栈*/ int initqueue(linkqueuecar *); /*初始化便道*/int arrival(seqstackcar *,linkqueuecar *); /*车辆到达*/ void leave(seqstackcar *,seqstackcar *,linkqueuecar *); /*车辆离开*/void list(seqstackcar,linkqueuecar); /*显示存车信息*/void main() seqstackcar enter,temp; linkqueuecar wait; int ch; initst
8、ack(&enter); /*初始化车站*/ initstack(&temp); /*初始化让路的临时栈*/ initqueue(&wait); /*初始化通道*/ while(1) printf(n*n); printf(n*停 车 场 管 理 系 统*n); printf(n*1.车辆到达登记 * 2.车辆离开登记*); printf(n * ); printf(n*); printf(n * ); printf(n*3.车辆列表显示 * 4. 退 出 系 统*n); printf(n* 欢*迎*使*用 *n); printf(n*n); printf(n*注意:请输入所需序号使用本系统*
9、n); while(1) scanf(%d,&ch); if(ch=1&chtop=0; for(i=0;istacks-top=null;int initqueue(linkqueuecar *q) /*初始化便道*/ q-head=(queuenode *)malloc(sizeof(queuenode); if(q-head!=null) q-head-next=null; q-rear=q-head; return(1); else return(-1);void print(carnode *p,int room) /*打印出站车的信息*/ int a1,a2,b1,b2; prin
10、tf(n车辆离开的时间为:n); scanf(%d:%d,&(p-leave.hour),&(p-leave.min); printf(n车牌号为:n); puts(p-num); printf(n其到达时间为: %d:%d,p-reach.hour,p-reach.min); printf(离开时间为: %d:%d,p-leave.hour,p-leave.min); a1=p-reach.hour; a2=p-reach.min; b1=p-leave.hour; b2=p-leave.min; printf(n应交费用为: %2.1f元,(b1-a1)*60+(b2-a2)*price)
11、; free(p);int arrival(seqstackcar *enter,linkqueuecar *w) /*车辆到达*/ carnode *p; queuenode *t; p=(carnode *)malloc(sizeof(carnode); flushall(); printf(n请输入车牌号(如:陕a00000):); gets(p-num); if(enter-toptop+; printf(n车辆在车场第%d位置.,enter-top); printf(n车辆到达时间为:); scanf(%d:%d,&(p-reach.hour),&(p-reach.min); ent
12、er-stackenter-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); void leave(seqstackcar *enter,seqstackcar *temp,linkqueuecar *w) /*车辆离开*/ int room; carnode *p,*t; queuenode *q;/*判
13、断车场内是否有车*/ if(enter-top0) /*有车*/ while(1) /*输入离开车辆的信息*/ printf(n请输入车在车场的位置/1-%d/:,enter-top); scanf(%d,&room); if(room=1&roomtop) break; while(enter-toproom) /*车辆离开*/ temp-top+; temp-stacktemp-top=enter-stackenter-top; enter-stackenter-top=null; enter-top-; p=enter-stackenter-top; enter-stackenter-t
14、op=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)&enter-tophead-next; t=q-data; enter-top+; printf(n便道的%s号车进入车场第%d位置.,t-num,enter-top); printf(n请输入车辆进入车场的时间:); scanf(%
15、d:%d,&(t-reach.hour),&(t-reach.min); w-head-next=q-next; if(q=w-rear) w-rear=w-head; enter-stackenter-top=t; free(q); else printf(n便道里没有车辆.n); else printf(n车场里没有车辆停放.); /*没车*/void list1(seqstackcar *s) /*列表显示车场信息*/ int i; if(s-top0) /*判断车站内是否有车*/ printf(n车场:); printf(n 位置 到达时间 车牌号n); for(i=1;itop;i+
16、) printf( %d ,i); printf( %d:%d ,s-stacki-reach.hour,s-stacki-reach.min); puts(s-stacki-num); else printf(n车场里没有车);void list2(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; else printf(n便道里没有车
17、.);void list(seqstackcar s,linkqueuecar w) int flag,tag; flag=1; while(flag) printf(n请选择 1|2|3:); printf(n1.车场列表n2.便道列表n3.返回主菜单n); while(1) scanf(%d,&tag); if(tag=1|tag=3) break; else printf(n请选择 13:); switch(tag) case 1:list1(&s);break; /*列表显示车场信息*/ case 2:list2(&w);break; /*列表显示便道信息*/ case 3:flag=
18、0;break; default: break; 七、实验结果及分析 停车场管理系统主界面 停车场车辆信息录入界面 车辆停满提示车辆便道等待界面 停车场已停车辆列表显示界面 便道等待车辆信息界面备注:为方便模拟停车场实验,停车场最多停车 5辆,若有车辆需要进入则需在编导等待。 只有停车场内车辆使出后,便道等待车辆 才能够进入停车场。 停车场内车辆使出缴费及便道车辆进入界面八、实验体会与收获(自己的体会,200字以上;每人一份) 这一周的课程设计,通过对停车场管理系统的开发,使得我将计算机课程所学知识与实际问题很好地相连接在了一起。在这次课程设计中,不仅培养了我开发一个中小型程序的能力,而且也培养了我们团独合作能力。在这次对停车场管理系统的开发过程中,我们每个人互相帮助。在这次课程设计中,使得我很好的了解了在开发程序中合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年陇南地区成县数学三上期末学业质量监测试题含解析
- 2025-2026学年焦作市沁阳市数学三上期末模拟试题含解析
- 2025-2026学年江西省吉安市永丰县三年级数学第一学期期末质量检测试题含解析
- 2025-2026学年江苏省连云港市沙河子园艺场小学三上数学期末考试试题含解析
- 七年级上政治知识点复习课件
- 2025年卫生资格考试核心资料试题及答案
- 日本文化对中华文化的反思试题及答案
- 医疗环境与职业安全的试题及答案
- 全面掌握的执业医师考试试题及答案
- 2025自考行政管理考情分析试题及答案
- 2025年广东广州中物储国际货运代理有限公司招聘笔试参考题库含答案解析
- 2025-2030中国屏蔽泵市场运行态势分析及运营动态规划研究报告
- 海外安保面试题及答案
- 危重患者的早期康复
- 乡村振兴战略相关试题及答案
- QC080000基础知识课件
- 急诊护理团队精神
- 机车运用质量指标马元课件
- 模拟退火与数论-深度研究
- 《防灾减灾专题培训》课件
- 智联网汽车技术 课件 13.9自动紧急制动系统
评论
0/150
提交评论