停车场管理系统数据结构课程设计报告.docx
- 文档编号:8773042
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:21
- 大小:272.29KB
停车场管理系统数据结构课程设计报告.docx
《停车场管理系统数据结构课程设计报告.docx》由会员分享,可在线阅读,更多相关《停车场管理系统数据结构课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
停车场管理系统数据结构课程设计报告
数据结构课程设计
题目:
停车场管理系统
学生姓名:
郑鹏
学 号:
1006402003
系 别:
计算机科学与技术
专 业:
计算机科学与技术
指导教师:
马竹根讲师
起止日期:
2012.3.26——2012.4.15
2012年4月19日
目录
摘要1
关键词1
1前言2
2需求分析3
2.1范围3
2.1.1标识3
2.1.2系统概述3
2.2需求概述3
2.2.1系统目标3
2.2.2运行环境4
2.2.2.1设备4
2.2.2.2支持程序4
2.2.3用户的特点4
2.3功能需求4
2.3.1系统用例图5
2.4实体关系图5
3概要设计7
3.1范围7
3.1.1标识7
3.1.2系统概述7
3.2系统结构7
3.3停车场管理系统界面设计7
4系统详细设计9
4.1范围9
4.1.1标识9
4.1.2系统概述9
4.2详细设计说明9
4.2.1登录界面设计9
5测试说明20
5.1范围20
5.1.1标识20
5.1.2系统概述20
5.2测试计划及预期结果20
5.3具体测试情况21
7总结25
参考文献26
致谢27
停车场管理系统的设计与开发
摘要
课程设计目的:
通过课程设计,加深对《数据结构》这一课程所学内容的进一步理解与巩固。
通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。
通过课程设计,训练C程序调试能力,能将一个中小型各级组织系统联调通过。
通过课程设计,开发一个中小型系统,掌握系统研发全过程。
通话课程设计,培养分析问题、解决实际问题的能力。
实现方法:
通过建立栈来模拟停车场,当栈未满时即停车场内车辆未满时,就可以停放车辆当停车场满了后车就得停靠在便道上等待。
建立一个队列来实现队列的功能,
最后根据车辆在停车场停靠的时间来收费,而在便道上停靠的时间里是不收费的。
系统特点:
采用一用户一口令的安全机制,只允许管理员输入正确密码,才能正常登录,提高了系统的安全性。
关键词
停车场,栈,队列。
1前言
[问题描述]
设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
试为停车场编制按上述要求进行管理的模拟程序。
[基本要求]
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
每一组输入数据包括三个数据项:
汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:
若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
栈以顺序结构实现,队列以链表实现。
[实现提示]
需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。
输入数据按到达或离去的时刻有序。
栈中每个元素表示一辆汽车,包含两个数据项:
汽车的牌照号码和进入停车场的时刻。
2需求分析
2.1范围
2.1.1标识
文件状态:
【】草稿
【】正式发布
【√】正在修改
文件标识:
需求分析报告
当前版本:
1.0
作者:
郑鹏
完成日期:
2011-4-3(根据进度写时间)
2.1.2系统概述
软件名称:
停车场管理系统
软件功能:
为停车场管理员提供记录车辆进入,车辆离开,修改车辆停车的单价,当车辆离开时,系统输出该车辆的信息和应交停车费用的功能。
用户:
停车场管理员
开发者:
郑鹏
2.2需求概述
2.2.1系统目标
系统的开发目标是实现一个基于在一个狭长的通道上的,而且只有一个大
门可以供车辆进出,并且要实现停车场内某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场的功能的停车场的功能,如在此停车场上实现记录车辆进入,车辆离开,修改车辆停车的单价,以及查看停车场中停车的状态和便道上等待车辆的信息,当车辆离开时,系统输出该车辆的信息和应交停车费用的功能。
2.2.2运行环境
2.2.2.1设备
计算机一台;
CPU奔腾系列以上;
内存512MB以上。
2.2.2.2支持程序
WindowsXP,Windows7,DOS,linux等操作系统同时需要支持VC语言。
2.2.3用户的特点
此系统为停车场系统管理人员专用。
2.3功能需求
系统功能:
停车场是只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
用户功能
记录车辆进入,车辆离开,修改车辆停车的单价,当车辆离开时,操作系统输出该车辆的信息和应交停车费用。
2.3.1系统用例图
系统整体用例图,系统适用于停车场管理员。
2.3.2用户登陆
用户登陆:
停车场管理员要使用本系统就必须先登录,登录部分要有完善的验证机制与防盗机制。
2.4实体关系图
1.系统用到实体的关系图,如某系统有车辆信息,车辆的实体图如下:
2.系统E-R图
车辆到达信息车辆离开信息
记录查看
管理员
修改
停车场单价
3概要设计
3.1范围
3.1.1标识
文件状态:
【】草稿
【】正式发布
【√】正在修改
文件标识:
概要设计报告
当前版本:
1.0
作者:
郑鹏
完成日期:
2011-4-7(具体完成时间,不得全文都一个时间)
3.1.2系统概述
软件名称:
停车场管理系统。
软件功能:
为停车场管理员提供记录车辆进入,车辆离开,修改车辆停车的单价,当车辆离开时,系统输出该车辆的信息和应交停车费用的功能。
用户:
停车场管理员
开发者:
郑鹏。
3.2系统结构
系统采用顺序栈和链式队列结构,用户界面通过DOS操作来实现,主要的业务逻辑在顺序栈和队列中实现。
3.3停车场管理系统界面设计
这个程序用来实现对停车场内车辆的管理,整个操作界面为中文,更加符合人性化的标准,使得用户使用方便,而且每一个操作都有提示,使得初次接触该程序的用户也能很快适应程序的操作。
这个程序操作简单,对于车牌号,只需输入现实中的车牌号就行,对于时间请直接输入整数时间,只需输入当时的小时就行。
4系统详细设计
4.1范围
4.1.1标识
文件状态:
【】草稿
【】正式发布
【√】正在修改
文件标识:
详细设计报告
当前版本:
1.0
作者:
郑鹏
完成日期:
2011-4-12
4.1.2系统概述
软件名称:
停车场管理系统。
软件功能:
为停车场管理员提供记录车辆进入,车辆离开,修改车辆停车的单价,当车辆离开时,系统输出该车辆的信息和应交停车费用的功能。
用户:
停车场管理员
开发者:
郑鹏
4.2详细设计说明
4.2.1登录界面设计
运行程序,直接进入欢迎界面,在此界面管理员输入用户名以及密码进行登录,此处采用一用户一口令的登录机制,如此完善的验证机制与防盗机制,使得系统的安全性更高。
登陆之后是主菜单界面,在主菜单界面进行选择,有4个选项,A.车辆到达,D.车辆离开,P.修改单价,E.退出系统。
当用户选择A时,界面提示输入车辆车牌,若停车场已满,系统提示停车场已满,进入便道等待,否则提示输入进入时间,接着是提示车辆进入车位。
若选择D,系统提示离开车辆车位,离开时间,系统打印出费用收据以及显示车辆进场时刻、出场时间、停留时间、应付金额。
在主菜单选择P,则系统提示请输入单价,输入单价后修改成功,又返回主菜单。
在主菜单中选择E,则直接退出系统。
1.运行后的程序主界面
2.登陆界面
3.登陆成功后的主界面
代码部分
1.登入界面
#include
#include
#include
intmain()
{
char*nUserName="CEO";//设置的用户名
char*nPassWord="123456";//设置的密码
chargetUserName[20];//用来临时保存输入的用户名
chargetPassWord[20];//用来临时保存输入的密码
charch;
inti,j;
for(j=0;j<3;j++)
{
while
(1)//无限循环,直到用户名和密码都正确为止
{
//输入用户名
printf("\n请输入您的管理员帐号:
");
i=0;
while
(1)
{
ch=getch();
//按回车结束输入
if(ch==13)
{
getUserName[i]='\0';
break;
}
//退格键删除
elseif(ch==8)
{
if(i>0)
{
printf("\b\b");
i--;
}
}
//只有合法的字符才能被输入
elseif((ch>='A'&&ch<='Z')
||(ch>='a'&&ch<='z')
||(ch>='0'&&ch<='9'))
{
getUserName[i++]=ch;
putchar(ch);
}
}
//输入密码
printf("\n请输入密码:
");
i=0;
while
(1)
{
ch=getch();
//按回车结束输入
if(ch==13)
{
getPassWord[i]='\0';
break;
}
//退格键删除
elseif(ch==8)
{
if(i>0)
{
printf("\b\b");
i--;
}
}
//只有合法的字符才能被输入
elseif((ch>='A'&&ch<='Z')
||(ch>='a'&&ch<='z')
||(ch>='0'&&ch<='9'))
{
getPassWord[i++]=ch;
putchar('*');
}
}
//只有匹配成功,才能退出循环
if(!
strcmp(nUserName,getUserName)
&&!
strcmp(nPassWord,getPassWord))
{
cout< printf("\n欢迎进入停车系统! \nPressanykeytocontinue! "); break; } else { printf("\nPassworderror! \n"); } } getch(); return0; if(j==3) { printf("输入超过三次! 请仔细查证! \n"); } } } 2.主界面代码: voidmain() { intpri=2; intzhanghao(); intm=100; charflag;//进入或离开的标识; stackheadsting,slinshi;//停车场和临时倒车场堆栈的定义; linkqueueline;//队列的定义; initstack(sting);//构造停车场堆栈sting initstack(slinshi);//构造倒车场堆栈slinshi initqueue(line);//构造便道队列line zhanghao(); system("cls"); while(m) { cout<<"\n**停车场管理程序**"< cout<<"================================================================================"< cout<<"****A---汽车进车场D---汽车出车场****"< cout<<"****P---修改单价E---退出程序****"< cout<<"================================================================================"< cout<<"请选择: (A,D,E): "; cin>>flag; switch(flag) { case'A': jinru(sting,line);system("pause");system("cls");break;//汽车进车场 case'D': likai(sting,slinshi,line,pri);break;//汽车出车场 case'P': pri=xiugaidanjia();break;//修改单价 case'E': system("cls");exit(0); } m--; } } 5测试说明 5.1范围 5.1.1标识 文件状态: 【】草稿 【】正式发布 【√】正在修改 文件标识: 需求分析报告 当前版本: 1.0 作者: 郑鹏 完成日期: 2011-4-19 5.1.2系统概述 软件名称: 停车场管理系统。 软件功能: 为停车场管理员提供记录车辆进入,车辆离开,修改车辆停车的单价,系统输出该车辆的信息和应交停车费用的功能。 用户: 停车场管理员。 开发者: 郑鹏。 5.2测试计划及预期结果 1.在停车场管理系统主界面选P.修改单价(初始为2元),输入单价: 2元。 2.在主界面中选A.车辆到达,输入车牌号: 123,输入到达时间10。 3.继续选A.车辆到达,输入车牌号: 234,输入到达时间11。 4.继续选A.车辆到达,输入车牌号: 345,系统提示: 停车场已满,该车先停在便道的第一个位置。 5在主界面中选D.车辆离开,输入车牌号: 123,输入离开时间12.然后系统显示该车(车牌123)的收据,收据详细内容有该‘车进场时刻=10’、‘出场时刻=12’、‘停留时间=2’、‘应付=4’。 5.3具体测试情况 1.在停车场管理系统主界面选P.修改单价,输入单价: 1,结果如下图: 2..在主界面中选A.车辆到达,输入车牌号: 123,输入到达时间10, 结果如下图: 3...继续选A.车辆到达,输入车牌号: 234,输入到达时间11,结果如下图: 4.继续选A.车辆到达,输入车牌号: 345,输入到达时间12,结果如下图: 5.选D.车辆离开,输入车在车牌号,输入离开时间: 12,结果如下图: 通过程序测试,具体测试结果与测试计划及预期结果基本相同,说明此停车场管理系统基本达到了设计目的。 7总结 通过这次课程设计首先加深了对《数据结构》这一课程所学内容的进一步理解和巩固,特别是对顺序栈以及链式队列的结构编程的运用这一块,因为此次停车场管理系统的设计与开发主要用的就是这两种数据结构。 在进行系统开发的准备阶段,也就是进行需求分析阶段,对系统功能进行分析,并设计合理的模块化结构,提高了对问题分析和设计的能力。 在进行系统开发的阶段能运用合理的控制流程编写清晰高效的程序,也训练了C语言程序的调试能力,能将一个小型各级组织系统联调通过,基本上可以完成每一项功能。 汽车进入停车场的信息、离开停车场的信息以及通道上的信息都可以在程序上一一实现。 但是,该程序也有不足的地方,就是管理员账号无法修改登录密码以及不能随意定义停车场的容量还有一些兼容性不是很好,不过为了简便代码,所以未实现这一功能。 同时我觉得这一系统也一点可改进的方面在于还应该增加时间的判断功能,即停车场内有可能有车辆停放时间超过一天。 总之,在这次对于停车场管理系统的课程设计中。 我的收获还是挺多的,在系统开发中,使得我将计算机课程所学知识与实际问题很好的相联接在了一起。 参考文献 [1]数据结构理论与实践杨永斌主编天津科学技术出版社 [2]VisualC++课程设计与系统开发案例伍俊良编著清华大学出版社 [3]C++程序设计谭浩强编著清华大学出版社 [4]求实科技.数据库通用模块及典型系统开发[M].人民邮电出版社,2006. [5]陈刚.CSS标准网页布局开发指南[M].清华大学出版社,2007. [6]尹堃.浅谈ASP.NET技术的应用[J].硅谷动力,2009,(07). [7]蔡义忠.在ASP.NET应用开发中验证码的设计[J].黄冈职业技术学院学报,2009,(01). [8]徐安凤,黄河涛.基于ASP.NET2.0的文件上传研究[J].福建电脑,2009,(03). [9]胡晓庆.多层架构在WEB程序设计中的应用[J].兵工自动化,2007,(03). [10]廖作斌,徐智.基于ASP.NET技术的数据库访问通用类设计[J].福建电脑,2006,(11). [11]程宴,徐征.ASP.NET的网站新闻管理系统的设计与开发[J].舰船电子工程,2008,(08). 致谢 经过二十几天的忙碌,在老师安排的进度下,虽然完成停车场管理系统,但还有有一些不足,还是处于一个草稿的阶段。 由于是第一次做系统,遇到一些问题,在老师和同学的帮助下,顺利的将这些问题解决。 同时通过查阅图书馆的书籍文献资料和网络上的资料,使我更容易的完成此次课程设计。 通过这次课程设计,使我将课堂上学到的知识与现实结合,更好的实践了所学的知识。 能够顺利完成此次课程设计,我要衷心的感谢老师的指导和帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 系统 数据结构 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)