基于UML的汽车租赁管理系统设计含源文件.docx
《基于UML的汽车租赁管理系统设计含源文件.docx》由会员分享,可在线阅读,更多相关《基于UML的汽车租赁管理系统设计含源文件.docx(24页珍藏版)》请在冰豆网上搜索。
基于UML的汽车租赁管理系统设计含源文件
基于UML的汽车租赁管理系统设计
1问题描述
1.1需求描述
随着汽车工业的发展和汽车的普及,汽车租赁成为近年来兴起的一个新行业。
使用汽车租赁管理系统可以规范企业的管理和经营行为,减少企业的经营成本,提高工作效率。
针对以上的要求,汽车租赁管理系统的用户是汽车租赁企业的管理人员,其需求功能应包括汽车类型管理、会员类型管理、保险类型管理、销售商管理、保险公司管理、客户信息管理、会员信息管理和汽车租赁、续租、归还管理等主要功能,从而可以形成统一有效的管理。
在该系统中,要实现对汽车类型信息、会员类型信息和保险类型信息等基本信息的添加、修改、删除、和查询;销售商信息的添加、修改、删除和查询;保险公司信息的添加、修改、删除和查询;客户信息和会员信息的添加、修改、删除和查询以及汽车租赁、续租、归还等具体操作的实现。
以满足当前该行业在处理业务上的需求。
1.2运行环境描述
本系统采用的是C/S体系结构风格,对系统中信息的查询、修改、删除和添加等操作都是对数据库的操作,在数据库服务器上实现的,而在本系统中运行的界面只是客户应用程序,负责提供管理人员与数据库交互的界面,向数据库服务器提交用户请求并接受来自数据库服务器的消息,。
而数据库服务器也就是后台程序,主要是负责有效的管理系统的数据库资源,对客户应用程序传来的信息加以处理,对数据库内的信息进行操作。
系统开发采用RationalRose进行统一建模,编程语言是MicrosoftVisualBasic,数据库设计采用的是MicrosoftAccess2000,在WindowsXp操作系统下测试并运行。
1.3系统性能描述
MicrosoftVisualBasic与其他开发工具相比,具有简单易学、灵活方便和易于扩充等特点,越来越多地被用做客户/服务器应用程序的前端开发工具,与后台的MicrosoftAccess2000数据库相结合,能够提供高性能的管理信息系统解决方案。
2用例模型及分析类图的描述
2.1用例模型描述
本系统中,以汽车租赁为实现功能,其他的功能都是为了服务于该主要功能,从而便于管理。
系统的用例图如图2-1所示。
图2-1汽车租赁系统用例图
通过对系统进行需求分析,得到系统的用例图,从而知道了系统要实现的基本功能。
客户通过管理人员对系统进行操作,通过建立用例图得知系统的体系结构。
本系统采用3层结构设计,即程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。
系统中将用户、汽车管理等都封装成相应的类,同时每个类都有自己对应的操作类,从而再次提高了对数据库操作的安全性和程序的可扩展性。
在系统中,只有管理人员才有权限使用本系统,才能对数据库进行操作。
(1)管理人员对基本信息的管理,包括对汽车类型信息的增加、删除、修改和查询;对会员类型信息的增加、删除、修改和查询;保险类型信息的增加、删除、修改和查询;销售商信息的增加、删除、修改和查询;保险公司信息的增加、删除、修改和查询。
所以,有基本信息管理用例,还包括汽车类型管理用例、会员类型管理用例、保险类型管理用例、销售商管理用例和保险公司管理用例。
(2)管理人员对客户会员的管理,主要是会员类型的修改和查询,客户信息的增加、删除、修改和查询。
所以,有客户会员管理用例和客户信息管理用例。
(3)管理人员对租赁业务的管理,包括汽车类型信息的增加、删除、修改和查询;汽车租赁信息的增加、删除、修改和查询;汽车续租信息的增加、删除、修改和查询;汽车归还信息的增加、删除、修改和查询;所以,有租赁业务用例、汽车租赁管理用例、汽车续租管理用例、汽车归还管理用例。
(4)管理人员对系统用户的管理,包括系统用户的增加、删除、修改和查询和密码的修改;所以有系统用户管理用例和密码修改用例。
分析系统的使用对象和用户需求,设计系统的体系结构。
系统的功能模块如图2-2所示。
图2-2汽车租赁管理系统功能模块示意图
2.2分析类图描述
在系统中,应该包括“基本类型信息”类,“会员类型信息”类,“公司信息”类,“客户信息”类,“汽车信息”类,“汽车租赁信息”类,“管理员信息”类。
如图2-3即为汽车租赁管理系统类图。
图2-3汽车租赁管理系统类图
系统管理员是“Users”类的子类,它与客户是多对应一的关系,客户通过系统管理员办理业务,而使用本系统;客户与租赁是一对应多的关系,一个客户可以租赁多辆汽车,而汽车与租赁是一一对应的;每个客户可以有会员类型也可以没有,所以是一对应多的关系;每辆汽车都有其销售商,而销售商可以销售多辆汽车,所以汽车和销售商是多对一的关系;同样每辆汽车都有其对应的保险类型,所以与保险类型是多对一的关系。
3详细设计描述
3.1核心时序图描述
3.1.1汽车信息管理时序图
图3-1汽车信息管理时序图
3.1.2修改密码时序图
图3-2修改密码时序图
3.1.3汽车租赁管理时序图
图3-3汽车租赁管理时序图
3.1.4汽车续租管理时序图
图3-4汽车续租时序图
3.1.5汽车归还时序图
图3-5汽车归还时序图
3.2状态图描述
3.2.1汽车信息管理状态图
图3-6汽车信息管理状态图
3.2.2修改密码状态图
图3-7修改密码状态图
3.2.3汽车租赁管理状态图
图3-8汽车租赁管理状态图
3.2.4汽车续租管理状态图
图3-9汽车续租管理状态图
3.2.5汽车归还管理状态图
图3-10汽车归还管理状态图
3.3组件图描述
图3-11组件图
4编程设计描述
4.1信息代码设计和数据库设计
用户的需求具体体现在各种信息的提供、保存、更新和查询上,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构以及处理数据的流程,组成一份详尽的数据字典,为以后的具体设计打下基础。
经过上述系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下面所示的数据项和数据结构:
(1)用户信息,包括数据项:
用户名、密码。
(2)类型信息,包括数据项:
类型ID、类型名称、描述等。
(3)会员类型,包括数据项:
会员ID、会员类型、享受折扣等。
(4)公司信息,包括数据项:
公司名称、联系电话、电子邮件、地址等。
(5)客户信息,包括数据项:
客户ID、姓名、驾驶证号、驾龄等。
(6)汽车信息,包括数据项:
车牌号、购买日期、押金、日租金等。
(7)汽车租赁信息,包括数据项:
合同ID、车牌号、客户ID、租赁时间等。
数据库中包含了7个表,即基本类型表Types、会员类型表MemberType、公司信息表Company、客户信息表Customer、汽车信息表Cars、汽车租赁表Lease和用户信息表Users。
表4-1表Types的结构
编号
字段名称
数据类型
说明
1
Id
int
类型编号,主键,自动增1
2
TypeName
Varchar50
类型名称
3
TypeId
Tinyint
类型分类,1-汽车类型,2-保险类型
4
Description
Varchar100
类型描述
表4-2表MemberType的结构
编号
字段名称
数据类型
说明
1
Id
Int
类型编号,主键,自动增1
2
TypeName
Varchar50
类型名称
3
Rate
Float
享受的折扣
表4-3表Company的结构
编号
字段名称
数据类型
说明
1
Id
Int
公司编号,主键,自动增1
2
Company
Varchar100
公司名称
3
Telephone
Varchar50
联系电话
4
Address
Varchar50
地址
5
Emain
Varchar50
电子邮件
6
Contact
Varchar50
联系人
7
TypeId
Tinyint
公司类型,1-销售商,2-保险公司
8
Comment
Varchar200
说明
表4-4表Customer的结构
编号
字段名称
数据类型
说明
1
Id
Varchar20
客户编号,主键
2
Name
Varchar50
姓名
3
Sex
Char2
性别
4
Age
Tingint
年龄
5
IdCard
Varchar30
身份证号
6
Telephone
Varchar30
电话
7
Workorg
Varchar50
工作地点
8
Address
Varchar50
家庭地址
9
ZipCode
Varchar10
邮政编码
10
Enail
Varchar30
电子邮件
11
LicenseNo
Varchar30
驾驶证号
12
LicenseType
Varchar20
驾驶证类型
13
GetDate
Varchar20
发证日期
14
ExpiredDate
Varchar20
到期日期
15
DriverAge
Tinyint
驾龄
16
Flag
Tingint
会员标记(0-非会员,2-会员)
17
TypeId
Int
会员类型
18
Certificate
Varchar40
抵押证件
19
Warrantor
Varchar50
担保人
20
WidCard
Varachar30
担保人身份证号
表4-5表Cars的结构
编号
字段名称
数据类型
说明
1
CarNo
Varchar20
车牌号,主键
2
TypeId
Int
汽车类型
3
CarName
Varchar50
汽车名称
4
Color
Varchar20
汽车颜色
5
EngineNo
Varchar50
发动机号
6
CarCase
Varchar50
车架号
7
SaleId
Int
销售商编号
8
BuyDate
Datetime
购买日期
9
InsurNo
Varchar50
保单号
10
InsurId
Int
保险公司编号
11
InsurType
Varchar50
保险种类
12
InsurSate
Datetime
起保日期
13
InsurEdate
Datetime
结束日期
14
Deposit
Int
押金
15
DayPrice
Int
日租金
16
WeekPrice
Int
周租金
17
MonthPrice
Int
月租金
18
WeekEndPrice
Int
周末租金
19
DayPM
Int
日限公里数
20
OverTimePrice
Int
超时租金
21
OverKMPrice
Int
超公里租金
22
Status
Char10
状态
23
Comment
Varchar200
备注
表4-6表Lease的结构
编号
字段名称
数据类型
说明
1
ContractNo
Varchar50
合同编号,主键
2
CarNo
Varchar20
车牌号
3
CustId
Varchar20
客户编号
4
LeaseTime
Datetime
租赁时间
5
LeaseMode
Char10
租赁模式(分为按日、周和月)
6
Price1
Int
租赁价格
7
Price2
Int
按日租赁时的周末租赁价格
8
WorkDays
Int
租赁工作日、周、月的数量
9
WeekEndCount
Int
租赁周末个数
10
Deposit
Int
押金
11
DayKm
Int
日限公里数
12
OutKM
Int
出车公里数
13
OPrice1
Int
超公里每公里价格
14
OPrice2
Int
超时每小时价格
15
ReturnTime
Int
应归还时间
16
ReturnKM
Int
归还公里数
17
OtherCost
Int
其他费用
18
Rate
Float
折扣
19
Payment
Int
实际支付金额
20
Total
Int
总金额
21
Status
Char10
状态,必填字段(是)
22
CreateDate
Datetime
创建日期
23
UserName
Varchar20
创建人
24
RealRTime
Datetime
实际归还日期
表4-7表Users的结构
编号
字段名称
数据类型
说明
1
UserName
Varchar50
用户名,主键
2
UserPwd
Varchar50
密码
表4-8表的外键定义
关系名
主键表
主键字段
外键表
外键字段
FK_Cars_Types
Types
Id
Cars
TypeId
FK_Cars_Company
Company
Id
Cars
SaleId
FK_Cars_Company1
Company
Id
Cars
InsurId
FK_Customer_MemberType
MemberType
Id
Customer
typeId
FK_Lease_Cars
Cars
CarNo
Lease
CarNo
FK_Lease_Customer
Customer
Id
Lease
CustId
4.3输入设计
在本系统中,使用的语言是MicrosoftVisualBasic,界面设计比较方便,从而对于输入,主要是在窗口中的各种文本框、文本区和其他的控件来实现用户的输入,程序接受从这些控件来的信息,执行相应的操作。
对于本系统输入设计,由于界面的设计容易,从而其实现输入的方式也简单明了。
这也是本系统优点之一。
4.4输出设计
和输入设计相似,系统的输出设计是通过窗口中的各种文本框、文本区和弹出对话框等控件来实现结果的输出。
5用户界面设计和处理过程的设计的描述
5.1用户界面设计描述
5.1.1系统用户登录窗体
图5-1系统登录界面
登录窗体的名称为FrmLogin,它的界面布局如图5-1。
用户正确登录后,就会进入主界面。
5.1.2系统主界面
主窗体是工程的启动对象,可以在系统菜单中选择适当的命令,打开属性窗口设置启动对象。
本系统中主窗体名为FrmMain。
如图5-2。
图5-2系统主界面
在主界面,用户可以进行基本信息管理、客户会员管理、日常业务管理以及系统用户管理。
通过单击对应的菜单选项可以方便快捷地转到本系统功能模块。
5.1.3汽车租赁管理窗体
图5-3汽车租赁管理界面
5.1.4汽车归还管理窗体
图5-4汽车归还管理界面
5.1.5汽车归还结算窗体
图5-5汽车归还结算管理
5.1.6汽车租赁信息添加管理
图5-6汽车租赁信息添加
5.2处理过程设计描述
5.2.1类型管理模块设计
类型管理模块包括以下功能:
(1)类型信息编辑。
(2)类型信息管理。
(3)选择类型信息。
汽车类型管理信息编辑的窗体可以用来添加和修改类型信息,窗体名为FrmTypeEdit,它的窗体属性与登录窗体相似。
汽车类型信息管理窗体的名称为FrmType,它包括三个过程,DataRefresh过程的功能是根据种类编号显示列表中的信息;当用户在“汽车类型”和“保险类型”单选按钮之间切换是,触发OptSel_Click事件;当用户单击“修改”按钮时,触发Cmd_Modi_Click事件。
5.2.2汽车租赁管理模块设计
汽车租赁管理模块包括以下功能:
(1)汽车租赁信息管理,其窗体名为FrmLeaseEdit,窗体中使用3个ADODC控件分别为汽车信息、租赁价格和客户信息表格提供数据源。
当用户单击“查找”按钮时,触发Cmd_SchMember_Click事件;当用户更换租赁模式时,触发cob_Mode_Click事件,重新计算租赁总费用金额和归还时间。
(2)汽
车续租管理,其窗体名为FrmLeaseAddEdit,在汽车的续租过程中,续租的各种价格继续使用租赁是的价格,不能更改,租赁模式也不允许更改。
如果要更改租赁模式,只能归还汽车后重新办理租赁手续。
在租赁中,只允许更改租赁的日(周、月),同时系统自动重新计算租赁总费用和应还时间。
(3)汽车租赁管理,其窗体名为FrmLease。
它的GridRefresh过程用来更新ADODC控件的记录源,从而更新DataGrid控件中显示的美容。
6给出软件的测试方法和测试结果
6.1软件测试方法
在本系统中,主要采用的是功能性测试,其中所使用的用例包括了边界值分、最坏情况分析、特殊值测试、输入输出等价类等测试方法。
是在已知系统的功能要求上,对系统所能实现的功能进行测试,看是否满足需求。
6.2测试用例和测试结果
6.2.1用户名和密码输入有误时
测试用例:
用户名为:
ccqjs,密码为:
123456
测试结果为:
图6-1
图6-1登录出错
6.2.2汽车租赁操作
测试用例为:
车牌号码为:
京AS1111,客户编号为:
C001,合同编号为:
886,周数为:
5
测试结果为:
在归还管理界面中有可以归还的汽车,且合同号是:
886,车牌号:
是图京AS11116-2,客户号是:
C001。
结果如图6-2
图6-2汽车租赁测试
6.2.3汽车归还操作
测试用例为:
车牌号码为:
京AS1111,客户编号为:
C001,合同编号为:
886
测试结果为:
数据库中没有车牌号码为京AS1111的汽车信息,如图6-3
图6-3汽车归还测试
6.2.4汽车管理添加操作
测试用例为:
车牌号为:
鄂AS123;车名为:
name;分类为:
夏利2000等
测试结果:
在数据库中有该记录,如图6-4所示
图6-4添加汽车信息
7总结心得
7.1设计特点
首先,本系统设计所采用的是3层结构设计,即程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。
这3层的设计,使得该系统的运行性能较单纯的c/s模式有了很大的提高,而且所设计的界面逻辑结构清晰,便于进行修改和添加新的功能。
其次,本系统在界面设计上都采用了模块化的处理思想,把很多界面共有部分集成为一个模块,充分显示了vb面向对象程序语言的强大用途。
在程序结构上,所有的模块都分得很清晰,各个窗体所实现的功能都很明了,而且对数据库的操作也是通过对象来实现的。
将系统中各个模块的分工分得很明确,使得各个模块之间的功能相对比较独立,但在系统层次上则是联系很紧密的。
最后,本系统将数据库中的表建成类,并在类中定义了对类的基本操作,使得在以后在过程的使用中,不必重新定义对类的对象的操作,而且实现起来也是比较方便的,出错的机会也会降低。
在这点上,充分体现了面向对象的设计方法。
本系统的功能实际上是比较完善的,需求做得比较细致,而且查阅了很多资料,涉及的范围也比较广泛。
7.2设计不足
首先,在本系统的设计设计过程中,由于学习和考试的原因,耽误了一个星期,所以做起来的程序是比较匆促的,虽然需求相对来说还好,但是系统实现上出现了一些小问题,有些功能实现得不是很好,有待于进一步的提高。
其次,由于这次为了方便设计界面,所选取的编程语言也是没什么难度,以至于失去了课程设计所要达到的要求。
在编程过程中,遇到最大的问题就是与数据库的连接问题,以及数据库中表的增加、删除、修改和查询等操作。
在后来查阅相关资料才明白具体的细节。
没了解这门语言就用这门语言做课程设计,这是盲目的,直接导致的就是后续编程过程中漏洞百出,检查起来也很困难。
最后,这次还是没太重视这个课程设计,在心态方面就不行,一直也没有全力以付,虽然也学到了东西,但是相对来说,是教训大于所得。
这一点在即将来临的毕业设计中得好好的克服,在毕业设计中一定得稳扎稳打,好好完成在大学期间的最后一个课程设计。
8参考文献
[1]张友生,软件体系结构,北京:
清华大学出版社,2004年1月
[2]陈火旺、刘春林等,程序设计语言编译原理(第3版),国防工业出版社,2003年2月
[3]杨开英,数据库系统概论,,武汉理工大学出版社,2003年1月
[4]王少锋,面向对象技术UML教程,清华大学出版社,2004年2月
[5]赵文耘等译,需求工程,机械工业出版社,2003年8月
[6]王珊,数据库系统简明教程,高等教育出版社,2004年9月
[7]余雪丽,软件体系结构及实例分析,科学出版社,2004年10月
[8]王智学,ROSE对象建模方法与技术,机械工业出版社,2003年7月
[9]
郑阿奇,VisualBasic使用教程(第二版),电子工业出版社,2004年1月