完整版软件工程与计算毕业课程设计停车管理系统软件124何航12Word下载.docx
《完整版软件工程与计算毕业课程设计停车管理系统软件124何航12Word下载.docx》由会员分享,可在线阅读,更多相关《完整版软件工程与计算毕业课程设计停车管理系统软件124何航12Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
![完整版软件工程与计算毕业课程设计停车管理系统软件124何航12Word下载.docx](https://file1.bdocx.com/fileroot1/2022-10/19/9b463047-523e-4ce2-adaa-ad3124d5c9a4/9b463047-523e-4ce2-adaa-ad3124d5c9a41.gif)
根据车场内车道狭长且为一边开口的特点,将车道用先进后出的栈结构来描述。
外面狭长的通道,为先进先出,可采用队列结构,为方便起见,采用链式队列结构来描述。
本程序中的数据对象是汽车,为使操作更方便,将给每辆进车道的汽车编号,根据编号出场。
其中,还包括入场时间、出厂时间、收取费用等项。
关键字:
停车场管理系统栈结构队列结构软件工程
1需求分析1
1.1引言1
1.1.1设计目的1
1.1.2任务概述1
1.2基本要求1
1.3系统用户分析2
1.4用数据流程图描述2
2概要设计4
2.1设计思想4
2.2实现方法4
2.3主要模块4
2.4各模块的主要功能及实现5
2.2.1车辆到达模块5
2.2.2车辆离开模块5
2.2.3停车场内与通道停放车辆的信息模块5
2.2.4获取时间6
2.5函数间调用关系6
3详细设计8
3.1界面及各模块详细设计8
4系统测试10
4.1功能测试10
4.1.1车进站时车牌号的测试10
5总结12
5.1用户手册12
5.2设计体会12
参考文献13
附14
1需求分析
1.1引言
1.1.1设计目的
a.通过课程设计,加深对软件工程思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
b.通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。
通过课程设计,训练C程序调试能力,能将一个中小型各级组织系统联调通过。
c.通过课程设计,开发一个中小型系统,掌握运用软件工程思想研来发系统全过程。
d.通话课程设计,培养分析问题、解决实际问题的能力。
1.1.2任务概述
设有一个可以停放20辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满20辆车,则后来的车辆只能在停车场大门外的通道上等待,一旦停车场内有车开走,则排以便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在通道上等待的车辆的次序。
编制一程序模拟该停车场的管理。
要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。
1.2基本要求
要求程序输出每辆车到达后的停车位置(停车场),以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。
1.3系统用户分析
“停车场管理系统”主要是针对车辆存取工作而开发的应用软件。
通常有系统管理员、停车场车辆管理员和顾客三种用户,他们的使用权限如下:
系统管理员:
计算机人员,对系统进行维护。
图书管理员:
对停车信息进行数据操作。
顾客:
仅限于查阅。
1.4用数据流程图描述
图1-1是根据操作流程建立的流程图。
表1-1是车能否进停车场的判定表。
图1-1停车场流程图
车场内车数
<
20
>
车牌号位数
2或>
5
2且<
进站
√
进通道
表1-1进站停车判定表
2概要设计
2.1设计思想
此停车场管理系统是在一个狭长的通道上的,而且只有一个大门可以供车辆进出,并且要实现停车场内某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场的功能,就可以设计两个堆栈,其中一个堆栈用来模拟停车场,另一个堆栈用来模拟临时停车场,该临时停车场用来存放当有车辆离开时,原来停车场内为其让路的车辆。
至于当停车场已满时,需要停放车辆的通道可以用一个链队列来实现。
当停车场内开走一辆车时,通道上便有一辆车进入停车场,此时只需要改变通道上车辆结点的连接方式就可以了,使通道上第一辆车进入停车场这个堆栈,并且使通道上原来的第二辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头结点连到原来的第二辆车上就可以了。
2.2实现方法
对于此停车场管理系统的实现,就是用两个堆栈来分别模拟停车场以及停车场内车辆为其它车辆让路时退出停车的临时停放地点。
至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需改变此链队列上的结点而已。
对于要对停车场内的车辆根据其停放时间收取相应的停车费用,可以记录下车辆进入以及离开停车场的时间,再用时间差乘以相应的单价并且打印出最后的费用就可以实现了。
2.3主要模块
①此停车场管理系统,主要分为以下若干模块:
首先定义用来模拟停车场的堆栈以及用来模拟通道的链队列为全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。
在主函数中首先打印出此停车场管理系统选择页面,在用户的选择过程中,程序又分别调用车辆的到达、车辆的离开、停车场内与通道停放车辆的信息以及获取时间这四个函数模块。
其中,在车辆的离开那个模块函数中又调用了打印离开车辆信息的函数,在停车场内停放车辆信息的那个模块函数中,又分别调用了显示停车场上车辆信息的函数以及显示便道上车辆信息的函数。
最后,从调用的这四个函数中回到主函数结束整个程序的运行。
2.4各模块的主要功能及实现
2.2.1车辆到达模块
此模块主要实现车辆进入停车场功能,通过判断合法性决定车辆能否进入停车场。
实现伪码:
If车场内车数<
20辆and车牌号码合法then
车辆进入停车场并编号及记录时间
Endif
If车场已满then
进入通道
车牌号码合法性判断伪码:
If车牌号位数>
2and<
5and无重复车牌then
车牌号码合法
2.2.2车辆离开模块
此模块主要实现车辆离开停车场功能,并能打印出车辆停留时间及费用。
If车场不为空and序号存在then
车辆出停车场并打印出进出时间及费用
2.2.3停车场内与通道停放车辆的信息模块
此模块主要实现车场车辆的停放及通道的利用,是本设计的核心。
就是用两个堆栈来分别模拟停车场以及停车场内车辆为其它车辆让路时退出停车的临时停放地点。
至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需改变此链队列上的结点。
模块中出现的函数:
voidinit(SeqStack*s);
intisemptystack(SeqStack*s);
intisfullstack(SeqStack*s);
voidpush(SeqStack*s);
structcarpop(SeqStack*s,structcarx);
cargettop(SeqStack*s);
voidinitq(linkq*q);
voidaddq(linkq*q,structcarx);
structcardelq(linkq*q);
intisemptyq(linkq*q);
voidprintout(structcar*x);
voidprintq(linkq*q);
voidreview(SeqStack*s,linkq*q);
2.2.4获取时间
该模块主要获取车辆时间信息,用以计算车辆停车费用。
2.5函数间调用关系
如下图2-1所示
图2-1函数调用关系图
图中函数解释:
review查看车站内及通道内停车情况函数。
incar车进站函数。
outcar车出站函数。
clear定义数组函数。
printstack车进站时输入信息显示,及提示站内情况函数。
printq进过道信息函数。
gettime获取时间函数。
printout出站时的信息函数。
3详细设计
3.1界面及各模块详细设计
进入界面后如下图所示。
图3-1首界面
测试要点:
各选项与相应的功能能否成功连接。
1.车进站
(1).功能:
添加车牌号排序后进站。
(2).输入项:
车牌号。
(3).输出项:
车在车站内的“位置”“车牌”“进站时间”“站内状况”。
(4).测试要点:
注意不合法的车牌号能否在系统通过。
2.车出站
实现收费后出车站。
车序号。
车的“车牌”“进站时间”“进出站”状态“出站时间”“原来位置”“停留时间”“费用”。
要出站的车序号是否存在。
3.查看车站及过道中的情况
查看车站及过道中车辆情况。
查看提示。
车场内状态即停车数量,以及通道内停车数量。
能否正确显示车的数量。
4.获取帮助
放回到开始界面。
(2).测试要点:
能否正确返回。
5.结束
结束程序。
4系统测试
4.1功能测试
4.1.1车进站时车牌号的测试
1.划分等价类及测试用例如下表所示。
假设此时站内有一辆编号为ABC的车。
表4-1车牌号等价类划分表
输入条件
合理等价类
不合理等价类
长度
(1)小于5个字符,大于2个字符
(3)小于2个字符
(4)大于5个字符
字符
(2)与站内车牌不重复
(5)与站内车牌相同
表4-2车牌号测试用例
测试结果
期望结果
覆盖范围
ddd
有效
(1)
(2)
A
无效
(3)
123456
(4)
ABC
(5)
2.车出站时的序号测试
假设此时站内有一辆编号为ABC的车,车的序号为1。
表4-3车序号的合理等价类
存在性
(1)存在
(2)不存在
表4-4车序号的测试用例
1
(1)
3
(2)
5总结
5.1用户手册
这个程序用来实现对停车场内车辆的管理,整个操作界面为中英文结合,更加符合人性化的标准,使得用户使用方便,而且每一个操作都有提示,使得初次接触该程序的用户也能很快适应程序的操作。
这个程序操作简单,对于进出停车场的时间,也简化了操作,系统会自动获取提交时的时间,即进站和出站的时间。
而且该程序也给用户提供了选择的机会,当点击运行该程序后,如果想退出程序,可以输