数据结构—停车场管理系统.doc

上传人:知****量 文档编号:12961240 上传时间:2022-04-27 格式:DOC 页数:15 大小:238KB
返回 下载 相关 举报
数据结构—停车场管理系统.doc_第1页
第1页 / 共15页
数据结构—停车场管理系统.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

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

1、. .理工大学华夏学院课程设计报告书课程名称:?数据构造与算法分析?课程设计实训名称:停车场管理系统姓 名:航院 系: 信息工程系专业班级: 软件1141学 号:指导教师: 云华成 绩:时间:2015年6月29日至2015年7月3日实训任务书一、题目1. 停车场管理二、实训的性质和任务数据构造实训是在完成理论课程学习之后安排的综合实践训练,要求学生能根据数据构造中所讲到的各种数据类型以及它们顺序和链式存储,在具体的应用中能运用并实现各种数据的各种不同操作。通过一的综合实训,使学生加深对如将逻辑关系的数据按一定的存储式存储在计算机。并为以后的编程打好根底。三、实训的根本要求1、熟悉各种数据类型及

2、它们在计算机中的存储式; 2、熟悉各种数据类型的根本操作,各根本操作的实现。3、能综合运用各种数据类型实现一些具体的问题。四、考核指标及成绩评定实训成绩由下面构成: 平时成绩10%+作品70%+实训报告20%=总评成绩作品成绩评定标准:1、全部完成90-1002、主要功能完成70-903、局部功能完成60-704、少局部完成40-605、几乎没做0-40完 成 期 限: 年 月 日指导教师签章:专业负责人签章:教学院长签章年 月 日一、 需求说明仅仅认识到栈和队列是两种特殊的线性表是远远不够的,本次实习的目的在于使读者深入了解栈和队列的特征,以便在实际问题背景下灵活运用它们;同时还将稳固这两种

3、构造的构造法,接触较复杂问题的递归算法设计。以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进展模拟管理。每一组输入数据包括三个数据项:汽车“到达或“离去信息、汽车牌照及到达或离去的时刻,对每一组输入数据进展操作后的输出数据为:假设是车辆到达,那么输出汽车在停车场或便道上的停车位置;假设是车离去;那么输出汽车在停车场停留的时间和应交纳的费用在便道上停留的时间不收费。栈以顺序构造实现,队列以链表实现。设停车场只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到达时间的先后顺序,依次由北向南排列大门在最南端,最先到达的第一辆车停放在车场的最北端,假

4、设车场已停满n辆汽车,那么后来的汽车只能在门外的便道上等候,一旦有车开走,那么排在便道上的第一辆车即可开入;当停车场某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进展管理的模拟程序。二、 功能描述停车场管理系统主要有以下几个功能:1、汽车进入车场 添加车辆信息:车牌号、进车时间,如果停车场已满,那么将车辆停入临时便道。2、汽车退出车场 根据退出车辆的车牌号,进展优先退出,再根据退出时间计算停车费用。并将临时便道中的车辆停入停车场 。3、退出系统三

5、、 系统设计及实现软件规格要求合理,基于C语言程序设计,在有限空间到达效果最优化。3.1设计要求用C语言实现 “停车场管理系统。3.2系统功能1系统启动后,出现用户界面,人机交互。2根据提示输入选项 1、汽车进入车场 2、汽车退出车场3、退出系统 3进入车场时录入车辆牌号、和入场时间,输出停靠的停车位置,当停车场车位满时那么停靠在临时停车便道。 4退出车场时录入车辆牌号、和出场时间,输出停车总时间,和所停的费用。3.3系统性能:1时间特性需求在网络连接正常的情况下,查询响应时间为秒级。2 灵活性当需求发生某些变化时,机票管理应用软件操作式、数据构造、运行环境根本不会发生变化,变化只是将对应的数

6、据文件的记录改变,或改变过滤条件。3可用性软件应该尽可能的一目了然,使一般用户能够使用。 4平安性本套职工信息系统所涉及的数据存放于文件中,在程序中应尽可能的使用调用存储过程的法以免使某人反编译软件后或入侵到效劳器后对数据的构造了如指掌,在程序中应该设置访问时的密码,以保证数据不容易被错改、破坏,而且要经常对数据文件进展备份操作,使得数据一旦受到破坏或是出错能够保证及时的恢复数据,将损失降低到最低。5 可维护性6 应用程序的维护当用户使用本套职工信息系统软件时,遇到了软件本身的逻辑错误时,应当有软件的维护人员对软件进展修改。7可转移、可转换性Visual Studio及C编程语言的兼容性很高,

7、在windows95/98. Windows NT. windows2000. windows XP等操作系统都可以直接运行。输入项:用户通过软件输入必要的信息,然后保存到数据文件,所输入的信息是经过需求分析限定的容,同时也是数据文件中每个字段中存储的容。输出项:本套职工信息系统软件会将所有需要浏览的数据显示在屏幕上,以便使用户能够浏览到数据文件中的数据或用户想要浏览围中的数据算法:1)将用户输入的数据,按字段保存到数据文件中。2)将数据文件中的数据,按字段提取到用户界面中。3)必要的去除重复项的算法。4)保持文件和输出数据的一致性。注释设计:尽可能的将软件中插入注释语句,使语句功能明了。制作

8、的时候应该制作两分,一份是标有注释语句的代码,用来给维护人员、测试人员和开发人员了解开发过程所用,另一份是不带有注释语句的代码,用来最后实际应用当中,这样可以充分的利用有限的时间,降低客户的计算机翻开系统功能的时间,提高客户的使用速度。限制条件:限制必要的条件,以排除由于用户的误操作造成不必要的错误。测试方案:在软件编辑的工作进展当中,测试人员便要开场制定测试方案,其中要包括白盒和黑盒的具体测试工程,及其必要的测试数据和出错的信息。每次测试的结果要写报告,并就发现和疑心的问题与编辑人员联系。测试的结果要让编辑人员明白。通过文件存储式将用户所录入的数据保存妥当,充分地描述了数据间的在联系,便于数

9、据修改、更新与扩大,同时保证了数据的独立性、可靠性、平安性与完整性,减少了数据冗余,提高了数据共享程度及数据管理效率。3.4设计思路及框架停车场的管理流程如下:当车辆要进入停车场时,检查停车场是否已满,如果未满那么车辆进入停车场;如果停车场已满,那么车辆进入便道等候。当车辆要求出栈时,先让在它之后进入停车场的车辆退出停车场为它让路,再让该车退出停车场,让路的所有车辆再按其原来进入停车场的次序进入停车场。之后,再检查在便道上是否有车等候,有车那么让最先等待的那辆车进入停车场。四、各功能模块1、 交互菜单2、汽车进入停车场13、汽车退出停车场2五、 总结短学期的课程设计是一次非常珍贵的时机,这是一

10、次可以让我们所学的理论与实际相结合的时机。其实个人而言,我体会较深的一点是团队互相帮助学习的过程,自己看书学习的经历,以及从网上以及其他各种途径获得信息和知识的经历。理论与实际相结合的设计,锻炼了我综合运用所学的根底知识,解决实际问题的能力,同时也提高我查阅文献资料、对程序整体的把握等其他能力水平。而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,我的各面经历都得到了极大的丰富。“课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。在这次课程设计的过程中,我深深地体会到了理论与实践结

11、合的过程,当实践成功时的成就感,从整个过程中我受益匪浅。六、 附录#include#include #include#include#define size 1 /停车场位置数/模拟停车场的堆栈的性质;typedef struct zanlindint number; /汽车车号float ar_time; /汽车到达时间zanInode;typedef structzanInode *base; /停车场的堆栈底zanInode *top; /停车场的堆栈顶int stacksize_curren;stackhead;/堆栈的根本操作;void initstack(stackhead &L)

12、 /构造一个空栈LL.base=(zanInode*)malloc(size*sizeof(zanlind);if(!L.base) exit(0); /存储分配失败L.top=L.base;L.stacksize_curren=0;void push(stackhead &L,zanInode e) /插入元素e为新的栈顶元素*L.top+=e;L.stacksize_curren+;void pop(stackhead &L,zanInode &e) /假设栈不为空,删除L的栈顶元素,用e返回其值if(L.top=L.base)printf(停车场为空!);return;e=*-L.top

13、;L.stacksize_curren-;/模拟便道的队列的性质;typedef struct duilieint number; /汽车车号float ar_time; /汽车到达时间struct duilie *next;*queueptr;typedef structqueueptr front; /便道的队列的对头queueptr rear; /便道的队列的队尾int length;linkqueue;/队列的根本操作;void initqueue(linkqueue &q) /构造一个空队列qq.front=q.rear=(queueptr)malloc(sizeof(duilie)

14、;if(!q.front|!q.rear) exit(0); /存储分配失败q.front-next=NULL;q.length=0;void enqueue(linkqueue &q,int number,int ar_time) /把元素的插入队列尾属性为number,ar_timequeueptr p;p=(queueptr)malloc(sizeof(duilie);if(!p) exit(0); /存储分配失败p-number=number;p-ar_time=ar_time;p-next=NULL;q.rear-next=p;q.rear=p;q.length+;void popq

15、ueue(linkqueue &q,queueptr &w) /删除q的队头元素 w属性为number,ar_timequeueptr p;if(q.front=q.rear)printf(停车场通道为空);return;p=q.front-next;w=p;q.front-next=p-next;q.length-;if(q.rear=p) q.front=q.rear;float shijiancha(float x,float y) /求时间差的子程序int shix,shiy,fenx,feny;float shijiancha;shix=x;shiy=y;fenx=(int)(x-s

16、hix)*100);feny=(int)(y-shiy)*100);if(fenxfeny)shijiancha=(shiy-shix-1)+(float)(feny+60-fenx)/100;elseshijiancha=(shiy-shix)+(float)(feny-fenx)/100;return shijiancha;void jinru(stackhead &st,linkqueue &q) /对进入停车场的汽车的处理;int number;float time_a;printf(请输入车牌号:);scanf(%d ,&number);printf(请输入您进车场的时间(比方说:8

17、点半那么输入8.30):); scanf(%f,&time_a); if(st.stacksize_curren2)zanInode e;e.number=number;e.ar_time=time_a;push(st,e);printf(请把你的车停在%d号车道nn,st.stacksize_curren);elseenqueue(q,number,time_a);printf(停车场已满,请把你的车停在便道的第%d个位置上,q.length);void likai(stackhead &st,stackhead &sl,linkqueue &q) /对离开的汽车的处理; /st 堆栈为停车

18、场,sl 堆栈为倒车场int number,flag=1; /q 为便道队列float sh,time_d,arrivaltime,money1;printf(请输入您的车牌号:); scanf(%d,&number); printf(请输入您出车场的时间(比方说:8点半那么输入8.30):); scanf(%f,&time_d);zanInode e,q_to_s;queueptr w;while(flag) /找到要开出的车,并弹出停车场栈pop(st,e);push(sl,e);if(e.number=number)flag=0;arrivaltime=e.ar_time;sh=shij

19、iancha(arrivaltime,time_d);money1=(int)sh*2+(sh-(int)sh)*100/30;pop(sl,e); /把临时堆栈的第一辆车要离开的去掉;while(sl.stacksize_curren) /把倒车场的车倒回停车场pop(sl,e);push(st,e);if(st.stacksize_currennumber;push(st,q_to_s);printf(车牌为%d 的车已从通道进入停车场, 所在的停车位为 %d:n,q_to_s.number,st.stacksize_curren); printf(n 收据);printf(车牌号:%dn

20、,number);printf(+n); printf( 进车场时间:%4.2fn,arrivaltime); printf( 出车场时间:%4.2fn,time_d); printf( 停留时间:%4.2fn,sh); printf( 应付(元) %4.2fn,money1); printf(+nn); void main()int m=100;char flag; /进入或离开的标识;stackhead sting,slinshi; /停车场和临时倒车场堆栈的定义;linkqueue line; /队列的定义;initstack(sting); /构造停车场堆栈stinginitstack

21、(slinshi); /构造倒车场堆栈slinshiinitqueue(line); /构造便道队列linewhile(m) printf(n *停车场管理程序* );printf(n*=*); printf(n*温馨提示:请车主在24:00之前来取车,给您带来的不便,敬请原谅!*); printf(n* 1 * 汽车进车场 2 * 汽车出车场 3 * 退出程序 *); printf(n*=*);printf(n 请输入您需要的效劳的代号(1、2、3),!n);scanf(%c,&flag);switch(flag)case 1: jinru(sting,line);break; /汽车进车场case 2: likai(sting,slinshi,line);break; /汽车出车场case 3: exit(0);m-;. .word.zl.

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

当前位置:首页 > 研究报告 > 设计方案

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

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