




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 停车场管理系统程序设计书 一、程序设计目标 1、 通过本次课设进一步的了解栈和队列等有关概念。 掌握栈和队列的建立,掌握栈和队列的基本操作,深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。 2、 复习巩固 通过 我们 了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,更加了解 进一步加深对 据结构、离散数学等基础技能的理解和掌握。 3、 掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为 后续各门计算机课程的学习和毕业设计打下坚实基础。 4、 掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关! 让我们有一个既动手又动脑,独立实践的机会,锻炼我们的分析解决实际问题的能力。同时增加了同学之间的团队合作精神!更加体会到工作中团队合作的重要性和必要性! 二、 问题描述 按照题目要求,我们把程序分为三个模块 设有一个可以停放 n 辆汽车的狭长停车场 ,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放 (最先到达的第 一辆车放在停车场的最里面 )。如果停车场已放满 n 辆车,则后来的车辆只能在停车场大门外的便道上等待。 一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在他之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车 2 场时,都应依据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。 当需要列表显示时,系统判断输 入值( 1如果输入 1,则调用显示车场列表,如果输入 2,则调用显示便道信息,如果输入 3,则返回主菜单。 三、 需求分析 这个程序的关键是车辆的进站和出站操作,以及车辆的通道之间的相互关系。由于停车场是一个很窄的、一边开口的车道,先进后出,类似数据结构中的栈结构,故车场用顺序栈这种数据结构来描述。 外面的狭长的通道,先进后出,通道的车辆可以随时退出,故可用链式队列结构来描述。考虑到车场和通道在整个程序中都要用到,故把这两个变量定义为全局变量。本程序中的数据对象是汽车,可以认为车牌号是每个元素的关键项,不能重复 ,和现实中的一样,车的入场时间以及出场时间都将作收费项目来考虑。在通道上的车由于没有入场,故不用收取费用。 功能实现方式: ( 1) 作为停车场,栈 列Q 作为车等待时用的便道 ,作为车场能够容纳的车辆数, 0作为车所在位置的编号,并且限定车场最多能够容纳10辆车 . ( 2) 场所能容纳的车辆数由收费人员来确定,车辆离开时,车主还可以得到收据,便于收费的管理使用 ,并且系统程序所提供的一些信息可通过特殊 硬件显示出来,供车主了解信息,准确有效的停车。 ( 3) 于管理人员对车辆进行管理,并且能够给等待中的车提供当前车场占用情况信息,便于他们能够及时的停车。 (4)入进站信息 -输入出站信息 -打印收据 3 (5)果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。 四、概要设计 1 数据结构说明 用到两个顺序栈:一个为车场栈;另一个为临时栈 ; 一个链式队列结构,存储便道车辆信息: 终端汽车读入数据包含三项: 达”还是“离开”; c.“到达”或“离开”的时刻。 停车场管理系统含有三个 模块,即:车辆到达、离开、列表显示 4 停 车 场 系 统车 辆 到 达 车 辆 离 开 列 表 显 示321(图 1) 以模块为单位分析算法 达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到便道等待。如图 2。 车辆到达停场是否满结束进入停车场进入便道是(图 2) 离开时,当车库为空时,提示没有车,结束;否则车辆离开。如图 3。 5 车 辆 离 开停 车 场 是 否 空结 束车 辆 离 开 提 示 没 有 车是否否便 道 是 否 有 车是车 进 入 车 场(图 3) 示模块有两个显示选项,即:车场与便道。如图4。 列 表 显 示判 断 输 入 值结 束显 示 车 场 列 表 显 示 便 道 列 表2 1 6 (图 4) 4、主要要点说明 声明定义 调用栈与队列的函数 主信息(输入初始操作信息) 它们之间的调用关系如下: 主程序 结构体 栈 队列 五、 详细设计( 实现程序模块的具体算法 ) 应用 支循环对应的数字类别,执行相应的系统功能。 欢迎动画从屏幕下方上升,结束动画是从屏幕上方下落。动画是由输出的图案叠加而成,输出一个图案便立刻清屏,接着输出下一时刻的图案,一次输出一次清屏便在人眼中形成动画效果。 7 开头动画 结束动画 a、 结构体声明与定义 *时间结点 */ 0; *车辆信息结点 */ ; *模拟车站 */ 8 *队列信息结点 */ *模拟通道 */ b、 函数 声明与定义 (1)主函 数 /主程序 /初始化等 ) .);/根据提示信息输入想要的操作 k)/根据输入的数调用不同的函数 : : . * /用于创建不 同结构体类型的 指针与变量 p) /调用输出函数 p,n). 根据求 解时间值来求得费用 ,并通过收据打印出来 (2)功能函数的声明 ,n); 9 初始化 栈 ); 初始化 队列 ,n); 车辆到达,登车牌号,没停满进栈。否则,进队列 ,); 车辆离开,通过输入离开车辆的位置处理,然后调用 p);函数进行收费,然后,判断便道上有没有车, 如 果有,就进停车场 。 ,n); 车辆离开 ,通过输入车牌号而处理离开,然后调用 p);函数进行收费,然后,判断便道上有没有车,如果有,就进停车场。 显示信息,用 ;函数选择显示车场与便道上的车辆情况 , 包括对 S); W);分别为车场和便道上的车辆情况 p) 打印出站车的信息 。 ( 3) 库函数 /*标准输入 /输出头文件 */ /*包含字符串处理函数头文件 */ /*包含动态存储与释放函数头文件 */ /*包含内存分配头文件 */ 本程序是个简单的栈与队列的应用程序 ,其所用的函数也是栈与队列的基本函数 ,但在编写函数时应特别注意它的面向对象性与窗口化设计 ,切身为使用者着想 其目的在于实现它本来的基本目的 . 六、 软件说明书 本系统为存车信息管理软件,能实现车场存车及便道存车信息 10 的输入,输出,查找等功能,并建立和更新的存车费用信息保存于文件输出或打印。每辆车的相关信息包括:车牌号,进站时间,出站时间,存车位置,(非)会员停车费用等。 该程序是简单的用于运用栈与队列基本知识的工具,不能用于现实中,特别是栈“先进后出”的规则大大限定了该程序的推广,现实世界的车站管理系统比这个远远复杂的多。 进入演示系统后首先会出现欢迎动画,是一个用户及管理员使用注意事项界面。 该停车场管理系统是个比较简单系统,在应用的时候请注意要求 ! 如果您有任何问题,请及时联系我们,谢谢合作! = 进入注意事项界面后系统会提示你停车场所容纳的车辆数,输入可容纳车辆后( 1进入管理系统界面 * 欢迎使用本停车管理系统 * * 1. 车辆到达 2. 车辆 (位置 )离开 3. 车辆 (车牌号 )离开 4. 列表显示 5. 退出系统 * 11 *本停车场管理实行 24小时制 *n); *本停车场有会员服务,会员 分钟,非会员 分钟 * 请选择所需要的服务 :1|2|3|4|5. 这时可按照提示进行你想要的操作,对于 1 5 的具体操作与内容请详见前面的调试分析,您便可以轻松操作了! !注意事项 : 1、 注意按提示内容输 入,以免出错。 2、 本系统功能还需完善,操作简单,只是供学习之用,并不能作 为实际生活使用。 七、源程序清单 #* #0 0; n; 请输入停车场可容纳的车 (最多 10 辆 ):); %d,&n); *用来清空输入缓存 ,以便不影响后面输入的东西 */ if( 输入的车辆数不在要求范围内,请重新输入! ); %d,&n); 12 n; *时间结点 */ 0; *车辆信息结点 */ ; n; *模拟车站 */ *队列结点 */ *模拟通道 */ ,n); /*声明栈 */ ); /*声明便道 */ ,n); /*车辆进站 */ ,n); /*车辆出站*/ /*显示存车信息 */ /*开头动画 */ * 欢迎使用本停车管理系统 * n); n); n); n); n); n); 13 n); n); i=15; i1; ; j=0; ; i=0;s- Q) /*初始化便道 */ Q-); - Q- Q- ); 1);/*结束 */ p) /*打印出站车的信息 */ 1,1,a,b,c; i;/会员 n 请输入离开的时间 (小时 :分钟 ):); %d:%d,&(p-&(p-; 15 *直到程序输出正确的时间 */ if(p-| (p-p-& p- 输入离开时间比进站时间早,请重新输入! n); %d:%d,&(p-&(p-; if(p-24 | p-60) 输入的时间格式有错 !请重新输入 :); %d:%d,&(p-&(p-; p-| (p-p-& p-| p-24 | p-60); 车场现在有一辆车离开,请便道里的第一辆车进入车场 !n); 出站的车的车牌号为 :); p-*把车牌号输出 */ n); /*计算出正确的所需的钱数 */ A1=p- A2=p- B1=p- B2=p-a=(60+if(a=60) b=a/60;/*停留时间中的小时 */ c=b;/*停留时间的分钟 */ 16 b=0; c=a; 请问你是否是会员(是 1/否 0): ); ) %d,&i); i=1) 祝您一路顺风,欢迎您下次光临 .); n 收 据 n); n 会员 n); 车牌号 : ); p- n); =n); |进车场时刻 | 出车场时刻 | 停留时间 | 应付(元) |n); =n); | %d:%d,p-p- | %d:%d,p-p- | %d:%d,b,c); | %a); |n); n); p); if(i=0) 祝您一路顺风,欢迎您下次光临 .); n 收 据 n); n 非会员 n); 车牌号 : ); p- n); =n); |进车场时刻 | 出车场时刻 | 停留时间 | 应付(元) |n); =n); 17 | %d:%d,p-p- | %d:%d,p-p- | %d:%d,b,c); | %0.1*a); |n); n); p); 输入有错,请重新输入: ); / ch=; D,n) /*车辆到达 ,D 为便道队列的指针 */ p;/*车辆结点 p*/ t;/*队列结点 t*/ p=(); ; /*清空缓存区 */ i; n 请输入车牌号(例 :n); p- ; 车辆在车场第 %d 位置 ., n 请输入到达时间 (小时 :分钟 ):); %d:%d,&(p-&(p-; if(p-24 | p-60) 18 输入的时间格式有错,请重新输入 :); %d:%d,&(p-&(p-; p-24 | p-60); p; /*把 p 结点赋值给车站 */ ); *车场已满,车进便道 */ n 请该车在便道稍作等待 !n); t=();/*开辟一个队列结点,它的数据结点是 p,它的 指针结点是空,队列的头与尾都是此结点 */ t-p; t- D-t; D-t; ); /车辆离开 ,输入车牌号离开 W,n) i=0,;/*要输出的位置 */ 0,*S;/开辟新的空间时是否是 p,*t; /车辆本生的结点是 p,车辆在队列中的结点是 t q; /判断车场内是否有车 ,队列结点 *q ) /车场有车 19 请输入出站车辆的车牌号: ); %s, i=0;i+) if(i+1-=0) i+1; ; 第 %d 车位没有此车 n,i+1); *车辆离开 */ ; *把剩余的车辆退出车站并送入临时栈内 */ *栈顶为空 */ p= /*p 是离开车辆的结点 */ *栈顶为空 */ 1) ; *把临时栈中的车辆重新开进车站 */ *临时栈为空 */ p); /*断通道上是否有车及车站是否已满 */ W-W-&*队列结点中头结点的指针结点 */ t=q-*车辆队列中要出去的结点的数据 */ ; n 现在请便道上的车进入车场 ,该车的车牌号为 :); t- n 该车进入车场第 %d 位置 ., n 请输入现在的时间 (即该车进站的时间 )(小时 :分钟 ):); %d:%d,&(t-&(t-; *控制到达的时间 */ if(t-24 | t-60) 输入的时间格式有错,请重新输入 !); %d:%d,&(t-&(t-; / ; t-24 | t-60); W-q- if(q=W- W- t; q); n 目前便道里没有车 .n); /*车场没车 */ n 目前车场里没有车,来车请直接进入车场 !n); W,n) /车辆离开 i, *p,*t; /车辆本生的结点是 p,车辆在队列中的结点是 t 21 q; /判断车场内是否有车 ,队列结点 q ) /车场有车 ) /输入离开车辆的信息 n 请输入要离开的车在车场的位置 /1-%d/: , %d,& if(1& * ; p= /p 是离开车辆的结点 1) ; p); /断通道上是否有车及车站是否已满 W-W-&; n 现在请便道上的车进入车场 ,该车的车牌号为 :); t- 22 n 该车进入车场第 %d 位置 ., n 请输入现在的时间 (即该车进站的时间 )(小时 :分钟 ):); %d:%d,&(t-&(t-; (t-24 | t-60) 输入的时间格式有错,请重新输入 !); %d:%d,&(t-&(t-; t-24 | t-60); W-q- if(q=W- W- t; q); n 目前便道里没有车 .n); /车场没车 n 目前车场里没有车,来车请直接进入车场 !n); S) /列表显示车场存车信息 i; -) /判断车站内是否有车 n 车场 :); n 位置 |到达时间 |车牌号 n); i=1;i+) %d ,i); 23 %d:%d ,S-i-i- -i- n 目前车场里没有车 ); W)/表显示便道信息 p; p=W- -W- n 目前正在等待车辆的号码为 :n); p!= p- p=p- n); n 目前便道里没有车 .); ,) *( 1选择 */ ;/*断返回主菜单 */ n); ) n 请选择 1|2|3:); %d,& if( 24 输入有误,请按要求重新输入 :); %d,& & ) 输入有误,请重新输入 :); %d,& 26 :n);*车辆进站 */ :n);*车辆出站 */ :n);,车牌号的离开 :*存车信息 */ :; /*退出系统 */ 八、测试报告 (一)测试用例(说明:测试用例合理并且足够,既有正确用例,也有错误用例,同时检验程序的正确性和强壮性) ,为了检验方便,我们以车场有 3个车位来做 : 27 1第一组测试用例 ( 1)测试输入:停车场的车辆离开,如下表: 服务选择 /是否是会员 车牌号 /车位 到达 /离开时间 1 5: 12 09:00 1 0:12 2 1 08:00 1 10:32 ( 2)测试目的:测试到达方法时间格式控制以及费用计算是否正确 28 ( 3)正确输出:第一次到达时应该会提示车辆进入第一个车道,第二次输入时间,会提示输入时间格式有错误,请重新输入 ,如图 1 第三次是 达车站,在第二个 位置,第四次输入 2,离开时输入 08:00 会提示输入离开时间比进站时间早,请重新输入,如图 2 第五次输入 10:32 时,会得到一个车辆清单,以及便道车辆情况,如图 3 ( 4)实际输出 (图 1) 29 (图 2) (图 3) ( 5) 错误原因:第一个错误是进入车站时的时间格式错了,第二个错误是进入车站的时间比离开时间晚 ( 6) 当前状态:已改正 30 2第二组测试用例 ( 1)测试输入:连续 5 辆车到达,如下表: 服务选择 车牌号 到达时间 1 7: 00 1 : 25 1 0: 40 1 1 4 1 2 3 ( 2)测试目的:测试到达方法与列表显示方法能否正确完成。 ( 3)正确输出:先到达的 3 辆车先进入停车场,最后到达的 2 辆在便道等候。 ( 4)实际输出: 31 (此时,车场内的信息如图所示) (此时,便道内有两辆车在等待) 32 3第三组测试用例 ( 1)测试输入:接上一步输入离开信息,下表: 服务选择 离开车位 离开时间 便道车进入时间 2 2 13: 40 13: 50 ( 2)测试目的:测试位置离开方法功能是否成功以及便道 进入车场是否正确。 ( 3)正确输出:输出 2 号车位的车辆离开信息清单,便道 1 号车进入停车场。 ( 4)实际输出: ( 5)错误原因:没有错误。 ( 6)当前状态:通过 33 ( 1)测试输入:接第上组输入离开信息,下表: 服务选择 车牌号 离开时间 便道车进入时间 会员收费 3 2 3:52 d 5 1 13:55 ( 2)测试目的:测试使用车牌号离开方法功能是否成功,会员制度健壮性以及便道进入车场是否正确。 ( 3)正确输出:选择 3 后,提示输入车牌号,输入 2图 4,会提示没有此车,再次输入 ,会员收费输入的 d 和 5,提示出错,如图 5 ( 4)实际输出: (图 4) 34 (图 5) ( 5)错误原因:输入的信息不合法 ( 6)当前状态:通过 (二)测试结果分析 此停车管理系统实现一个小的停车场的管理,健壮性较好,由于篇幅问题,没有测试更多,其“到达”与“离开”方法都相对比较完整,结算清单明了。 35 九、 课程设计总结 这次的课程设计使我们真正的能运用我们所学知识来做实际的事情,虽然此次的停车场运用程序不是特
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供热知识培训计划课件
- 2025年静电消除器项目合作计划书
- 2026届安徽省阜阳市太和中学化学高二第一学期期中检测模拟试题含解析
- 2025年调速永磁交流电动机项目建议书
- 2026届上海市闵行区闵行中学化学高一上期中学业质量监测试题含解析
- 2025年铑膦络合催化剂BC-2-007项目建议书
- 上海交大附属中学2026届高二化学第一学期期中质量跟踪监视模拟试题含解析
- 2025关于合同的有效性范例
- 供应室感染培训知识课件
- 人物速写蹲姿课件
- 2025年海南省警务辅助人员招聘考试(公共基础知识)历年参考题库含答案详解(5套)
- 2025年医学检验在编考试题库
- 2025年十八项医疗核心制度试题及答案
- 特色食品卖场建设方案(3篇)
- 工厂变更管理办法
- 物料预警管理办法
- 消费券提振机制-洞察及研究
- 2025年广东省中考生物试卷(含答案)
- 医疗器械产品设备质量保证措施
- 塑钢板桩施工技术与质量控制方案
- 部队车辆管理员岗位考试题及答案
评论
0/150
提交评论