停车场管理系统软件工程课程设计报告.docx
- 文档编号:29750496
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:26
- 大小:244.24KB
停车场管理系统软件工程课程设计报告.docx
《停车场管理系统软件工程课程设计报告.docx》由会员分享,可在线阅读,更多相关《停车场管理系统软件工程课程设计报告.docx(26页珍藏版)》请在冰豆网上搜索。
停车场管理系统软件工程课程设计报告
软件工程试卷(论文)
2014-2015学年第1学期
题目
停车场管理系统的分析和设计
学生姓名:
王琦
系另1」:
信息与计算科学系
专业年级:
2012级计算机科学与技术
指导教师:
刘兆辉
2015年1月1日
第一章项目概述3
1.1开发背景3
1.2开发目的3
1.3开发运行境3
1.4系统功能3
第二章需求分析4
2.1系统需求4
2.2功能需求4
2.3业务流图4
第三章总体设计6
3.1基本设计概念和处理流程6
3.2系统层次模图6
第四章数据库计7
4.1数据库的逻辑设计7
4.2数据库的配置10
第五章详细设计13
5.1主菜单模块的设计与实现13
5.2初始化模块的设计与实现:
14
5.3车辆进入模块的设计与实现14
5.4车辆离开并收费模块的设计与现15
第六章测试及提交16
七附:
模块源代码17
参考文献20
第一章项目概述
1.1开发背景:
近年来,随着我国经济的快速发展,人们生活水平的不断提高,物质需求和生活方式也发生着深刻的变化,以前属于奢侈品的汽车己经逐步走入了市民的日常生活。
伴随汽车消费大众化和各种机动车辆大范围内的迅速普及,车辆对其配
套设施特别是停车场提出了更高的要求。
停车是"速度为零的交通”,停车场及附属相关设施是静态交通的重要组成部分。
停车场收费管理系统是伴随着公用收费停车场这一新生事物而诞生的。
目前的多数停车场存在着以下几个问题,管理
漏洞、系统的可靠性、独立性强、收费过程比较繁琐、劳动强度高、停车场利用率低下、票款易流失等。
针对这些问题该停车场系统从以下方面进行设计。
针对
管理进行了优化,采用划卡消费和现金支付相结合,系统计时计费。
采用Java
高级编程语言和WEB相关技术开发设计管理系统软件,实现网络管理操作。
优化后的系统使用方便、服务高效、收费透明、防止票款的流失,提高可靠性同时也提高了操作者的工作效率。
1.2开发目的:
随着计算机技术的发展,在各行各业的应用越来越广泛,停车场管理由原来的人工管理进入计算机系统管理那是个必然趋势,计算机系统管理可以大大提高管理的效率和正确性
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到
达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。
停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留
在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟该停车场的管理。
1.3开发运行环境:
开发工具:
java语言
开发环境:
JDK
1.4系统功能:
(1)登录、注册功能.
(2)车辆离开查询功能
(3)车辆进入查询功能
第二章需求分析
2.1系统需求
根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。
车辆离开要计时计费。
另外,每天开始时,停车场要初始化。
22功能需求
实现停车场的现代化管理,记录车辆信息,动态分配车位,停车费用结算,查看停车场车位的使用状况,退出系统等功能,解决车辆停放难,乱收费等问题。
2.3业务流程图
图3-1
第三章总体设计
3.1基本设计概念和处理流程
互联网技术的飞速发展,Java等设计工具的方便实用,以及数据库技术的发展给本系统的设计和实现提供了技术上的支持。
系统基本的流程是:
用户登录->主界面->选择各项子系统
3.2系统层次模块图
停车场管理系统
word资料
退出系统
查看车位使用状况
计算停车费用
车辆离开信息
车辆到达信息
来车辆在便道上等候
有空余车位新到来车辆停放
每小时所需停车费用
离开时间
到达时间
第四章数据库设计
4.1数据库的逻辑设计:
F面给出各个表的详细结构。
表4-1-1卡信息表
字段名描述
类型长度
是否为空是否主键
id
自增int4
cardid
卡编号
varchar
20
是
否
cardno
卡号
varchar
20
是
否
cardtype
卡类型
varchar
20
是
否
cardmoney
余额
money
8
是
否
sendtime
发卡时间
datetime
8
是
否
activetime
有效时间
datetime
8
是
否
sendflag
已发
tinyint
1
是
否
loseflag
挂失
tinyint
1
是
否
表4-1-2停车场参数表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
parkname
停车场名字
varchar
20
是
否
parktotal
总车位
int
4
是
否
entertotal
入口车道数
int
4
是
否
exittotal
出口车道数
int
4
是
否
parktel
停车场电话
varchar
20
是
否
parkadd
停车场地址
varchar
20
是
否
表4-1-3
用户表
字段名
描述
类型
长度
是否为空
是否主键
id
编号
varchar
20
否
是
name
用户名
varchar
20
是
否
sex
性别
char
2
是
否
tel
电话
varchar
20
是
否
cardno
卡号
varchar
20
是
否
carno
车牌
varchar
20
是
否
address
地址
varchar
20
是
否
表4-1-4车信息表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
carid
编号
varchar
20
否
是
carno
车牌号
varchar
20
是
否
cartype
车类型
varchar
20
是
否
表4-1-5权限表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
poperatorid
编号
varchar
20
否
是
poperatornam
姓名
varchar
20
是
否
e
poperatorsex
性别
char
10
是
否
poperatorpsw
密码
varchar
20
是
否
poperatorrig
权限
varchar
20
是
否
ht
表4-1-6
时收费表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
timeno
时间号
int
4
否
是
starttime
开始时间
char
10
是
否
endtime
结束时间
char
20
是
否
表4-1-7
次收费表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
times_no
时间号
int
4
否
是
starttime
开始时间
char
10
是
否
endtime
结束时间
char
10
是
否
表4-1-8
入场表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
encardid
入场编号
varchar
20
否
否
encardno
卡号
varchar
20
是
否
encarno
车牌
varchar
20
是
否
enway
入场车道
varchar
20
是
否
entime
入场时间
datetime
8
是
否
enposition
指定车位
varchar
20
是
否
表4-1-9
出场表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
exited
出场编号
varchar
20
否
否
excardno
卡号
varchar
20
是
否
excarno
车牌
varchar
20
是
否
exway
出场车道
varchar
20
是
否
extime
出场时间
datetime
8
是
否
表4-1-10交班表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
tnoperator
操作员
varchar
20
否
否
tnlogintim
登录时间
datetime
8
是
否
e
tnturntime
交班时间
datetime
8
是
否
entimes
进场次数
int
4
是
否
extimes
出场次数
int
4
是
否
totalmoney
金额总计
money
8
是
否
表4-1-11
收费表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
chargeid
收费编号
varchar
20
否
否
chcardno
卡号
varchar
20
是
否
chcarno
车牌
varchar
20
是
否
chmoney
收费金额
money
8
是
否
表4-1-12
车位表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
cpcarno
车牌
varchar
20
是
否
positionst
车位状态
varchar
20
是
否
ate
表4-1-13收费标准表
字段名
描述
类型
长度
是否为空
是否主键
id
自增
int
4
否
是
chargestid
标准编号
int
4
是
否
cardtype
卡类型
varchar
20
是
否
cartype
车类型
varchar
20
是
否
chargetype
收费类型
varchar
20
是
否
timeno
时间编号
int
4
是
否
unittime
单位时间
int
4
是
否
unitsum
单位金额
int
4
是
否
mostsum
最大金额
int
4
是
否
4.2数据库设置模块:
此模块只有超级管理员才能进行相关的操作,一般用户无法进入该页面进行操
作。
所有的管理员级别的用户都有该超级管理员进行授权产生。
图4-2-1系统设置界面
管理员进入档案管理界面,查询操作员的权限档案信息,并可以进行添加删除
修改。
数据流程图
操作员档棄管理
厂
ID
用户名
|性别
协艮类型
厂
1006
her
3
male
操作员
厂
1010
爲
2
(female
操作员
r
1011
duan
2
male
揀作员
厂
1003-
operator
3
female
操作员
添加]修改|删除|
4-2-2档案管理界面
数据管理页面主要是对停车场的数据进行管理,场内车辆管理信息的查询,进
出场数据的查询,操作员收费金额信息的查询,以及操作员交班记录的查询。
在设计交班数据表中的数据时候,考虑到该表中的记录会在上班的过程中随时发生变化,所以在本系统中,所有与该表数据关联的模块中都实现了对交班记录表数据的更新。
由于这些记录可能会出现很多,所以在页面进行了分页显示。
实现对停车场和操作员的综合管理
交班记录
燥作貝
登象吋间
交班吋间
进场曲
出场次数
憧额总廿
a-dmin
2009-M-03
2C3335717
null
0
0
0.0
自drain
2009-06-03
20:
38:
53.687
2009-06-03
20^).29.327
D
0
0.0
2009-M-03
2t>40t35.a9
2009-06-03204039-157
0
D
0.0
2W9-O6-O3
2040:
45.937
2009-06-03
型48,11
0
0
0.0
admin
2009^06-03
20^0:
M.563
null
0
Q
0.0
共仍个记監分5页显示,療所在的瓦面是第,氏丄2345
□昭它理
□场内壬骑普理
□逬出卸霁営理
口收费金顧蚤诃
□艾班记录表
Q刪员页面
4-2-3数据管理页面
操作员登录该界面进行档案管理的功能,包括卡档案、车档案以及用户的档案
管理实现对以上档案的编辑
添加|俺改|删除|
4-2-4用户档案管理界面
如果有车入场,首先要检测一下是否还有空闲的车位,如果没有空闲车位,入场不成功。
这一过程的实现通过设置每个车位的状态来进行实现,每个车位的信
息都存储在车位信息表中。
入场管理需要手动输入一些信息,提交之后要进行必要的判断之后按照指定车位进入停车场,在指定车位的时候是根据车位在车位表中的顺序来进行指定的。
为了记录停车场的一些人员操作的信息,入场时的操作员实行自动签名的方式,实现该方式是根据其登陆时候的名称在入场模块中有系
统写入。
重置|
4-2-5入场数据页面
用户取车时操作员使用该功能,手动输入出场车辆的卡号,输入出场车道编号
Q出场管雀
□越勰藝
□出场数据查询
4-2-6出场数据页面
收费管理是停车场管理系统最重要的功能之一,综合以上入场时提供的信息,根据设置的计费标准计算出收费金额,并打印出收费清单。
收费清单
卡号
卡麴
车牌
|收
654321
[W卡
天型车
554321
126.0
12345
科卡
优型车
12345
加
654321
科卡
理车
654321
[126.0
654321
优型车|
654321
126.0
6^321
临时卡
大型车
654321
126.0
收换
--einni-inr»i!
ii«l
□朗收雙□按次收贲
□收费减畳u收賄准麺
4-2-7收费管理界面
第五章详细设置
程序系统的结构
main()函数体内包含了界面选则部分menu(),并单独抽出来作为一个独立
函数,目的在于系统执行每部分模块后能够方便返回到系统界面。
即main()函
数写为
如下:
开始
voidmain()/*主函数*/
{
menu();/*菜单函数*/
}
5.1主菜单模块的设计与实现:
贰*C:
\Docu>entsandSettings\Ad>ini3trator\桌面\Debug\Hl.exe
PlpasfliiphoX¥?
B^gupHUFfh"附€丄亠4》占[.J
5.2初始化模块的设计与实现:
5.3车辆进入模块的设计与实现:
PleasechoiceyournLimbep
[2]
0(从0道开始记
睛筮入该年次序号(从0号开始)泪陽丰应该看在停车场內第道0(从0道开始记)情蔬入该车进荐车场廿刻o小时整点计时5:
1
Pleasechoiceyournumber
[2]
PleasechoiceyournLimbep
[2]
睛筮入该年次序号(从0号开始)
2(从0道开始记
陽丰应该看在停车场內第道2(从0道开始记)情蔬入该车进荐车场廿刻⑺小时整点计时5:
3
以上分别举例0,1,2三个车的进场情况
5.4车辆离开并收费模块的设计与实现:
第六章测试及提交
七附:
模块源代码
7.1菜单函数
voidmenu(){
intn,w;
do
puts("\t\t**************MENU**************\n\n");
puts("\t\t\t1.
初始化");
puts("\t\t\t2.
有车进入");
puts("\t\t\t3.有车离开");
puts("\t\t\t4.退出");
puts("\n\n\t\t
*******************************
**\n");
printf("Pleasechoiceyournumber(1-4):
[]\b\b");
scanf("%d",&n);
if(n<1||n>4)/*对选择的数字作判断*/
w=1;
getchar();
}
elsew=0;
}while(w==1);
switch(n)
{
case1:
chushi();break;/*
初始化函数*/
case2:
jinru();break;/*
车辆进入函数*/
case3:
likai();break;/*
车辆离开函数*/
case4:
exit(0);/*退出*/
}
}
7.2初始化模块设计
structchangnei/*场内车道信息*/
{
intneikong;
}chn[N-1];
structchangwai/*场外车道信息*/
{
intwaikong;
}chw[M-1];
N和M分别是停车场和便道的车位预设值,用宏定义。
用户可根据实际情况改变
#defineN100/*预设停车场有100个车位*/
#defineM100/*预设便道有100个出位*/
voidchushi()/*初始化函数*/
{
inti,j;
for(i=0;i<=N-1;i++)
chn[i].neikong=0;/*将场内车道设置为空*/
for(j=0;jv=M-1;j++)
chw[i].waikong=0;/*将便道车道设置为空*/
menu();
}
函数出示化后将回到菜单界面
7.3车辆进入函数
structcar/*车辆信息*/
{
intcar_num;/*车辆次序号*/
intcar_arr;/*车辆到达时间*/
intcar_lef;/*车辆离开时间*/
intcar_stay;/*车辆停放位置*/
}car[CIXUHAO];
voidjinru()/*车辆进入函数*/
{
inti,a;
0号开始):
");
无车标记0*/
inth=0;
printf("\n\n请输入该车次序号
scanf("%d",&a);
for(i=0;i { if(chn[i].neikong==0);/* if(chn[i].neikong==1)/*有车标记1*/ h=h+1; if(h==N) printf("停车场内已停满,请停在便道上\n"); else { car[a].car_stay=h; chn[h].neikong=1; printf("该车应该停在停车场内第道%d(从0道开始记)\n",h); printf("请输入该车进停车场时刻(24小时整点计时): \n"); scanf("%d",&car[a].car_arr); } 便道上还有车吗? menu(); } 程序执行完后回到菜单。 7.4车辆离开函数 voidlikai()/*车辆离开函数*/ {inti,k,choi,time; doublefee; printf("请输入离开车辆次序号[],并将此车之后的车先全部退出停车 场! "); seanf("%d",&i); printf("\n请输入离开车辆的离开时刻(24小时整点计时): \n"); seanf("%d",&car[i].car_lef); fee=D*(car[i].car_lef-car[i].car_arr); time=car[i].car_lef-car[i].car_arr; printf("次序号%%d的车停车时间%c小时,应收费%f元\n",i,time,fee); printf("\n\n\n请让场内退出的车再依次进场! \n\n\n"); 因便 printf("便道上现在有车吗? (请选择1或2)\n1.有\n2.没有\n");/* 道上可能没有车,因此要做选择*/ scanf("%d",&choi); if(choi==2) { menu(); } if(choi==1) { printf("请让便道上的第一辆车进场\n"); printf("该车次序号为: \n"); scanf("%d",&k); printf("请输入该车进场时间: \n"); scanf("%d",&car[k].car_arr); menu(); 参考文献 [1]梁建全,周力,孟志勇,田利军.精通轻量级JavaEE框架整合方案[M].人民邮电出 版社,2008. [2]夏昕,曹晓刚,唐勇.深入浅出Hibernate[M].电子工业出版社,2005. [3]吕凤翥,马皓.Java语言程序设计[M].清华大学出版社,2006. [4]孙更新,宾晟,周峰.Struts框架结构的JavaWeb开发技术基础与实践教程[M].电 子工业出版社,2008. ⑸明日科技,梁冰,苏宇,吕继迪.JavaScr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 系统软件 工程 课程设计 报告