
题 目 基于Delphi的汽车租赁
管理系统的设计与实现
指导老师 ndsz06jy2sl
专业班级 计算机应用技术
姓 名 ndsz06jy2sl
学 号 ***********
2008 年 5 月 25 日
摘 要:论文主要阐述了汽车租赁管理系统的设计思想及实现过程。系统采用C/S架构,后台采用自顶向下开发方法,并采用Delphi的开发工具与Access数据库进行开发,实现了汽车租赁综合信息的查询、租赁市场日常业务的处理等主要功能。本文主要包括:第一章对整个系统做了整体概述;第二章对系统进行了调研和可行性分析;第三章是对系统的功能、运行环境需求做了详细地说明以及给出了整个系统的业务流程图;第四章是本文的主要部分,从概要设计、数据库设计、各功能模块的设计等三个方面对系统的详细设计内容进行了阐述;第五章是对系统各功能模块的实现进行说明;第六章则是对系统的测试部分做了一些介绍;本文的最后是对整个系统完成的一些总结以及自己一些心得体会。
关键词:汽车租赁;Delphi;Access数据库
引言
传统的汽车租赁管理系统在数据处理方面比较繁琐,管理人员需要花费很多的时间和精力去处理它。计算机的存储与查询功能不能满足于用户的基本需求而且租赁的基本信息管理的精确度也不够高出现了不少的漏洞,这也很浪费人力和时间。 而汽车租赁管理系统对车辆的基本信息、租赁结算、租还时间等进行了综合统计和管理,使顾客和管理人员能够更快的得到自己想要的信息。一个好的汽车租赁系统首先应具备的是基本的信息管理,而汽车租赁管理系统不但对车辆信息、顾客信息都进行了系统的管理,而且顾客可以直接登陆系统查看所有车辆信息,也可以根据自己的需要搜索相关车辆的信息,并且可以进行网上租车。本文对系统开发中面临的问题及其解决方案进行详细的设计及合理安排,根据所掌握的Delphi技术对系统的各个功能进行了实现。
1.系统概述
1.1系统现状研究
传统的租赁管理系统采用各类表单来记录数据,最后需要盘点或统计时十分耗费时间和人力,采用本系统对汽车的租赁情况进行管理很方便地完成种类统计。为客户及时提供相关作息,杜绝车辆积压与短缺,提高客服水平,保证汽车顺利出租,以满足客户的需求,一个好的汽车出租管理系统应该具备基本的信息管理如对保险,驾驶员,车辆进行管理。当月能对一些数据进行统计,从而方便下个月的管理,方便客户清楚明白的了解具体汽车出租等。本系统主要目的是能方便了解车辆信息,车辆租赁信息,从而方便客户租赁。
1.2系统开发方法
本系统采用C/S体系结构,后台使用了Access数据库,不论管理员还是顾客只要登录本系统后,就可以根据需要进行相应的操作。
2.系统调研及可行性分析
2.1系统调研
通过对一些用户和部门的调查和研究表明,传统的租赁管理系统在后期维护和更新方面比较麻烦,如要对功能模块方面作进行修改,需要对整个系统的进行重新架构本系统将要实现的功能。
(1)在基本信息管理模式中实现了对车辆、客户、驾驶员等信息的增加、修改、删除的功能。
(2)在系统设置模式中实现了数据备份、权限修改以及数据初始化等功能。
(3)在日常业务模式中实现了对租赁信息、挂靠车辆信息及各类费用信息的增加、修改、删除的功能。
(4)在查询统计模式中实现了对各类信息的查询功能。
2.2系统总体目标
汽车租赁管理系统以计算机为工具,通过对租赁管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事汽车租赁管理的研究实施,租赁计划的制定执行,从而全面提高汽车出租数额。并且计算机的存储与快速查询功能大大提高了汽车租赁管理的效率,并且还提高了租赁基本信息管理的精确度。方便快速的操作,可减少租赁基本信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不必要的人员,这无论从物质上还是工作人员的工资上都为汽车租赁公司节约了开支。为汽车租赁公司增加了财富。
2.3技术可行性分析
2.3.1技术可行性
本系统是一个典型的数据库应用程序。现有的数据库应用程序开发技术已非常成熟,利用现有技术完全可以实现预定的功能。Microsoft Access 2003是一个基于关系模型的数据库管理系统(DBMS),可以在一个数据库文件中管理所有用户信息,它给用户提供了强大的数据处理功能,帮助用户组织和共享数据库信息,使用户能方便地得到所需数据。它支持多用户的新型数据库,适用于中小型规模的数据量需求。delphi7.0作为一种现代的编程语言,它提供了完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供了保障,,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改, 并且利用该工具能使模式操作人员可在短时间内完全掌握维护工作。
综上所述,本系统的设计与开发在技术上都是满足的,因此,它在技术上是可行的。
3.系统分析
3.1系统需求分析
经过以上对本系统的调研及可行性分析后,下面将对系统在功能上以及性能上进行进一步的需求分析。
3.1.1功能需求
(1)在基本信息管理模式中实现了车辆信息、客户信息、保险信息、驾驶员息、修配厂信息、加油站信息。
(2)在系统设置模式中实现了数据备份、权限修改、数据初始化、计算器、记事本。
(3)在日常业务模式中实现了租赁登记、租赁结算、挂靠车辆登记、挂靠车辆结算、加油记录、违章登记、维修记录、换油记录、其他费用。
(4)在查询统计模式中实现了租赁登记查询、租赁结算查询、维修记录查询、违章登记查询、加油记录查询、换油记录查询、挂靠车辆租赁查询、挂靠车辆结算查询。
3.1.2运行环境需求
1.硬件需求
CPU:主频400HZ以上。
内存:256MB以上。
2.软件需求
操作系统:Windows 2000/98/XP。
数据库:Access数据库管理。
显示器屏幕分辨率:最佳效果 800*600。
3.2系统业务流程图
图3.1系统业务流程图
4.系统设计
4.1概要设计
4.1.1功能模块结构图
图4.1 功能模块结构图
4.1.2功能模块描述
(1)登录模块
根据用户输入的用户名和密码,与数据库中进行匹配,验证成功后,进入主界面。用户名或密码错误提醒并返回错误点。输入三次错误的密码,自动退出系统。
(2)基本信息模块
能添加和修改车辆信息、客户信息、保险信息、驾驶员信息、修配厂信息、加油站信息的内容,也可以对其进行删除。
(3)在系统设置模式中实现了数据备份、权限修改、数据初始化、计算器、记事本等功能。
(4)日常业务
能实现租赁登记、租赁结算、挂靠车辆登记、挂靠车辆结算、加油记录、违章登记、维修记录、换油记录、其他费用等服务。
(5)查询统计
能按不同条件查询租赁登记查询、租赁结算查询、维修记录查询、违章记录查询、加油记录查询、换油记录查询、挂靠车辆租赁查询、挂靠车辆结算查询的信息。
4.2数据库设计
4.2.1 E-R模型设计
图4.2 E-R模型图
4.2.2表设计
表4.1用户信息表(dengruxinxi)
| 字段名称 | 数据类型 | 字段大小 | 说明 |
| Userno | 自动编号 | 长整型 | 用户编号 |
| Username | 文本 | 12 | 用户名称 |
| Logindate | 文本 | 20 | 登陆日期 |
| Logintime | 文本 | 20 | 登陆时间 |
| 字段名称 | 数据类型 | 字段大小 | 说明 |
| Clbh | 文本 | 5 | 车辆编号 |
| Clmc | 文本 | 12 | 车辆名称 |
| Cllx | 文本 | 10 | 车辆类型 |
| Cph | 文本 | 8 | 车牌号 |
| Clys | 文本 | 8 | 车辆颜色 |
| Fdjh | 文本 | 30 | 发动机号 |
| Dpbh | 文本 | 30 | 底盘编号 |
| Bxdh | 文本 | 30 | 保修单号 |
| Bxlx | 文本 | 30 | 保修类型 |
| Bxgmrq | 文本 | 12 | 保险购买日期 |
| Bxjzrq | 文本 | 12 | 保险截止日期 |
| Bxgs | 文本 | 30 | 保险公司 |
| Yyzh | 文本 | 30 | 营运证号 |
| Rylx | 文本 | 6 | 燃油类型 |
| Qccj | 文本 | 50 | 汽车厂家 |
| Gmrq | 文本 | 12 | 购买日期 |
| Bfrq | 文本 | 12 | 报废日期 |
| Whsj | 文本 | 12 | 维护时间 |
| Ecwhsj | 文本 | 12 | 二次维护时间 |
| Fjfh | 文本 | 30 | 附加费号 |
| Pfl | 文本 | 10 | 排放量 |
| Clzt | 文本 | 10 | 车辆状态 |
| Bz | 文本 | 备注 | |
| Clzp | 文本 | 车辆照片 |
| 字段名称 | 数据类型 | 字段大小 | 说明 |
| Hth | 文本 | 15 | 合同号 |
| Cph | 文本 | 8 | 车牌号 |
| Khxm | 文本 | 12 | 客户姓名 |
| Zldj | 文本 | 5 | 租赁单价 |
| Zlqx | 文本 | 5 | 租赁期限 |
| Xslc | 文本 | 5 | 现使里程 |
| Csdj | 文本 | 5 | 超时单价 |
| Cssdj | 文本 | 5 | 超驶单价 |
| Fclc | 文本 | 8 | 发车里程 |
| Fcrq | 文本 | 12 | 发车日期 |
| Fcsj | 文本 | 20 | 发车时间 |
| Yszj | 文本 | 8 | 预收租金 |
| Xzts | 文本 | 5 | 续租天数 |
| Xzzj | 文本 | 8 | 续租租金 |
| Yj | 文本 | 8 | 押金 |
| Yszj | 文本 | 8 | 应收租金 |
| Ssje | 文本 | 8 | 实收金额 |
| Jbr | 文本 | 12 | 经办人 |
| Bz | 文本 | 备注 |
| Sfxz | 文本 | Ture\\False | 是否续租 |
4.3.1用户登录模块设计
用户登录模块主要根据用户登录的信息,与数据库中信息成功匹配后,获得其相应的操作权限。
(1) 流程图
图4.3 用户登录流程图
(2) 处理说明
说明一: 程序启动后,首先显示闪窗并连接数据库。连接数据库成功,显示系统登入界面。系统登录界面验证操作员及密码。在系统登录模块主要实现如下功能:
①可选择操作员。
② 操作员和密码验证成功后,进入主要面。
③ 操作员错误或密码错误提醒并返回错误点。
④ 输入3次错误的密码,自动退出系统。
说明二:系统如何判断密码及用户名是否错误及输入3次错误的密码,自动退出系统。
4.3.2基本信息模块设计
基本信息模块主要实现管理员对车辆信息、客户信息和保险信息的编辑、保存、删除、修改、添加等操作。
(1) 流程图
图4.4车辆信息模块流程图
(2) 处理说明
说明一:单击“编辑”按钮,根据客户需求可以选择“添加”按钮和“修改”按钮,对客户信息进行相应的编辑。
说明二:选中需要删除的客户信息的记录,再单击“删除”按钮即可。
4.3.3系统设置模块设计
系统设置模块主要实现数据备份、权限修改、数据初始化等功能。
(1) 流程图
图4.5用户信息模块流程图
(2) 处理说明
说明一:单击“备份”按钮,根据需要在文件名里输入相应的信息然后单击“保存”,备份需要备份的文件。
说明二:单击需要“修改”按钮,可以对权限进行分配以及对用户名密码的修改。
4.3.4日常业务模块设计
日常业务模块主要实现是对各种车辆进行租赁的登记、租赁结算、维修信息的记录。
(1)流程图
图4.6租赁登记模块流程图
(2) 处理说明
说明一:单击“编辑”按钮,可以添加汽车租赁信息和修改汽车数据,单击“保存”按钮即可保存到数据库。
说明二:选中需要删除的租赁登记的记录,再单击“删除”按钮即可。
4.3.5综合信息查询模块设计
综合信息查询模块主要实现用户根据自己的需要对的具体信息进行查询,根据合同号、车牌号、登记时间、结算时间、维修时间进行相对应的查询流程图。
(1)流程图
图4.7查询统计模块流程图
(2) 处理说明
说明一:根据选择的合同号和车牌号,在租赁信息表中查询并显示出来。
说明二:根据选择的合同号和结算时间,在租赁信息表中查询并显示出来。
说明三:根据选择的车牌号和维修日期,在租赁信息表中查询并显示出来。
5.系统实现
5.1用户登录模块实现
图5.1用户登录模块效果图
该模块主要是实现用户的登录,是进入主界面的前提,只有用户名和密码验证成功后才能进入主界面,如果用户名或密码错误超过3次,自动退出系统。主要代码:main.auser.userid:=dm.qope.fieldbyname(‘userno’).asstring;
main.auser.username:=dm.qope.fieldbyname(‘username’).asstring;
5.2基本信息模块实现
图5.2基本信息模块效果图
单击“编辑’按钮,进入“车辆信息编辑”窗体。在车辆信息编辑窗体主要实现如下功能:添加车辆信息内容、修改车辆信息数据。更新最新信息后,然后单击“保存”按钮,再退出车辆信息编辑界面。该界面的主要代码为:procedure TCLXX_ED.SpeedButton1click(sender.tobject);beginCLS;ENA;ActionCD:=”N”; Bh; Edit2.setfocus;End;
5.3系统设置模块实现
图5.3系统设置模块效果图
程序启动后,选择”系统设置”菜单下的”数据备份”项或在程序主窗体中单击“数据备份”按钮,将进入数据备份模块。在界面中可以看到两个按钮即“备份”按钮和“退出”按钮,单击“备份”按钮后会跳出一个选择备份路径和文件名文本框对要备份的数据进行备份。该模块主要代码:savedialog1.filter:=’access文件(*.mdb)|*.mdb’; savedialog1.title:='选择备份路近和文件名’
5.4日常业务模块实现
图5.4日常业务模块效果图
程序启动后,选择“日常业务”菜单的“租赁结算”项后在程序主窗体中单击租赁结算按钮,进入租赁结算模块主窗体。单击“编辑”按钮,显示租赁结算模块编辑窗体。在租赁结算模块编辑窗体中主要实现:显示在租赁结算模块主窗体中选择的登记信息和对反还车辆信息的账款进行结算。管理员可以对还车信息和发车信息进行录入然后单击“结账"按钮进行结账如果录入出现错误可以按“取消”按钮,如果想退出该系统可以单击”离开“按钮。该模块主要代码为;edit21.text=inttostr(edit19.text#strtoint(edit20.text);
5.5查询统计系统模块实现
图5.5查询统计系统模块效果图
程序启动后,选择“查询统计”菜单下的“租赁结算差选”项,将进入租赁结算查询模块,在租赁结算查询模块中主要实现如下功能:按不同条件查询结算信息和打印查询信息。该界面有四个主要的按钮,“全部”按钮主要功能是可以显示全部的信息,“查询”按钮可以根据合同号或结算时间这两种方式进行查询自己需要的信息如果有必要可以按“打印”按钮进行打印,如果查询完后用管理员可以单击“离开”按钮退出该系统。该系统主要代码为:Combobox1.text:=’’;Datetimepicker1.enabled:=true;Datetimepicker2.enabled:=rrue;
6系统测试
6.1系统登录模块测试
(1)测试问题单
项目编号 测试类别:集成测试 序号: LWXT_001
| 产品标识 | 产品中文标识 | 汽车租赁管理系统—系统登录 | ||||||||
| 第几次测试 | 2 | 测试工程师 | Llp | |||||||
| 测试模块/功能/性能 | 系统登录 | |||||||||
| 测试记录单 | 测试时间 | 2008-2-14 | ||||||||
| 问题记录 | ||||||||||
| 序号 | 故障现象 | 级别 | 处理人 | 处理时间 | 处理说明 | |||||
| 1 | 当输入一用户名及密码后,在数据库中查找无该用户时无提示信息。 | 中 | 李丽萍 | 2006/5/20 | 已处理 | |||||
| 2 | 管理员登录后显示后台不正确。 | 中 | 李丽萍 | 2006/5/20 | 目前不处理 | |||||
表6.1
| 级别 | 描述 |
| 高 | 如使系统崩溃,功能无法实现或实现错误等 |
| 中 | 如界面中的错误,性能不优化,校验不严格等 |
| 低 | 如提示信息不明确,操作不方便,焦点跳转错误等 |
无
6.2查询统计模块测试
(1)测试问题单
项目编号: 测试类别:集成测试 序号:LWXT_002
| 产品标识 | 产品中文标识 | 汽车租赁管理系统—系统登录 | ||||||
| 第几次测试 | 2 | 测试工程师 | Llp | |||||
| 测试模块/功能/性能 | 查询统计系统 | |||||||
| 测试记录单 | 测试时间 | 2008-3-20 | ||||||
| 问题记录 | ||||||||
| 序号 | 故障现象 | 级别 | 处理人 | 处理时间 | 处理说明 | |||
| 1 | 学生登录系统后,对租赁结算不能在数据库中进行更新。 | 高 | 李丽萍 | 2006/3/20 | 已处理 | |||
| 2 | 学生登录系统后,无法最新显示车辆的基本信息情况。 | 高 | 李丽萍 | 2006/3/20 | 已处理 | |||
| 3 | 学生登录系统后,显示后显示的适用姓名不对。 即显示相同姓名的用户,没有分祖籍。 | 低 | 李丽萍 | 2006/3/20 | 已处理 | |||
表6.2
| 级别 | 描述 |
| 高 | 如使系统崩溃,功能无法实现或实现错误等 |
| 中 | 如界面中的错误,性能不优化,校验不严格等 |
| 低 | 如提示信息不明确,操作不方便,焦点跳转错误等 |
测试工程师负责填写除“处理人”、“处理时间”、“处理说明”以外的所有栏目“处理人”、“处理时间”、“处理说明”由开发人员负责填写。在“故障现象”填写中要详细描述发生问题的过程、操作、表现等,以便于开发人员恢复现场进行查错处理,必要时,可以附上相应的屏幕截图。如果有屏幕截图的话,请不插入到“故障现象”栏目中,在“故障现象”栏目只需填写相应图片的编号,在表单的后附图。“处理说明”:要详细说明发生问题的原因和解决问题的方法,项目主管要根据Bug级别及时督促有关负责及时解决问题。
6.3测试总结
本次测试主要用于对系统的出错进行测试,测试项目包括用户登录模块、基本信息模块日常业务模块、查询统计模块、数据处理等方面。在本次测试中我发现多处错误,经过修改,已对部分错误进行更正,其他部分正在进行中。通过本次测试,我希望在以后的开发中能够避免再犯类似错误。
结论
通过本系统的开发,我对软件开发过程有了更清晰的了解,首先是问题定义、需求分析,然后是功能设计、详细设计等,并对软件测试的方法、手段有了较深的理解,同时对汽车租赁管理系统的流程有了一个系统的认识。在开发过程还认真学习了与系统相关的知识,极大地拓宽了我的知识面,我感到收获不小。
在系统的开发初期,必须要熟悉汽车租赁管理的整个流程,初步了解租赁的相关知识,这样才能进入到设计的过程中去。从开始熟悉这些知识到对整体设计有了解,再从概要设计、详细设计到开始编码,以及最后的测试,整个过程感觉很充实,虽然遇到了不少困难,但当我通过自己查资料、或是向指导老师请教以及向同学请教,而设计出解决方案并成功实现时,那种成就感和满足感足以鼓励自己加班加点的辛苦。因为以前有过使用Delphil设计管理软件的经验,在这次设计的过程中,我遇到专业知识方面的困难并不是非常多,主要困难集中在管理知识、业务流程上等方面的不足。在实际的开发中我深刻的体会到了自己做课程设计和实际客户的要求之间的距离,不能凭空想象来开发软件,而是需要与客户不断的沟通交流,把客户真正的需求反映到你的软件当中。经过以上详细的设计与构架,终于完成了汽车租赁管理系统的开发。在本次开发过程中,遇到了很多的困难。包括数据库设计方面,技术实现方面以及系统测试方面。同时,我也受到了很大的启发,希望通过今后的学习,能够对本系统在安全性方面进行进一步的完善。
参考文献
[1] 周爱民.Delphi源代码分析[M].北京:电子工业出版社,2004.
[2] 陈瑞,叶核亚.Delphi程序设计实用教程[M].北京:电子工业出版社,2004.
[3] 彭明明,程文刚.Delphi数据库实用编程100例[M].北京:中国铁道出版社,2004.
[4] 王珍铃.实用软件工程教程[M].北京:清华大学出版社,2004.
[5] 孙涌,现代软件工程[M].北京:希望电子出版社,2002.
[6] 杨文龙.软件工程[M].北京:科学技术文献出版社, 19.
[7] 范俊弟.Access数据库程序设计(二级)[M].北京:电子工业出版社出版社,2005.
[8] 王凤岭.Access2002实用教程[M].北京:电子工业出版社,2003.
