停车场管理系统软件工程课程设计.docx

上传人:b****6 文档编号:3413668 上传时间:2022-11-22 格式:DOCX 页数:22 大小:275.59KB
下载 相关 举报
停车场管理系统软件工程课程设计.docx_第1页
第1页 / 共22页
停车场管理系统软件工程课程设计.docx_第2页
第2页 / 共22页
停车场管理系统软件工程课程设计.docx_第3页
第3页 / 共22页
停车场管理系统软件工程课程设计.docx_第4页
第4页 / 共22页
停车场管理系统软件工程课程设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

停车场管理系统软件工程课程设计.docx

《停车场管理系统软件工程课程设计.docx》由会员分享,可在线阅读,更多相关《停车场管理系统软件工程课程设计.docx(22页珍藏版)》请在冰豆网上搜索。

停车场管理系统软件工程课程设计.docx

停车场管理系统软件工程课程设计

 

软件工程试卷(论文)

2014-2015学年第1学期

 

题目:

停车场管理系统的分析和设计

学生姓名:

王琦

系别:

信息与计算科学系

专业年级:

2012级计算机科学与技术

指导教师:

刘兆辉

 

2015年1月1日

第一章项目概述…………………………………………………………………3

1.1开发背景………………………………………………………………………3

1.2开发目的……………………………………………………………………3

1.3开发运行境……………………………………………………………………3

1.4系统功能………………………………………………………………………3

第二章需求分析…………………………………………………………………4

2.1系统需求………………………………………………………………………42.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系统需求

根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。

车辆离开要计时计费。

另外,每天开始时,停车场要初始化。

2.2功能需求

实现停车场的现代化管理,记录车辆信息,动态分配车位,停车费用结算,查看停车场车位的使用状况,退出系统等功能,解决车辆停放难,乱收费等问题。

2.3业务流程图

车进入车场

 

输入离开车辆的离开时间,进行停车费用的计算

 

 

 

图3-1

 

第三章总体设计

3.1基本设计概念和处理流程

互联网技术的飞速发展,Java等设计工具的方便实用,以及数据库技术的发展给本系统的设计和实现提供了技术上的支持。

系统基本的流程是:

用户登录->主界面->选择各项子系统。

3.2系统层次模块图

 

 

 

第四章数据库设计

4.1数据库的逻辑设计:

下面给出各个表的详细结构。

表4-1-1卡信息表

字段名

描述

类型

长度

是否为空

是否主键

id

自增

int

4

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

poperatorname

姓名

varchar

20

poperatorsex

性别

char

10

poperatorpsw

密码

varchar

20

poperatorright

权限

varchar

20

表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

tnlogintime

登录时间

datetime

8

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

positionstate

车位状态

varchar

20

 

表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系统设置界面

管理员进入档案管理界面,查询操作员的权限档案信息,并可以进行添加删除修改。

数据流程图

4-2-2档案管理界面

数据管理页面主要是对停车场的数据进行管理,场内车辆管理信息的查询,进出场数据的查询,操作员收费金额信息的查询,以及操作员交班记录的查询。

在设计交班数据表中的数据时候,考虑到该表中的记录会在上班的过程中随时发生变化,所以在本系统中,所有与该表数据关联的模块中都实现了对交班记录表数据的更新。

由于这些记录可能会出现很多,所以在页面进行了分页显示。

实现对停车场和操作员的综合管理

4-2-3数据管理页面

 

操作员登录该界面进行档案管理的功能,包括卡档案、车档案以及用户的档案管理实现对以上档案的编辑。

4-2-4用户档案管理界面

 

如果有车入场,首先要检测一下是否还有空闲的车位,如果没有空闲车位,入场不成功。

这一过程的实现通过设置每个车位的状态来进行实现,每个车位的信息都存储在车位信息表中。

入场管理需要手动输入一些信息,提交之后要进行必要的判断之后按照指定车位进入停车场,在指定车位的时候是根据车位在车位表中的顺序来进行指定的。

为了记录停车场的一些人员操作的信息,入场时的操作员实行自动签名的方式,实现该方式是根据其登陆时候的名称在入场模块中有系统写入。

4-2-5入场数据页面

 

用户取车时操作员使用该功能,手动输入出场车辆的卡号,输入出场车道编号。

4-2-6出场数据页面

 

收费管理是停车场管理系统最重要的功能之一,综合以上入场时提供的信息,根据设置的计费标准计算出收费金额,并打印出收费清单。

4-2-7收费管理界面

第五章详细设置

 

程序系统的结构

main()函数体内包含了界面选则部分menu(),并单独抽出来作为一个独立函数,目的在于系统执行每部分模块后能够方便返回到系统界面。

即main()函数写为

如下:

 

voidmain()/*主函数*/

{

menu();/*菜单函数*/

}

 

5.1主菜单模块的设计与实现:

5.2初始化模块的设计与实现:

 

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;j<=M-1;j++)

chw[i].waikong=0;/*将便道车道设置为空*/

printf("\n\n\t\t已初始化\n\n");

menu();

}

函数出示化后将回到菜单界面。

7.3车辆进入函数

structcar/*车辆信息*/

{

intcar_num;/*车辆次序号*/

intcar_arr;/*车辆到达时间*/

intcar_lef;/*车辆离开时间*/

intcar_stay;/*车辆停放位置*/

}car[CIXUHAO];

voidjinru()/*车辆进入函数*/

{

inti,a;

inth=0;

printf("\n\n请输入该车次序号(从0号开始):

");

scanf("%d",&a);

for(i=0;i

{

if(chn[i].neikong==0);/*无车标记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("请输入离开车辆次序号[],并将此车之后的车先全部退出停车场!

");

scanf("%d",&i);

printf("\n请输入离开车辆的离开时刻(24小时整点计时):

\n");

scanf("%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的车停车时间%d小时,应收费%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.

[5]明日科技,梁冰,苏宇,吕继迪.JavaScript技术开发大全[M].人民邮电出版社,2008.

[6]王俊标.精通JavaWeb开发—基于Struts、EJB、Hibernate、JBuilder[M].人民邮电出版社,2007.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1