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

上传人:飞****2 文档编号:14363822 上传时间:2022-05-04 格式:DOCX 页数:13 大小:102.40KB
返回 下载 相关 举报
数据结构课程设计停车管理系统实验报告(共13页).docx_第1页
第1页 / 共13页
数据结构课程设计停车管理系统实验报告(共13页).docx_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《数据结构课程设计停车管理系统实验报告(共13页).docx》由会员分享,可在线阅读,更多相关《数据结构课程设计停车管理系统实验报告(共13页).docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

3、ase; 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()/*车辆出队*/void come_in()/*车辆离开*

4、/void go_out()/*车辆进入*/void interface()/*主菜单*/(4) 各模块之间的调用关系以及算法设计Interface输入:1230Intstack pushstackCreat_q pushqCome-inGo_outPop_stack pop_qPrintReturn 03. 详细设计流程图及模块调用如下:开始 创建队列,栈结束程序主菜单0223输出车库车辆21车辆离开车辆进入是否在栈中进入队列栈是否满是否进入栈否是否在队列是元素出列显示费用否找不到4. 测试与分析 主界面如下:车库中假设最多停三辆车,加入进入四辆车abcd,则d需要在便道排队:此时若b车开走

5、,显示费用信息,则在便道的d车进入车库:若此时有车进入,则继续在便道排队:5. 附录源程序清单: #include#include#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 sqs

6、tack S1,S2;void intstack(struct sqstack &S) S.base=(struct car *)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

7、.top-id); e-h=S.top-h; e-m=S.top-m;void creat_q() p1=(struct 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

8、_in() void interface(); printf(请输入7位车辆车牌号和进入时间n例如:nA 12: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,

9、p); n+; interface();void go_out() struct car* pop_q(); 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,(6

10、0*(h1-(S1.base+i)-h)+m1-(S1.base+i)-m)*1); int j; for(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;

11、if(biaozhi=0) struct car *p,*pp; pp=p1; while(pp-next!=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)

12、; interface();void print() void push_stack(struct sqstack 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 p

13、rintf(*便道现有车辆信息:n); while(p-next!=NULL) p=p-next; printf( %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,表示车辆进入输入七位车牌号和进入时间,如:A 12:30输入2,表示车辆离开输入离开车牌号和时间输入3,表示显示车库信息输入0,结束程序谢谢使用! 专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁