ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:198.99KB ,
资源ID:12791303      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12791303.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计停车管理系统实验报告.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计停车管理系统实验报告.docx

1、数据结构课程设计停车管理系统实验报告数据结构课程设计报告项目名称:停车管理系统安徽大学计算机科学与技术学院 姓名:鉏飞祥 学号:E21414018 专业:软件工程2016-6-281 .需求分析1.1问题描述停车场只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在停车场的最北端),若车场已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入

2、车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。1.2基本要求(1) 输入的形式和输入值的围;七位字符车牌号 空格 时间(12:30)如:A123456 12:30(2) 输出的形式;车牌号 时间如:A123456 12:30(3) 程序所能达到的功能。模拟车子排队和进出车库的情况,并且根据时间计费,随时显示当前车库车辆情况。2. 概要设计(1)数据结构 每个汽车的基本元素:struct car char id8; int h;/*时*/ int m;/*分*/ struct car *next;栈的基本元素:struct s

3、qstack struct car *base; struct car *top; int stacksize;(2)程序模块void intstack(struct sqstack &S)/*构造栈*/void push_stack(struct sqstack &S,struct car *e)/*e入栈*/void pop_stack(struct sqstack &S,struct car *e)/*出栈顶元素到e*/void creat_q()/*创建队列*/void push_q(struct car *p)/*车辆入队*/struct car * pop_q()/*车辆出队*/v

4、oid come_in()/*车辆离开*/void go_out()/*车辆进入*/void interface()/*主菜单*/(4) 各模块之间的调用关系以及算法设计Return 03. 详细设计流程图及模块调用如下: 主菜单22输出车库车辆车辆进入栈是否满进入队列进入栈车辆离开是否在栈中是否在队列找不到元素出列显示费用结束程序 0 3 2 1 是 否 否 是 否4. 测试与分析 主界面如下:车库中假设最多停三辆车,加入进入四辆车abcd,则d需要在便道排队:此时若b车开走,显示费用信息,则在便道的d车进入车库:若此时有车进入,则继续在便道排队:5. 附录源程序清单: #include#i

5、nclude#include#include#define MAX 3 /*宏定义车库最大车辆*/struct car char id8; int h;/*时*/ int m;/*分*/ struct car *next;int n=0;/*当前车库的车辆数*/int m=0;/*当前便道的车辆数*/struct car *p1;struct sqstack struct car *base; struct car *top; int stacksize;struct sqstack S1,S2;void intstack(struct sqstack &S) S.base=(struct c

6、ar *)malloc(MAX*sizeof(struct car); S.top=S.base; S.stacksize=MAX;void push_stack(struct sqstack &S,struct car *e) strcpy(S.top-id,e-id); S.top-h=e-h; S.top-m=e-m; S.top+;void pop_stack(struct sqstack &S,struct car *e) S.top-; strcpy(e-id,S.top-id); e-h=S.top-h; e-m=S.top-m;void creat_q() p1=(struct

7、 car *)malloc(sizeof(struct car); p1-next=NULL;void push_q(struct car *p) struct car *p2; p2=p1; while(p2-next!=NULL) p2=p2-next; p2-next=p; p-next=NULL;struct car * pop_q() struct car *p; p=p1-next; p1-next=p1-next-next; return p;void come_in() void interface(); printf(请输入7位车辆车牌号和进入时间n例如:nA123456 1

8、2:30n); if(n=MAX) struct car *p; p=(struct car*)malloc(sizeof(struct car); scanf(%s,p-id); scanf(%d:%d,&p-h,&p-m); push_q(p); m+; else struct car *p; p=(struct car*)malloc(sizeof(struct car); scanf(%s,p-id); scanf(%d:%d,&p-h,&p-m); push_stack(S1,p); n+; interface();void go_out() struct car* pop_q();

9、 void interface(); printf(请输入7位车牌号和离开时间n); char b8; int h1; int m1; scanf(%s,b); scanf(%d:%d,&h1,&m1); int i; int biaozhi=0; for(i=0;iid)=0) printf(%s 已离开n计费信息:n进入时间%d:%d,离开时间%d:%d,(每分钟1元)n,b,(S1.base+i)-h,(S1.base+i)-m,h1,m1); printf(费用为:%d元n,(60*(h1-(S1.base+i)-h)+m1-(S1.base+i)-m)*1); int j; for(

10、j=0;jn-i;j+) struct car *p2; p2=(struct car *)malloc(sizeof(struct car); pop_stack(S1,p2); push_stack(S2,p2); struct car *pp; pop_stack(S2,pp); for(j=1;jnext!=NULL) /*若便道有车,则便道的车进入车库*/ struct car *ppp; ppp=pop_q(); push_stack(S1,ppp); n+; break; if(biaozhi=0) struct car *p,*pp; pp=p1; while(pp-next!

11、=NULL) p=pp; pp=pp-next; if(strcmp(b,pp-id)=0) printf(%s 已离开n,b); printf(%s 已离开n计费信息:n进入时间%d:%d,离开时间%d:%d,(每分钟1元)n,b,pp-h,pp-m,h1,m1); printf(费用为:%d元n,(60*(h1-pp-h)+m1-pp-m)*1); p-next=pp-next; m-; biaozhi=1; break; if(biaozhi=0) printf(找不到%sn,b); interface();void print() void push_stack(struct sqst

12、ack S,struct car *e); void pop_stack(struct sqstack S,struct car *e); void interface(); if(n=0) printf(没有车辆n); else printf(*车库现有车辆信息:n); int i; for(i=0;iid,(S1.base+i)-h,(S1.base+i)-m); struct car *p; p=p1; if(p-next=NULL) printf(*便道无车辆n); else printf(*便道现有车辆信息:n); while(p-next!=NULL) p=p-next; prin

13、tf( %s %d:%dn,p-id,p-h,p-m); interface();void interface() int i; printf( 请输入操作指令nn 1:汽车开入n 2:车辆离开n 3:显示当前车辆信息n 0:结束程序n*n); scanf(%d,&i); switch(i) case 0:return ;break; case 1:come_in();break; case 2:go_out();break; case 3:print();break; ;int main() system(color a0); /可以写成 red 调出颜色组 system(title 车库管理系统); /设置cmd窗口标题 printf( *欢迎使用停车管理系统*nn); system(date /T); system(TIME /T); creat_q(); intstack(S1); intstack(S2); interface(); return 0;6. 用户使用手册欢迎使用车辆管理系统。输入1,表示车辆进入输入七位车牌号和进入时间,如:A123789 12:30输入2,表示车辆离开输入离开车牌号和时间输入3,表示显示车库信息输入0,结束程序使用!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1