毕业设计车辆租贷系统aspnet毕业设计.docx
《毕业设计车辆租贷系统aspnet毕业设计.docx》由会员分享,可在线阅读,更多相关《毕业设计车辆租贷系统aspnet毕业设计.docx(67页珍藏版)》请在冰点文库上搜索。
毕业设计车辆租贷系统aspnet毕业设计
毕业设计
汽车租赁系统的设计与实现
1引言
1.1选题背景
随着市场经济的发展,我国汽车租赁行业已呈现出高速发展的态势。
在很多汽车租赁企业经营规模不断扩大、采用连锁经营的情况下,手工管理无论是在工作效率、人员成本还是提供决策信息方面都已经难以适应现代化经营管理的要求,制约了汽车租赁企业的规模化发展和整体服务水平的提升。
计算机与互联网技术应用于汽车租赁行业是一场突破性的革命:
一方面可以加强标准化、规范化业务管理,全面提高汽车租赁行业的管理水平和信息化程度;另一方面能够合理利用人力和物力资源,使人尽其才,物尽其用,有效地管理各种业务与关系,缩短销售周期、降低销售成本、增加收入。
目前,在汽车租赁系统中单机版的技术比较成熟和普及,即数据和程序存放在同一台计算机上,这种系统可基本满足中小型用户的需要;但随着.NET技术、网络技术和数据库技术的发展,通过网络(有线或无线)把各个分店的数据分布协同工作的汽车租赁系统逐渐成为了研究的热点,得到了越来越广泛的应用。
本系统正是要研究目前汽车租赁管理系统开发中用到的先进技术,并在此技术上开发建立一个完整的系统,实现对汽车租赁系统全面高效的管理。
1.2目的和意义
开发一套运行稳定、安全可靠、操作简便、高效快捷的车辆租贷系统,帮助企业处理日常工作业务,规范管理各项工作和操作流程。
能够方便的实现企业的公司宣传与业务介绍。
也使管理员通过此系统能对合同的添加、删除、修改、查询等功能。
快速准确的获取必要的信息。
1.3技术要求和设计范围
如何设计好本系统,实现各个功能的完整正常运行是很重要的。
后台利用Microsoft.NETFramework开发平台,在VisualStudio.NET环境下,利用C#语言和SQLServer2005数据库。
实现一个基于三层架构(WEB、DAL、BLL)的车辆租贷系统。
前台采用flash、DIV和CSS等技术,更加丰富公司的业务介绍和宣传,完善工作人员对业务的方便使用。
1.4发展现状
汽车租赁作为汽车消费的一种形式,具有成本低、方式灵活、服务便捷等特点,未来必会有很大发展空间,相关机构预测到2015年市场规模将超过350亿元。
近些年,中国汽车租赁行业快速发展,出现了一批具有影响力的企业,如神州租车、一嗨租车等,2010年汽车租赁数量为20万辆,市场规模160亿。
但与成熟的发达市场相比,中国的租车普及率较低,2010年为0.4%,低于美国的1.3%和日本的2.2%。
我们不能简单的以国际发达市场的发展状况来推断中国市场,毕竟环境不同、客户不同、发展阶段不同,中国汽车租赁行业有其自身特征,必将发展路径也有所不同。
随着互联网的快速的发展,社会化营销、第三方销售平台等手段,扩展客户入口。
都是需要企业去思考未来的。
所以运用互联网必将是以后此类公司争夺的重点。
2方案论证
2.1三层架构
2.1.1三层架构的介绍
三层架构(3-tierarchitecture)通常意义上的三层架构就是将整个业务应用划分为:
表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
区分层次的目的即为了“高内聚,低耦合”的思想。
表现层(UI):
通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
业务逻辑层(BLL):
针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
数据访问层(DAL):
该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
微软推荐的分层式结构一般分为三层,从下至上分别为:
数据访问层、业务逻辑层(又或称为领域层)、表示层。
如图1所示:
图1分层式结构
2.2三层结构原理
3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
2.2.1各层的作用
数据访问层:
主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。
有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。
简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。
如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
业务逻辑层:
主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
业务逻辑层(BusinessLogicLayer)无疑是系统架构中体现核心价值的部分。
它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。
例如MartinFowler在《PatternsofEnterpriseApplicationArchitecture》一书中,将整个架构分为三个主要的层:
表示层、领域层和数据源层。
作为领域驱动设计的先驱EricEvans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。
由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。
如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。
因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。
正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。
对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。
依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
表示层:
主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:
aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
位于最外层(最上层),离用户最近。
用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
2.2.2具体的区分方法
数据访问层:
主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。
而不必管其他操作。
业务逻辑层:
主要负责对数据层的操作。
也就是说把一些数据层的操作进行组合。
表示层:
主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
2.3运行环境和开发工具的选择
我主要采用ASP技术实现动态页面设计,SQLServer2005实现数据库应用和数据管理的设计方案。
前台结合DIV和CSS的方案进行整个系统的设计。
ASP是ActiveServerPage的缩写,意为“动态服务器页面”。
ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。
ASP的网页文件的格式是。
asp,现在常用于各种动态网站中。
ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。
ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。
利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。
与HTML相比,ASP网页具有以下特点:
(1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;
(2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;(3)服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;(4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。
例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;(5)ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发送Email或访问文件系统等。
(6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取。
(7)方便连接ACCESS与SQL数据库。
(8)开发需要有丰富的经验,否则会留出漏洞,让骇客(cracker)利用进行注入攻击。
DIV+CSS是网站标准(或称“WEB标准”)中常用术语之一,div+css是一种网页的布局方法,这一种网页布局方法有别于传统的HTML网页设计语言中的表格(table)定位方式,可实现网页页面内容与表现相分离。
XHTML是TheExtensibleHyperTextMarkupLanguage(可扩展超文本标识语言)的缩写。
XHTML基于可扩展标记语言(XML),是一种在HTML基础上优化和改进的的新语言,目的是基于XML应用与强大的数据转换能力,适应未来网络应用更多的需求。
在XHTML网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。
2.3.1运行环境
VS2008为系统运行平台,IE8.0浏览器,火狐浏览器,360浏览器,SQLServer2005ExpressEdition。
MicrosoftVisualStudio2008是面向WindowsVista、Office2007、Web2.0的下一代开发工具,代号“Orcas”,是对VisualStudio2005一次及时、全面的升级。
VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。
使用VisualStudio2008可以高效开发Windows应用程序。
设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。
同时VisualStudio2008支持项目模板、调试器和部署程序。
VisualStudio2008可以高效开发Web应用,集成了AJAX1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。
SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。
SQLServer2005ExpressEdition(仅适用于32位)——学习版SQLServerExpress数据库平台基于SQLServer2005。
它也可以替换MicrosoftDesktopEngine(MSDE)。
通过与MicrosoftVisualStudio2005集成,SQLServerExpress简化了功能丰富、存储安全且部署快速的数据驱动应用程序的开发过程。
2.3.2开发工具
Dreamweavercs5,Flash,photoshopcs5。
AdobeDreamweaverCS5是一款集网页制作和管理网站于一身的所见即所得网页编辑器,DreamweaverCS5是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。
Flash是由macromedia公司推出的交互式矢量图和Web动画的标准,由Adobe公司收购。
网页设计者使用Flash创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。
Flash,是一种动画创作与应用程序开发于一身的创作软件,到2013年1月24日为止最新的零售版本为AdobeFlashProfessionalCS6(2012年发布)。
AdobeFlashProfessionalCS6为创建数字动画、交互式Web站点、桌面应用程序以及手机应用程序开发提供了功能全面的创作和编辑环境。
Flash广泛用于创建吸引人的应用程序,它们包含丰富的视频、声音、图形和动画。
可以在Flash中创建原始内容或者从其它Adobe应用程序(如Photoshop或illustrator)导入它们,快速设计简单的动画,以及使用AdobeAcitonScript3.0开发高级的交互式项目。
设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。
Flash可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。
通常,使用Flash[3]创作的各个内容单元称为应用程序,即使它们可能只是很简单的动画。
您也可以通过添加图片、声音、视频和特殊效果,构建包含丰富媒体的Flash应用程序。
AdobePhotoshopCS5Extended是电影、视频和多媒体领域的专业人士,使用3D和动画的图形和Web设计人员,以及工程和科学领域的专业人士的理想选择。
呈现3D图像并将它合并到2D复合图像中。
轻松编辑视频图层上的动画图形,让时间停下来。
以及使用测量、计数和可视化工具,探查您的图像。
使用Photoshop不仅可以将图像进行精确的加工,还可以将图像制作成网页动画上传到网页中。
2.3.3sql注入原理
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。
前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。
基于此,SQL注入的产生原因通常表现在以下几方面:
①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。
2.3.4防止sql注入
主要有六种防止sql注入的方法。
1.永远不要信任用户的输入。
对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和
双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。
MDCSOFTSCAN等。
采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。
3过程论述
3.1需求分析
3.1.1系统综合要求
管理人员能够通过管理员入口输入账号、密码(本系统默认的账号密码都是Admin)选择进入合同管理或者是汽车信息管理。
游客通过公司的主页实现对公司业务的了解,对公司信息的了解,获得自己需求的车辆信息,获得公司的联系方式,以及需要租贷车辆的有关信息,进行会员注册。
游客进行注册,注册后成为公司的会员,可以享受查看汽车信息,在线查询,在线提交租贷合同。
管理人员通过前台进入合同管理,实现合同的管理。
通过游客提交的租贷合同
增加合同信息:
通过新增的业务信息添加新的合同。
删除合同信息:
通过指定的合同(合同的id),删除该合同。
修改合同信息:
通过需要修改的合同,修改有关合同的信息(合同的填写时间、有关汽车的信息、租贷人姓名)。
显示所有的合同信息:
能够在页面显示所有合同的信息。
管理员通过前台进入汽车信息管理。
增加汽车信息:
增加有关汽车的信息(汽车的名称、汽车的车牌号码)。
删除汽车信息:
通过汽车的id,删除指定的汽车。
修改汽车信息:
通过指定的汽车id,修改汽车的名称和汽车的车牌号码。
显示所有的信息:
在页面上显示所有的汽车信息。
3.1.2系统功能模块设计
本系统主要有以下几大功能:
游客信息功能、会员业务功能、管理人员功能。
如图2所示:
图2系统功能模块图
3.2汽车租贷系统的总体设计
3.2.1系统操作介绍
首先浏览网页,普通游客可以浏览公司的信息,如果是管理员,输入管理员账号密码(账号密码本系统设计初都是Admin)可以进入后台进行后台的管理操作。
3.2.2系统功能图
系统的基本系统功能图如图3所示:
图3系统功能图
3.2.3数据库设计
在设计数据库时,综合实际情况,主要设计了5个表:
会员信息表、会员提交合同表、汽车信息表、车辆租贷合同表和管理员信息表。
表1是会员信息标的设计。
表1会员信息表
列名
类型/大小
键/允许空
描述
Id
Int/4
—
对记录标识递增量1
Username
Varchar/20
否
会员名
Password
Varchar/20
否
会员密码
Qq
Varchar/20
否
Qq号码
Phonenumber
Varchar/20
否
电话号码
Address
Varchar/40
否
地址
表2是会员提交合同表的设计
表2提交合同表
列名
类型/大小
键/允许空
描述
Id
Int/4
—
对记录标识递增量1
Name
Varchar/20
否
租贷人姓名
Tianshu
Varchar/20
否
需要租贷的天数
Carinfor
Varchar/20
否
汽车的车牌和名称
Phonenumber
Varchar/20
否
电话号码
Daytime
Varchar/20
否
租贷开始的日期
表3是汽车信息表的设计。
表3汽车信息表
列名
类型/大小
键/允许空
描述
Id
Int/4
—
对记录标识递增量1
Carname
Varchar/20
否
汽车的名字
Carnumber
Varchar/20
否
汽车的车牌号
表4是车辆租贷合同表的设计。
表4车辆租贷合同表
列名
类型/大小
键/允许空
描述
Id
Int/4
—
对记录标识递增量1
createTime
Varchar/20
否
增加合同的时间
carname
Varchar/20
否
汽车名称和车牌号
peoplename
Varchar/20
否
租贷人的姓名
表5是管理人员表的设计
表5管理员信息表
列名
类型/大小
键/允许空
描述
Id
Int/4
—
对记录标识递增量1
Name
Varchar/20
否
管理员姓名
Password
Varchar/20
否
登陆密码
4汽车租贷系统详细设计
4.1数据库设计的实现
首先建立好数据库Carsystem,再建立表。
实现过程在SQL2005执行下列代码。
------建立数据库
----createdatabaseCarsystem
----建立汽车信息表
--createtableCarInfo
--(
--idintidentity(1,1)primarykey,
--carnamevarchar(20)notnull,
--carnumbervarchar(20)
--)
--建立车辆租赁表
createtableZfInfo
(
idintidentity(1,1)primarykey,
createTimevarchar(20)notnull,
carnamevarchar(20)notnull,
peoplenamevarchar(20)notnull
)
----建立会员信息表
--createtableCarInfo
--(
--idintidentity(1,1)primarykey,
--Usernamevarchar(20)notnull,
--Passwordvarchar(20)notnull,
Qqvarchar(20)notnull,
Phonenumbervarchar(20)notnull,
Addressvarchar(20)notnull
--)
建立提交合同表
createtableCarInfo
(
idintidentity(1,1)primarykey,
Namevarchar(20)notnull,
Tianshuvarchar(20)notnull,
Qqvarchar(20)notnull,
Carinforvarchar(20)notnull,
Phonenumbervarchar(20)notnull,
Daytimearchar(20)notnull
)
----建立管理人员信息表
--createtableCarInfo
(
idintidentity(1,1)primarykey,
Namevarchar(20)notnull,
Passwordvarchar(20)notnull
)
4.1.1数据表操作类的各种方法设计
在完成前面的需求分析和数据库的建立后,现在要完成的是数据表操作类的设,在实际的项目中数据表的操作类肯定是对数据表的增删查改,数据表的增删查改我们一般来说是封装在一个类或多个类,我建立的数据库有5个数据表,相对应的是5个数据表的操作类。
主要对车辆信息操作类和合同信息的操作类。
对汽车信息标的操作类:
增加汽车信息、删除汽车信息、修改汽车信息、显示全部汽车信息。
对汽车租贷合同表的操作类:
增加车辆租贷合同、删除车辆租贷合同、修改车辆租贷合同、显示全部车辆租贷合同。
4.1.2整个系统构架的实现
在这个项目中我们采用的是三层架构,即WEB(界面显示层)、BLL(业务逻辑层)、DAL(数据访问层)。
WEB是调用BLL,BLL又是调用DAL。
对数据库的访问操作全部是放在DAL中的。
显而易见数据表操作类肯定是放在DAL中的。
根据这些知识,现在用VS2008先建立一个网站取名为WEB,然后在该网站上分辨添加DAL、BLL和Model三个类库。
DAL(数据访问层)的实现:
主要包括上那个类:
数据