欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    数据结构课程设计报告停车场管理系统 .doc

    • 资源ID:2396829       资源大小:293KB        全文页数:8页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计报告停车场管理系统 .doc

    数据结构课程设计报告系 别: 计算机信息与技术系 _班 级:_ _ B080604_ _ _学 号:_B080605_实训日期:2010-08-23至2010-08-27数据结构课程设计实验报告 开课实验室: ROOM-M_ 2010年08月27日班级B080604学号B080605姓名成绩课程名称数据结构实验项目名 称停车场管理系统指导教师赵亚军教师评语教师签名: 年 月 日一、实验目的1、 通过课程设计,加深对数据结构这一课程所学内容的进一步理解与巩固。2、 通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。3、 通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。4、 通过课程设计,训练C程序调试能力,能将一个中小型各级组织系统联调通过。5、 通过课程设计,开发一个中小型系统,掌握系统研发全过程。6、 通话课程设计,培养分析问题、解决实际问题的能力。二、功能要求 设计一个停车场管理系统,模拟停车场的运作,通过此程序具备以下功能:1、要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的数据序列进行模拟管理2、要求处理的数据元素包括三个数据项:汽车“到达”或“离去”信息,汽车牌照号码及到达或离去的时间3、该系统完成以下功能:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是离去,则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)4、要求栈以顺序结构实现,队列以链表实现三、设计要求1、独立完成全部代码的设计、编写、调试与部署,运行正确无误2、编写设计报告书 设计报告书应包括:(1) 问题描述和系统要求(2) 系统主要功能模块设计(3) 设计中遇到的问题及其解决方法(4) 系统运行报告(5) 总结 问题描述:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排以便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。 实现提示:汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(A,1,5)表示1号牌照车在5这个时刻到达,而(D,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(E,0,0)时结束。本题可用栈和队列来实现。四、运行环境1 Microsoft Visual C+ 6.02 Microsoft Windows XP 操作系统五、实验步骤(绘制相应的流程图)Interface列表显示车辆出库车辆入库信息消除信息登入检索输出返回主界面六、实验过程原始代码#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX 5 /*车库容量*/#define price 0.05 /*每车每分钟费用*/typedef struct time int hour; int min;Time; /*时间结点*/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 InitStack(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; InitStack(&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*注意:请输入所需序号使用本系统*n"); while(1) scanf("%d",&ch); if(ch>=1&&ch<=4)break; else printf("n请选择(14):n"); switch(ch) case 1:Arrival(&Enter,&Wait);break; /*车辆到达*/ case 2:Leave(&Enter,&Temp,&Wait);break; /*车辆离开*/ case 3:List(Enter,Wait);break; /*列表打印信息*/ case 4:exit(0); /*退出主程序*/ void InitStack(SeqStackCar *s) /*初始化栈*/ int i; s->top=0; for(i=0;i<=MAX;i+) s->stacks->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; printf("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); 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->top<MAX) /*车场未满,车进车场*/ Enter->top+; printf("n车辆在车场第%d位置.",Enter->top); printf("n车辆到达时间为:"); scanf("%d:%d",&(p->reach.hour),&(p->reach.min); Enter->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;/*判断车场内是否有车*/ 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->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+; Enter->stackEnter->top=Temp->stackTemp->top; Temp->stackTemp->top=NULL; Temp->top-; PRINT(p,room); /*判断通道上是否有车及车站是否已满*/ if(W->head!=W->rear)&&Enter->top<MAX) /*便道的车辆进入车场*/ q=W->head->next; t=q->data; Enter->top+; printf("n便道的%s号车进入车场第%d位置.",t->num,Enter->top); printf("n请输入车辆进入车场的时间:"); scanf("%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->top>0) /*判断车站内是否有车*/ printf("n车场:"); printf("n 位置 到达时间 车牌号n"); for(i=1;i<=S->top;i+) 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便道里没有车.");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=0;break; default: break; 七、实验结果及分析 停车场管理系统主界面 停车场车辆信息录入界面 车辆停满提示车辆便道等待界面 停车场已停车辆列表显示界面 便道等待车辆信息界面备注:为方便模拟停车场实验,停车场最多停车 5辆,若有车辆需要进入则需在编导等待。 只有停车场内车辆使出后,便道等待车辆 才能够进入停车场。 停车场内车辆使出缴费及便道车辆进入界面八、实验体会与收获(自己的体会,200字以上;每人一份) 这一周的课程设计,通过对停车场管理系统的开发,使得我将计算机课程所学知识与实际问题很好地相连接在了一起。在这次课程设计中,不仅培养了我开发一个中小型程序的能力,而且也培养了我们团独合作能力。在这次对停车场管理系统的开发过程中,我们每个人互相帮助。在这次课程设计中,使得我很好的了解了在开发程序中合作的重要性。 在这周课程设计中,我所开发的停车场管理系统,基本上可以完成每一项功能。汽车进入停车场的信息、离开停车场的信息以及通道上的信息都可以在程序上一一实现。但是,该程序也有不足的地方。还有一个可以改进的地方就是纪录车俩进入停车场以及离开停车场的时间,应该精确到小时以及分钟的,可是在程序中,为了简便起见,我们只是设置了成了一个时刻,所以,在这方面还是有待改进的。改进的程序中,还应该增加时间的判断功能,即停车场内有可能有车俩停放的时间超过一天。 总之,在这周的课程设计中,我的收获还是挺大的,不仅对于专业课有了更好的认识,而且在合作的过程中更加了解了团队精神的重要性。

    注意事项

    本文(数据结构课程设计报告停车场管理系统 .doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开