软件工程课程设计-停车管理系统(包含源代码)(共26页).doc
《软件工程课程设计-停车管理系统(包含源代码)(共26页).doc》由会员分享,可在线阅读,更多相关《软件工程课程设计-停车管理系统(包含源代码)(共26页).doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上学 年 设 计课程名称:软件工程学年设计实验项目:停车场收费管理系统姓 名:XXX专 业:计算机科学与技术班 级:XXX学 号:XXXX指导教师XXX计算机科学与技术学院实验教学中心XXXX年XX月XX日摘要 目前,我国经济逐渐发达,自行车王国逐步向汽车进军。因此,大量的停车场也随之而至。虽然某些大型停车场在工作中已经开始向计算机化靠拢,但仍不够完善。而中小型停车场更为稀少,陈旧的管理手段给顾客带来极大的不便,同时为了提高工作效率及服务质量,一套完整的停车厂管理系统的出现就十分必要了。本次设计,仅为一个简单的小型停车场管理系统。采用C语言编写,为dos界面。主要强调车
2、辆的进站和出站操作,以及车场和通道之间的相互关系。根据车场内车道狭长且为一边开口的特点,将车道用先进后出的栈结构来描述。外面狭长的通道,为先进先出,可采用队列结构,为方便起见,采用链式队列结构来描述。本程序中的数据对象是汽车,为使操作更方便,将给每辆进车道的汽车编号,根据编号出场。其中,还包括入场时间、出厂时间、收取费用等项。关键字:停车场管理系统 栈结构 队列结构 软件工程 目录专心-专注-专业1需求分析1.1 引言1.1.1 设计目的a.通过课程设计,加深对软件工程思想的理解,能对系统功能进行分析,并设计合理的模块化结构。b. 通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高
3、效的程序。通过课程设计,训练C程序调试能力,能将一个中小型各级组织系统联调通过。c. 通过课程设计,开发一个中小型系统,掌握运用软件工程思想研来发系统全过程。d. 通话课程设计,培养分析问题、解决实际问题的能力。1.1.2 任务概述设有一个可以停放20辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满20辆车,则后来的车辆只能在停车场大门外的通道上等待,一旦停车场内有车开走,则排以便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它
4、让路,待其开出停车场后,这些辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在通道上等待的车辆的次序。编制一程序模拟该停车场的管理 。要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。1.2 基本要求要求程序输出每辆车到达后的停车位置(停车场),以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。1.3 系统用户分析“停车场管理系统”主要是针对车辆存取工作而开发的应用软件。通常有系统管理员、停车场车辆管理员和顾客三种用户,
5、他们的使用权限如下:系统管理员:计算机人员,对系统进行维护。图书管理员:对停车信息进行数据操作。顾客:仅限于查阅。1.4 用数据流程图描述图1-1是根据操作流程建立的流程图。表1-1是车能否进停车场的判定表。 图1 -1 停车场流程图车场内车数202020车牌号位数52且552且5进站进通道表1-1 进站停车判定表2概要设计2.1 设计思想此停车场管理系统是在一个狭长的通道上的,而且只有一个大门可以供车辆进出,并且要实现停车场内某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场的功能,就可以设计两个堆栈,其中一个堆栈用来模拟停车场,另一
6、个堆栈用来模拟临时停车场,该临时停车场用来存放当有车辆离开时,原来停车场内为其让路的车辆。至于当停车场已满时,需要停放车辆的通道可以用一个链队列来实现。当停车场内开走一辆车时,通道上便有一辆车进入停车场,此时只需要改变通道上车辆结点的连接方式就可以了,使通道上第一辆车进入停车场这个堆栈,并且使通道上原来的第二辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头结点连到原来的第二辆车上就可以了。2.2 实现方法对于此停车场管理系统的实现,就是用两个堆栈来分别模拟停车场以及停车场内车辆为其它车辆让路时退出停车的临时停放地点。至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进
7、入停车场只需改变此链队列上的结点而已。对于要对停车场内的车辆根据其停放时间收取相应的停车费用,可以记录下车辆进入以及离开停车场的时间,再用时间差乘以相应的单价并且打印出最后的费用就可以实现了。2.3 主要模块此停车场管理系统,主要分为以下若干模块:首先定义用来模拟停车场的堆栈以及用来模拟通道的链队列为全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。在主函数中首先打印出此停车场管理系统选择页面,在用户的选择过程中,程序又分别调用车辆的到达、车辆的离开、停车场内与通道停放车辆的信息以及获取时间这四个函数模块。其中,在车辆的离开那个模块函数中又调用了打印离开车辆信息的函数,在停车场内
8、停放车辆信息的那个模块函数中,又分别调用了显示停车场上车辆信息的函数以及显示便道上车辆信息的函数。最后,从调用的这四个函数中回到主函数结束整个程序的运行。2.4 各模块的主要功能及实现2.2.1 车辆到达模块此模块主要实现车辆进入停车场功能,通过判断合法性决定车辆能否进入停车场。实现伪码:If 车场内车数2 and 5 and 无重复车牌 then车牌号码合法End if2.2.2 车辆离开模块此模块主要实现车辆离开停车场功能,并能打印出车辆停留时间及费用。实现伪码:If 车场不为空 and 序号存在 then车辆出停车场并打印出进出时间及费用End if2.2.3 停车场内与通道停放车辆的信
9、息模块 此模块主要实现车场车辆的停放及通道的利用,是本设计的核心。就是用两个堆栈来分别模拟停车场以及停车场内车辆为其它车辆让路时退出停车的临时停放地点。至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需改变此链队列上的结点。模块中出现的函数:void init (SeqStack *s);int isemptystack (SeqStack *s);int isfullstack (SeqStack *s);int isfullstack (SeqStack *s);void push (SeqStack *s);struct car pop (SeqStack
10、 *s,struct car x);car gettop (SeqStack *s);void initq(linkq*q);void addq(linkq*q,struct car x);struct car delq(linkq *q);int isemptyq(linkq *q);void printout(struct car *x);void printq(linkq *q);void review(SeqStack*s,linkq*q);2.2.4 获取时间该模块主要获取车辆时间信息,用以计算车辆停车费用。2.5 函数间调用关系如下图2-1所示主函数 reviewincar用户界面
11、outcarclearprintstackprintqgettimeprintoutincaroutcar主函数结束图2-1 函数调用关系图图中函数解释:review 查看车站内及通道内停车情况函数。incar 车进站函数。outcar 车出站函数。clear 定义数组函数。printstack 车进站时输入信息显示,及提示站内情况函数。printq 进过道信息函数。gettime 获取时间函数。printout 出站时的信息函数。3详细设计3.1 界面及各模块详细设计进入界面后如下图所示。图3- 1 首界面测试要点:各选项与相应的功能能否成功连接。1.车进站(1).功能:添加车牌号排序后进站
12、。(2).输入项:车牌号。(3).输出项:车在车站内的“位置”“车牌”“进站时间”“站内状况”。(4).测试要点:注意不合法的车牌号能否在系统通过。2.车出站(1).功能:实现收费后出车站。(2).输入项:车序号。(3).输出项:车的“车牌”“进站时间”“进/出站”状态“出站时间”“原来位置”“停留时间”“费用”。(4).测试要点:要出站的车序号是否存在。3.查看车站及过道中的情况(1).功能:查看车站及过道中车辆情况。(2).输入项:查看提示。(3).输出项:车场内状态即停车数量,以及通道内停车数量。(4).测试要点:能否正确显示车的数量。4.获取帮助(1).功能:放回到开始界面。(2).测
13、试要点:能否正确返回。5.结束(1).功能:结束程序。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)无效(4)ABC无效(5)2.车出站时的序号测试1.划分等价类及测试用例如下表所示。假设此时站内有一辆编号为ABC的车,车的序号为1。表4-3 车序号的合理等
14、价类输入条件合理等价类不合理等价类存在性(1)存在(2)不存在表4-4 车序号的测试用例测试结果期望结果覆盖范围1有效(1)3无效(2)5总结5.1 用户手册这个程序用来实现对停车场内车辆的管理,整个操作界面为中英文结合,更加符合人性化的标准,使得用户使用方便,而且每一个操作都有提示,使得初次接触该程序的用户也能很快适应程序的操作。这个程序操作简单,对于进出停车场的时间,也简化了操作,系统会自动获取提交时的时间,即进站和出站的时间。而且该程序也给用户提供了选择的机会,当点击运行该程序后,如果想退出程序,可以输入END退出该运行程序。至于使用过程中的更具体的问题,可以参照该报告书中详细设计,整个
15、程序的运行界面大致就如详细设计中屏幕截图的内容。5.2 设计体会通过这一周的课程设计,加深了我对数据结构这门课程所学内容的进一步的理解与掌握;同时,通过对停车场管理系统的开发,使得我将计算机课程所学知识与实际问题很好地相联接在了一起。在这次课程设计中,不仅培养了我开发一个中小型程序的能力,而且也培养了我的团队合作能力。在这次对停车场管理系统的开发过程中,我们小组成员互相合作,互相帮助,其中有程序功能成功实现时的欣喜,也有遇到问题、解决问题时的执着以及迷茫。在这次课程设计中,使得我很好地了解了在开发程序过程中合作的重要性。在这周课程设计中,我们小组所开发的停车场管理系统,基本上可以完成每一项功能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课程设计 停车 管理 系统 包含 源代码 26
限制150内