1、编号:商丘工学院毕业论文(设计)题目:在线车辆租赁系统的设计与实现系别:信息与电子工程学院专业:软件技术姓名:邵香香成绩:指导教师:王艳丽摘要租赁汽车走进社区,走进生活,成为当今生活中不可缺少的一部分。随着汽车租赁业的发展,加强管理和规范管理促进汽车租赁业健康发展的重要推动力。汽车租赁业为道路运输车辆一种新的融资服务形式、广大人民群众一种新的出行消费方式和汽车生产厂家一种新的汽车营销渠道,在我国迎来良好的发展机遇,但同时也确实有许多问题的需要研究和探讨。本系统主要完成对车辆租赁的管理,包括添加、删除、修改,查询以及用户管理等五个方面。系
2、统可以完成对各类信息的浏览、查询、添加、修改、删除等功能。系统的核心是添加、修改和删除三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成添加或删除操作时系统会自动地完成车辆租赁信息的修改。查询功能也是系统的核心之一。此外,系统有完整的用户添加、删除和密码修改功能。本论文包括需求分析、系统设计、程序设计、系统测试及存在的问题等方面,较为系统地介绍了“在线车辆租赁系统”课题开发的整个过程。关键词:车辆租赁;数据库;管理系统目录一绪论11.1前言11.2系统开发环境及开发平台介绍11.2.1系统开发环境11.2.2系统开发平台简介1二系统分析32.1任务描述32.2UM
4、献30一绪论1.1前言现代科学的发展,使计算机进入几乎一切领域。从科学研究到工农业生产,从企业生产管理到家庭生活,各行各业都广泛地使用着计算机。当今社会的数据信息管理离不开计算机技术的支持。如何实现对数据信息快捷、有效、使用的管理,是软件开发业追求的目标。今天,随着社会生产的发展,人民生活水平的提高,汽车租赁已成为一个极具市场潜力的行业,面对飞速发展的租赁市场,传统的人工租赁管理方式在进行繁多的业务信息处理时显得极不适应,因此,人们对于运用计算机来辅助协调和管理租赁工作的需求正在逐步提高。1.2系统开发环境及开发平台介绍1.2.1系统开发环境1.硬件环境(1)CPU:DualT23
5、901.86GHz1.87GHz;(2)内存:2GB;(3)硬盘:160GB。2.软件环境(1)操作系统:Windows7;(2)数据库:SQLServer2008;(3)开发工具集:VisualStudio2008;(4)浏览器:IE8.0。1.2.2系统开发平台简介本系统利用微软的VisualStudio2008作为系统开发环境,利用SQLServer2008数据库作为数据存储系统,根据软件工程的思想开发而成。MicrosoftVisualStudio2008使开发人员能够快速创建高质量、用户体验丰富而又紧密联系的应用程序,充分展示了Microsoft
6、开发智能客户端应用程序的构想。借助VisualStudio2008,采集和分析信息将变得更为简单便捷,业务决策也会因此变得更为有效。MicrosoftSQLServer是一种典型的关系型数据库管理系统,可以在许多操作系统上运行,它使用Transact-SQL语言完成数据操作。由于MicrosoftSQLServer是开放式的系统,其它系统可以与它进行完好的交互操作。目前最新版本的产品为MicrosoftSQLServer2008,它具有可靠性、可伸缩性、可用性、可管理性等特点,为用户提供完整的数据库解决方案。二系统分析2.1任务描述课题以某汽车租赁应用背景,通过研究当前
10、:缴纳罚金用例。客户如果不能按时还车将缴纳罚金。2、员工参与的用例图员工参与的用例包括以下几个,如图8所示。(1)登陆系统用例:公司员工输入工作号和密码可以登陆系统。(2)处理预定申请用例:普通员工可以处理客户的预定申请。(3)将预定的车交付客户用例。(4)结束租赁业务用例:用户还车,技术人员确认车辆无误后,工作人员可以确定该租赁交易结束。ReserveprocessGivethecartocustomerincludeEndbussinessCheckthecarThecarQuerycustomerorderrecordRefuserequestAccept
11、requestincludeincludeincludeSystemlogin图2-2员工参与的用例图用例说明:(1)systemlogin:系统登陆用例。(2)reserveprocess:预定处理用例。(3)Querycustomerorderrecord:查询客户预定历史记录用例。工作人员可以把客户的历史记录作为判断是否接受客户请求的一个依据。(4)refuserequest:拒绝预定请求用例。工作人员可以根据情况拒绝客户的预定请求,例如客户历史记录不良,没有所需车辆等。(5)acceptrequest:接受预定请求用例。工作人员可以在核对客户情况及车辆状态后,可以接受
12、客户的请求。(6)givethecartocustomer:将预定的车交付客户用例。(7)checkthecar:检查车辆状况用例。技术人员可以对车辆进行检查,可以确定车辆是否被破坏。(8)endthebusiness:结束租赁业务用例三系统概要设计3.1系统的总体框架图3-1系统后台总体框架3.2数据库的设计3.2.1数据库SQLServer2008简介SQLServer是一个关系数据库管理系统。它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。在WindowsNT推出后
14、脑到运行MicrosoftWindows2008的大型多处理器的服务器等多种平台使用。SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、Sybase、MicrosoftSQLServer、Access等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于
15、它们的系统。但是,标准的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成绝大多数数据库的操作。MSSQLServer就是用的Transact-SQL。SQL语言有着非常突出的优点,SQL语言是非过程化的语言、统一的语言、是所有关系数据库的公共语言。非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对
16、单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。统一的语言:SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。SQL为许多任务提供了命令,其中包括:查询数据、在表中插入、修改和删除记录、建立、修改和删除数据对象、控制对数据和数据对象的存
17、取、保证数据库一致性和完整性等。以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:DML(DataManipulationLanguage,数据操作语言):用于检索或者修改数据;DDL(DataDefinitionLanguage,数据定义语言):用于定义数据的结构,比如创建、修改或者删除数据库对象;DCL(DataControlLanguage,数据控制语言):用于定义数据库用户的权限。DML组可以细分为以下的几个
18、语句:SELECT:用于检索数据;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE:用于从数据库中删除数据。DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX。数据定义语言DDL:它是用来创建和修改数据库结构的一种语句,包括Create、Alter和Drop语句。数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在
19、更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。用于修改数据库内容的SQL语句主要有以下三个:Insert,向一个表中加入新的数据行;Update,更改数据库中已经存在的数据;Delete,从一个表中删除数据行;Insert标准语法:INSERTINTOtable_name(col1,col2.)VALUES(value1,value2.)。Insert语句还可以将多行数据添加到目标表中去,在这种形式的Insert语句中,新行的数据值不是在语句正文中明确地
20、指定的,而是语句中指定的一个数据库查询。添加的值来自数据库自身的行,在某些特定的状态下,这是非常有用的。多行Insert语句为拷贝数据提供了一种紧凑而高效的方法。Update语句用于更新单表中选定行的一列或多列的值。要更新的目标表在语句中定义,Set子句则指定要更新哪些列并计算它们的值。Update语句总是包含Where语句,而且Update语句比较危险,所以您必须明确地认识到Where语句的重要性,Where语句被用来指定需要更新的行。3.2.2数据库设计表3-1管理员信息表表名Admin备注管理员表编号01列名类型(精度)默认值允许空约束条件说明Admin_IDInt无NoPK管理
27、Phone=tbUser_Phone.Text;returnmodel;#endregion#region点击注册protectedvoidbtnSubmit_Click(objectsender,EventArgse)BLL.BLL_Userbll_User=newBLL.BLL_User();Model.MDL_Usermdl_User=newModel.MDL_User();PubTool.ScriptClassscp=newPubTool.ScriptClass();trystringcodes=this.txtVeri
31、dl_User=bll_User.GetModelByLoginName(tbUserName.Text);intUser_ID=mdl_User.User_ID;SessionBLL.Config.User_IDSession=mdl_User.User_ID;SessionBLL.Config.User_NameSession=tbUserName.Text.Trim();scp.Redirect("User.aspx");elsescp.Alert("用户名或密码错误!");catch(Exceptionex)
33、。点击重置密码,一般管理员可以修改除主管理员外的其它管理员密码,主管理员可以删除自身以外所有管理员账号。添加和修改信息代码示例:#region获取页面数据/
34、dmin_Name.Text;model.Admin_Pw=tbAdmin_Pw.Text;returnmodel;#endregion#region点击保存protectedvoidbtnFinish_Click(objectsender,EventArgse)BLL.BLL_Adminbll_Admin=newBLL.BLL_Admin();Model.MDL_Adminmdl_Admin=newModel.MDL_Admin();PubTool.ScriptClassscp=newPubTool.ScriptClass();if
35、(whatDo="add")if(bll_Admin.HasAdminName(tbAdmin_Name.Text,-1)scp.Alert(tbAdmin_Name.Text+"已存在,不允许再添加!");return;bll_Admin.Add(GetModel(mdl_Admin);scp.ClickParentPageButton("btnRefresh");scp.AlertAndClose("添加成功!");/执行修改操作elseif(whatDo="up
36、date")if(tbAdmin_Name.Text=Admin_Name)mdl_Admin=bll_Admin.GetModel(Admin_ID);bll_Admin.Update(GetModel(mdl_Admin);scp.ClickParentPageButton("btnRefresh");scp.AlertAndClose("修改成功!");elsescp.Alert("您没有权限修改!");#endregion3.4.2用户管理模块可以查看所有的用户信息。通过点击添加按钮,可
37、以添加新的用户账号,以便于一些没有拥有账号的客户直接在店里办理租车业务。点击修改,可以修改用户信息。通过点击删除,可以删除一些恶意的用户账号。可以对用户姓名或身份证号进行模糊查询。添加和修改信息代码示例:/ 38、quot;>要跳转到的页码/ 40、;strSql.Append("orderbyUser_IDasc");returnpageClassCs.getPageDataForBase(strSql.ToString(),null,pageSize,goPage);3.4.3分类管理模块可以查看所有的车辆分类信息。通过点击添加按钮,可以添加新的车辆类别。点击修改,可以修改类别信息。通过点击删除,可以删除没有属于该类别的车辆的类别信息。删除信息代码示例:#region多功能事件protectedvoidbtncomand_Click(objectsender,EventArgs 41、e)BLL.BLL_Categorybll_Category=newBLL.BLL_Category();PubTool.ScriptClassscp=newPubTool.ScriptClass();/删除if(HFcomand.Value="delete")if(bll_Category.HasCar(int.Parse(HFvalue.Value)scp.Alert("存在车辆属于该类别,请先删除车辆!");return;bll_Category.Delete(int.Parse(HFvalue.Value) 42、;scp.Alert("删除成功!");ListBind();#endregion3.4.4车俩管理模块可以查看所有的车辆信息。通过点击添加按钮,可以添加新的车辆信息,并且能上传车辆图片。点击修改,可以修改车辆信息。通过点击删除,可以删除没有订单的车辆信息。上传图片代码示例:#region点击上传protectedvoidbtnFileUp_Click(objectsender,EventArgse)tryif(FileUpload1.HasFile)stringfileContentType=FileUpload1.PostedFile 44、与文件类型分开stringdotname=myfilemyfile.Length-1.ToString().ToLower();/得到文件类型stringfileName=getpicnewname()+"."+dotname;/文件名称stringfileName_s="s_"+fileName;/缩略图文件名称stringfileName_sy="sy_"+fileName;/水印图文件名称(文字)stringfileName_syp="syp_& 45、quot;+fileName;/水印图文件名称(图片)stringwebFilePath=Server.MapPath("file/"+fileName);/服务器端文件路径stringwebFilePath_s=Server.MapPath("file/"+fileName_s);/服务器端缩略图路径stringwebFilePath_sy=Server.MapPath("file/"+fileName_sy);/服务器端带水印图路径(文字)stringwebFilePath_s 46、yp=Server.MapPath("file/"+fileName_syp);/服务器端带水印图路径(图片)stringwebFilePath_sypf=Server.MapPath("file/shuiyin.jpg");/服务器端水印图路径(图片)if(!File.Exists(webFilePath)trystringfn=fileName;FileUpload1.SaveAs(webFilePath);/使用SaveAs方法保存文件lblFileUp.Text="成功上传。"/并生成+fileName_s+"”缩略图,文件类型为:"+FileUpload1.PostedFile.ContentType+",文件大小为:"+FileUpload1.PostedFile.ContentLength+"B&