学士学位论文小区车辆管理系统.docx
《学士学位论文小区车辆管理系统.docx》由会员分享,可在线阅读,更多相关《学士学位论文小区车辆管理系统.docx(28页珍藏版)》请在冰豆网上搜索。
学士学位论文小区车辆管理系统
小区车辆管理系统
院系
北方软件学院
专业
计算机科学与技术(软件工程)
班级
5233105
学号
200502331152
姓名
冯咀志
指导教师
郑凤仁
负责教师
沈阳航空工业学院
2007年6月
摘要
小区车辆管理系统是一款对小区内车辆进行管理的软件,旨在提高车辆管理的效率、减少管理费用。
本文首先介绍小区车辆管理系统的研究背景和意义;通过当前停车场的发展趋势和其它相关软件产品的不足,两个方面阐明本软件的价值,分析讨论开发车辆管理软件的意义和主要功能;并从软件的安全性、易用性、稳定性等方面分析软件开发过程中应该注意的问题,指出小区车辆管理系统能提高小区的管理效率和节省资金。
然后,分析讨论数据库系统的基本功能以及数据库技术在小区车辆管理系统中的应用,并结合实际情况分析数据的设计方法。
最后针对小区车辆管理系统运行过程中可能出现的问题提出了解决方案,并从管理思想、软件、系统三个概念层次对小区车辆管理系统的开发与维护作了概括。
本软件采用Java语言和SQLServer2000数据库开发而成。
关键词:
车辆管理;数据库系统;Java;SQLServer2000
Abstract
Residencecommunityvehiclesmanagementsystemisasoftwarewhichmanageresidentialcommunityvehicles.Seektoimprovemanagementefficiencyandreducemanagementcosts.ThispaperintroducesResidencecommunityVehicleManagementSystemresearchbackgroundandsignificance.Analyzetheshortageofthecurrenttrendofdevelopmentincarparkingandotherrelevantsoftwareproducts,ClarifythesoftwarevalueFromtwoaspects.Discussedthedevelopmentofvehiclemanagementsoftwaresignificanceandthemainfunction.Andanalyzethesoftwaredevelopmentprocessfromsoftwaresecurity,usability,stabilityandsoon.Itindicateresidencecommunityvehiclesmanagementsystemcanimprovethemanagementofdistrictefficiencyandsavemoney.Thendiscussthebasicdatabasefunctionsanddatabasetechnologyinthedistrictvehiclemanagementsystemapplications.Integratewiththeactualsituation,analyzethedatadesignmethod.FinallyResidencecommunityvehiclesmanagementsystemoperationmayariseinthecourseoftheproposedsolutions.Andfromthemanagementthinking,software,systemtheconceptofthree-levelsummarizedistrictvehiclesforthedevelopmentandmaintenance.
ThesoftwareisdesignedanddevelopedbyJavalanguageandSQLServer2000.
Keywords:
vehiclesmanagement,DatabaseSystem,java,SQLServer2000
目录
1总论1
1.1系统开发的背景5
1.1.1价格因素5
1.1.2人的因素6
1.2系统开发的意义和目的6
1.3开发环境6
1.3.1硬件配置及外设设备与配置6
1.3.2开发语言、应用软件平台及语言7
1.3.3系统的主要功能8
2结构设计9
2.1系统开发的思想与原则9
2.1.1系统概述9
2.1.2系统开发方法介绍9
2.1.3系统调研与可行性分析10
2.1.4可靠性分析概述10
2.1.5技术可行性分析10
2.2系统软件的结构设计11
2.2.1结构设计11
2.2.2系统功能11
2.2.3数据结构12
2.3详细设计13
2.3.1程序设计思想与原则13
2.3.2程序软件结构设计14
2.3.3数据库设计22
3系统编码24
3.1系统原码及说明24
4系统评介27
4.1系统测试27
4.2系统的优点及技术特征29
4.3系统的不足及改进方案30
5结束语31
参考文献32
致谢33
1总论
据有关数据统计,中国2004年的汽车保有量约2000万辆,2005年汽车保有量已达到2500万辆左右,平均年增长约为10%。
但随之而来的,车多位少、停车难的问题也日渐突出,成为当前社会普遍的关注点,以沈阳来说,现有机动车数量急剧增长,而车位却增长缓慢,停车位严重短缺可见一斑。
为此,近几年,中国大部分城市都在兴建停车场或扩建车位。
随着新世纪经济持续健康快速发展,以及加入WTO后私人购车高峰期的即将到来,交通需求将显著增加,停车设施的水平直接影响到城市的交通运行效率和生活环境品质,停车设施的过度短缺、布局不合理和管理不规范,都将对提高城市的综合竞争力产生不利影响。
因此,从长远发展目标来看,结合城市布局结构的调整,建立和完善与城市社会经济发展相适应的城市停车系统,是十分紧迫和必要的。
面对市场需求的拉动,厂商们是否了解到用户对停车场管理系统关注的是什么?
未来有何新需求?
1.1系统开发的背景
曾几何,国外停车场产品在市场上占据了主要的地位,如速宾、AAMANO、DESIGNA、CASALE等品牌,但随着近年来国内厂商加大了对市场的开发以及产品技术的逐渐成熟,国内停车场产品在市场上已取得于相当不错的表现,目前市场上也是以选择本土产品为主流。
1.1.1价格因素
其中,价格是最重要的原因。
据了解,国外一套普通规模的停车场管理系统高达到30-40万。
即使是在国内一般也要在10万以内,有着3-4倍的差距。
显然即使是使用国产软件,这个价格对于大多数小区来说也很难被接受。
1.1.2人的因素
另外,与外国软件相比国内系统操作界面完全汉化,这种本土化的软件更适合一般非专业人员的操作、维护,而且在售后服务方面,更能提供及时的服务等等。
1.2系统开发的意义和目的
正是考虑到以上几个因素,也是为了填补当前大型车辆管理软件价格高,而且有许多功能的对于小型停车场用不上的空白。
我决定开发一套真正适合中小型停车场的软件。
首先它的用户对象是小区、超市、商场、中小型公司等车辆不是很多的用户。
其次本软件的价格不会很高,甚至可以以共享的方式提供给用户使用,因为这类用户不可能为一个车辆管理软件付很多钱,他们最主要目地是够用、稳定就好。
最后本软件的使用力求简单化,操作傻瓜化。
用户通过鼠标点按就可以实现全部操作。
因为这种小型停车场不大可能对管理员进行专门的培训,更不能聘用一个专业计算机的人来管理系统。
1.3开发环境
一个好的开发环境可以加快我们的开发速度,下面分别介绍我的硬件开发环境和软件开发环境。
1.3.1硬件配置及外设设备与配置
硬件环境的好坏是我保证我们完成开发的先决条件,因为JAVA程序运行的时候很占内存,所以对内存的要比较高,在这里我们推荐内存至少要512MB。
而现在的许多IDE运行时需要做大量的CPU运算,所以CPU配置应该为P42.4G或AMDAthlonXP2500+以上。
硬件环境
备注
CPU:
AMDAthlon3000+
硬盘:
希捷160GSATA
内存:
金邦512MB
显卡:
七彩虹X550XT
因为JBuilder对硬件要求比较高所以内存至少要达到512MB,推荐1GB。
表1.1硬件环境表
1.3.2开发语言、应用软件平台及语言
软件环境的好坏直接影响着我们开发软件的效率、稳定性和安全性。
Eclips我就不细说了,有大量的程序员都用它来开发就足以说明它的非凡了。
在这里我要说的是NetBeans,由于起步比较晚再加上前几个版本的性能平平,所以有很多人对它不是很了解。
但是自从5系列推出以后它的性能有了质的改变。
不仅因为是纯JAVA开发的IDE,它还集成了Tomcat等企业级开发插件,所以不需要再去找外挂的插件。
更令人激动的为了配合NetBeans,SUN公司的在JDK1.6加入了一个新的布局管理器。
用NetBeans和JDK1.6可以很容易地开发图形界面,就像你曾经熟悉的VB一样。
软件环境
备注
OS:
WindowsXPProfessional
IDE:
Eclips3.2.2
JBuilder2006
NetBeans5.5
开发语言:
Java(JDK6.0)
数据库:
SQLServer2000
利用JBuilder和NetBeans可以很容易地做出图形用户界面,再利用Eclips的良好代码编辑能力,对生成的编码进行修改。
表1.2软件环境表
1.3.3系统的主要功能
在进行了充分的市场调研和对实际需求的认真分析后,确定本系统的定位应该是利用计算机与有效的管理手段来减少管理人员的工作量,管理员可以很方便地通过本软件进行复杂的数据操作。
对于普通用户可以方便地进行查询操作。
2结构设计
一个清晰明白的结构可以保证我们在开发过程最大优化我们的资源,并能保证功能模块不被遗漏。
所以在任何项目开发之前都要先设计一个合理的组织结构,然后根据结构图有次序、有步骤地进行开发。
2.1系统开发的思想与原则
2.1.1系统概述
为实出分工明确,也为防止非法用户的越权操作,本系统主要分为两个层次的用户,一个是系统管理员另一个是普通用户。
1.管理员用户
这是本系统的最高权限用户,拥有对系统的完全控制权限。
包括对普通用户查询,对新用户和新车位进行登记,对新用户进行添加,对用户资料的内容进行修改,对用户进行删除,修改普通用户对系统的使用权限等操作。
2.普通用户
最基本用户只拥有查询权限,在普通提供了正确的车牌号和密码后,系统会返回用户的基本资料。
但普通用户不可以对这些资料进行操作。
2.1.2系统开发方法介绍
本系统采用JAVA语言编写,为了更好地休现本语言面向对象的特点,本系统采用面向对象的、模块化的设计方法,这也是当前比较高效、流行的设计模式。
本系统的主要功能模块封装在单独的类中,这种分布式的开发方式不但能提高开效率,还有利于功能的单独测试,更容易发现和改正错误。
常用的操作都封装在公有方法中,这样当其它模块需要实现某个操作时,就可以直接去调用那个方法。
以实现代码最大限度的重用。
2.1.3系统调研与可行性分析
在结合了当前的实际市场需求和今后的发展趋势后,我认为本软件的市场前景将会非常好。
因为现在国内外很少有这种专门针对小区等小型停车场的软件,而大型软件不仅购买费用高、对硬件要求高而且维护不方便,更重要的是用户不能很快掌握,还需要进行专门的培训。
这对于小型用户来说是很难接受的。
本软件正是从价格、易用性等方面而专门做的优化。
2.1.4可靠性分析概述
为了使软件安全稳定,在选择语言和工具方面尽量选择那些可靠成熟的产品。
JAVA是一种安全高效的编程语言,不但加强了对异常的管理,而且还有完善的垃圾回收机制。
因此程序员不必担心在C或C++中防不胜防的内存泄漏的情况出现。
用JAVA开发出来的程序还具有很好的可移植性,不必担心在Windows上开的产品拿到别的系统上就不能运行了。
在数据库的选择上我用的是微软的SQLServer2000,虽然现它最的版本是2005,但是考虑到2000是一款经过多年使用的、经过考验的产品。
为了系统的稳定最终还是选择了它。
2.1.5技术可行性分析
在技术上虽然有许多语言能用来开发本软件,比如:
C、C++、VB、PB等,但是这些并不一定是最好的。
用VB或PB开发固然可以简化很多工作,尤其是在界面的制作上可以省去很大的一部分精力,就连事件的代码都可以由开发工具自动生成,但是这两种语言的可移植性并不好,这就在无形中限制了产品的使用范围。
用C或C++虽然能提高运行速度,但是考虑到它们极为不安全的指针,还是放弃了。
因为在硬件迅速发展的今天,软件上一点点速度的差别已经微乎其微了。
至于Java,因为我学过一学期的JAVA,应该说有一定的基础,但是一直没有亲自实践一次的机会,而且我也喜欢JAVA这种语言。
程序员可以用JDK中的现成方法来完成许多工作,而且使用这些成熟的方法不但能加快我们的开发速度,还能大减少出错的可能。
最后,最重要的还是看中它的安全性和可移植性。
这不仅是为了日后的维护方便,也是对用户的负责。
2.2系统软件的结构设计
下面来介绍一下本系统的结构,为了方便用户管理,在开发软件的最初我就力求系统使用起来简单方便,而功能要尽量全面。
使用户在不涉及后台数据库的情况下就能通过软件对数据库进行各种操作。
2.2.1结构设计
本系统的业务流程如图2.1用户业务流程图所示。
图2.1用户业务流程图
2.2.2系统功能
为了提高安全性和便于管理,本软件分为管理员和普通用户两类用户。
其中普通用户只具有查询功能。
管理员用户拥有对系统的所有操作权限如查询、登记、添加、修改、删除、更改权限等操作。
2.2.3数据结构
对于这种涉及到数据操作的软件项目来说,数据库的逻辑结构的设计是重要的,可以说软件开发中很大一部分是数据库的设计。
一个设计良好的数据库不仅能方便我们存储,而且还能大减少我们在程序中的代码量。
有许多功能在数据库中实现起来要比我们在程序中实现安全方便的多。
如果一个数据库的逻辑关系不明确,很容易造成插入异常、读脏数据等情况的发生,而这些又常常是很难在使用过程中发现的。
直到造成严重损失才发现为失已晚。
本软件数据库的E-R图如图2.2所示。
图2.1E-R图
2.3详细设计
经过上面的精心准备后,下面进入具的设计阶段。
本软件的HIPO图如果图2.3所示。
图2.1HIPO图
2.3.1程序设计思想与原则
本着简单、高效、实用的原则同时也为了尽最大限度地发挥JAVA语言面对象的特点,本程序采用模块化、分布式的设计方式。
为了提高开发的效率同时也为了减少代码量,本程序尽量减少窗口程序的数量。
因为不必要的窗口不仅需要很长的开时间,同时生成的大量代码会使整个系统的代码显得非常庸肿,降低系统的运行速度。
最重要的是用户同时开打开多个窗口不仅会占用大量计算机资源,还方便于用户的操作。
虽然本软件设有两类用户权限,但是为了提高效率,在主界面的设计上采用普通用户和系统管理员共用一个界面的方法。
这就需要设定普通用户登录时可以使用的操作和不可以使用的操作。
虽然这样做需要在用户登录时做一个判断,并且在数据库中添加一个标识用户身份的数据项,但是它带来的好处是显而易见的。
至始至终本系统的风格都很简洁,主要的界面只有两个,系统登录和主功能界面。
2.3.2程序软件结构设计
本程序软件的主要结构分为三个大部分。
首先当用户运行程序时弹出一个欢迎界面,当用户点击界面上任意一点后进入登录界面,当用户输入了正确的用户名和密码后,便可进入主界面。
在登录界面,系统会根据用户所提供的信息自动判断用户的身份,然后授予不同权限用户以不同的操作能力。
下面就分别来介绍一下这三个部分的具体设计过程。
首先是欢迎界面。
这是用户运行程序时看到的第一个界面。
这上面主要介绍了与本软件和作者相关的一些信息。
如:
软件的名称、制作人、指导老师、版本号、开发时间和联系方式等基本信息。
用户可以通过这个界面对软件有个基本了解。
为了给用户一个良好的第一印象,我特别地用PhotoshopeCS做了一张图来做背景。
本界面的设计宗旨是视觉上美观大方,内容上要能够提供详细、清晰的信息。
如图2.4欢迎界面。
图2.1欢迎界面
接下来就是登录界面了。
这里是保护系统安全的大门,因此它的设计不要求多么漂亮,而是要保证代码的安全性。
这个界面很朴素,只有用户的登录输入框和确定与退出两个按钮。
其效果如图2.5登录界面。
图2.2系统结构图
为了提高安全性,防止非法用户通过反汇编等手段从程序中猜密码。
所以用户的密码不是在存在程序中,而是在数据库中。
通过用户输入的用户名从数据库中取出相应的密码,只有这两项都正确才能通过验正。
为了方便用户使用,本程序还会针对用户输入的不同错误而做出相应的提示。
如果用户提供的用户名在数据库中存在,而密码错误,系统会提示用户密码不正确。
如图2.6密码错误图。
图2.3密码错误图
当用户输入了正确的验正信息后,便可进入本系统的主功能界面了。
因为用户分为两面种不同的权限,而这两类用户又要共用一个界面,所以根据对用户身份的判断系统会显示给用户两种不同的界面,一种为普通用户界面,一种为管理界面。
系统的大部分功能都是在这个界面上实现的包括操作和显示结果,这样做的好处有很多。
首先它很节省代码,用户操作起来很方便,不用费力地再去功能菜单中找相应的功能选项,而且显示结果也在同一个界面上使用户一目了然地查看结果。
但是这样一来设计就显得很重要,如果设计的布局稍有不合理便会显得杂乱无章,当用户看到这种界面时便会无从下手,使软件的易用性降低。
下面就来看看这个界面,因为管理员和普通用户用的是同一个界面,不同的是以管理员身份登录后,功能选项为可用,而以用户身份登录则为不可用所以为了节省篇幅只给出具有代表性的管理员界面。
为了使显示的信息能够清晰,我把界面分成三部分。
其中最上端为查询,因为这是用户最常用的操作,所以把它放在最醒目的位置。
中间为基本信息部分,这里显示的是用户有关的各项信息,因为这里面的许多内容要经常改变和查看,所以把它们放在中间。
最下面是管理员关心的内容了,也是本程序主要功能的实现所在。
为了更好的区分不同的功能区域,我用二种不同的颜色把它们区分开来。
具休的如图2.7管理员界面图。
图2.4管理员界面图
不论管理员或者普通用户进入本界面时都会看到当前小区内车辆管理的一些基本信息。
如当前车场中总的车辆数、当前可用的空位和提示那些用户欠费了及他们欠费的时间。
这些信息大大地方便了管理员对车辆的管理。
当管理员或用户输入车牌号和密码并按查询按钮后就可以查询信息了,这个操作是公用的,不须要权限。
如果用户的输入有错误则提示出错信息。
如图2.8查询出错图。
图2.5查询出错图
如果用户的输入通过验正,则显示出此用户的详细信息。
如图2.9查询结果图
图2.6查询结果图
下面来分别介绍管理员的功能。
首先是登记功能。
设置这项功能的主要目的是为了实现用户对车位的预定,因为存在这样的用户,现在没有车,但是以后会买,所以它们会预定一个车位却不能确定车辆的详细信息,如车牌号、车型、车辆信息等。
这样信息不全的用户不能实现添加操作。
还有小区的车位并不是固定不变的,随着小区规模的不断扩大,车位也会因为需求的增加而增加,这时候也需要动态地对数据库中的车位进行增加,这也是登记功能的又一个用处。
当然为了体现良的操作性、和安全性。
系统会对用户输入的内容进行核对,当用户没有输入任何信息而进行登记时,系统会提示用户ID号或存车位不可为空。
如图2.10所示。
图2.7登记信息为空图
当用户输入的ID号或存车位在数据中已存在,则此ID号和存车位不能进行登记。
此时会显示ID号或存车位已存在的错误。
如图2.11所示。
图2.8登记信息已存在图
当用户输入的存车位在数据不存在,则显示登记成功信息。
如图2.12所示。
图2.9登记成功图
接下来是添加功能。
此项功能的作用是把用户的完整信息添加到数据库,所以勿必要求用户输入的每项信息都是完整的。
如果用户漏填了某项信息则会显示出错信息。
如图2.13
图2.10出错信息图
如果用户添加的用户ID或存车位与数据中已有的数据重复,则会显示ID号或存车位已存在的出错信息,图略。
如果用户成功添加,则会显示添加成功信息,如图2.14所示。
图2.11添加成功图
接下来是修改功能。
因为它实现的功能比较多,而且涉及到数据库的安全问题。
所以这是本软件中最不难设计的一个功能。
首先它实现的是基本修改功能,包括除了ID号和存车位以外的任意一项功能。
而管理员在里主要关心的是用户的计费,所以它可以更改用户的交费日期,这就实现了用户的续费功能。
当用户修改操作成功时,如图2.15所示。
图2.12修改成功图
考虑到管理的人性化和对小区内车位管理进行优化,用户还可以在当前的可用车位中更换一个自己想要的车位。
由于这涉及到多表,和主键关系的操作,所以当用户更改车位的同时,ID号也要进行更改,如果要保留原来的ID不变,就要先执行删除操作再进修改。
图略。
接下来是删除功能。
这项功能实现的是把用户从数据库中彻底删除,这项操作是不可逆的,因此操作之前要慎重考虑。
考虑到实际的应用环境,本功能的实现分为两情况。
一种是正常情况,即管理员通过用户提供的车牌号和密码查询出此用户,然后再对此用户进行删除操作,此时要求用户的信息必须是完整的。
别一种是比较极端的情况,比如有些用户在长时间的托欠存车费不交,当管理员想删除此用户时,用户拒绝提供密码。
这时管理员就可以直接根据车牌号而不需要密码就可以实现删除操作。
当然这种情况侵犯了用户的个人隐私,应该尽量避免。
当管理员删除操作成功后,会显示如图2.16所示的删除成功信息。
图2.13删除成功图
最后是变更权限功能。
随着小区内车辆的不断增多,系统管理与维护的劳动强度也会越来越大,这时若还由一个人来管理就显得捉襟见肘了,管理效率也会下降。
因此本项功能主要就是实现了允许多个用户以管理员权限对系统进行管理,本来赋予权限与回收权限是两个功能,但是为了简化操作也为了方便用户管理,我把这两个功能用一个按钮来实现。
当用户选择了一个用户进行此操作时,在数据库中会对此用户当前的权限进行变更,如果原来是普通用户则变成管理员;如果原来是管理员则变成管理员。
应该注意的是,此项功能的完成也是建立在查询结果的基础上的,这样做虽然看起来有点麻烦、有点多此一举,但是这样做却对系统多增加了一层保护措施。
操作成功的结果如图2.17权限更改成功图所示。
图2.14权限更改成功图
2.3.3数据库设计
为了简化数据库的操作,本数据库主要设有两个实体,车主和车辆。
具休的实体如图2.17车主实体E-R图和图2.18车辆实体E-R图所示。
图2.1车主实体E-R图
图2.2车辆实体E-R图
现在需要将上面的数据库结构概念转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构