1、汽车检测系统毕业设计论文doc第一章 可行性分析1、1 问题描述随着世界汽车产业格局的变化,我国汽车产业也迅速发展,汽车维修成为具潜力的行业,但汽车维修管理的规范化,网络化,智能化,使得必须建立起专业的汽车维修管理系统作为管理汽车维修方面的一系列问题成为了必不可少的。运用计算机来管理汽车维修的信息具有公正、严格和高效等诸多优点,从而取代了人工管理模式下由于各种原因出现管理漏洞的可能性,因而减少了工作人员的难度性,提高了工作效率。我们在现行系统初步调查的基础上提出了新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。1.2 可行性分析研究1.2.1 技术可行性技术上的可行性
2、分析主要分析现有技术条件能否顺利完成开发工作,硬、软件配置能否满足开发者需要等。目前大型汽车维修公司均建有局域网,并且采用PC机作为工作台,其容量、速度能满足系统要求。根据客户提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。1.2.2 经济可行性因为通过网络管理汽车维修信息可以不受限制,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高维修管理的效率,即提高了维修站的经
3、济效益,所以从经济上完全是可行的。(1)汽车维修公司有能力承担系统开发费用开发新系统的工作是一项艰巨复杂的工作,它的投资主要是人力和物力的投资。对于本系统的开发者来说,其主要投资还是在人力和物力两个方面。如果是企业自己安排人手开发系统的话,其主要的投资还是在人力资源上,从系统的业务需求调查到系统的分析编码制作都是需要巨大的人力投入的。软件企业作为一个简短的高科技产业,其员工要求都比一般企业的要求要高,而且对系统开发及软件产业了解比较多,所以在自我开发管理系统的过程中,企业自己比较容易安排人手,这样就可以为企业节约大部分的额外开支。同时软件就其它产品来属于高端行业,无论是产品的价格还是质量都比较
4、高,而经营产品的经销商或者是商家都要求有雄厚的资金支持。所以,在系统的开发过程中,企业完全有能力承担开发费用.(2)管理系统将带来经济效益管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。所以在管理中获得经济效益是一个综合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是简洁的,其最主要的表现就是减少了企业管理费用和人力开支。而其它一些繁琐的事物都通过新系统来加以分析解决,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。1.2.3 操作可行性本系统采用基于Windows的图形用户界面,
5、而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个汽车维修管理系统采用友好的交互界面,简洁明了,只需要对使用者进行简单的操作培训就可以使用本系统,来管理汽车的整个检修的流程。不需要对数据库进行深入的了解。1.3 结论意见综合以上三方面,无论是从技术上、经济上还是操作上,该系统都具有很高的开发可行性。系统基本上做到了在技术、经济、运行、法律上的可行,因此,相信在按照计划上实施的前提下,全系统的设计将会按时、高质量完成。所以,可以设计该系统的数据流程图,建立数据字典,开始开发系统。第二章项目开发计划2.1 编写目的经过可行性分析报告,得出项目可进一步进行下去的结论
6、,在软件继续进一步的开发之前首先给出此软件项目计划。2.2 项目背景项目分析单位在接到项目分析员给出的项目可行性分析报告后,在本系统,即车辆维修管理系统开发主管部门的统一下制定用于软件实质开发的软件项目计划,以使软件开发单位理解软件开发要求,进行开发。2.3 项目概述1、工作内容让计算机对车辆维修进行管理,用户可以直接在计算机上实现车辆检修的过程管理,在一定程度上实现信息化、自动化。 2、条件与限制开发该软件的条件比较简单,以开发单位目前的经济与技术条件已完全具备开发的条件。该系统可在用户要求的期限内完成。 3、产品1)软件软件主要是完成之后的可执行文件,能够使用户方便的使用。2)文档文档内容
7、包括:系统介绍,使用说明,测试计划及结果等。4、验收标准软件的验收标准完全由用户提出的软件需求制定,能保证软件的基本符合用户的要求。2.4 项目开发计划1、任务分解分三个大的阶段进行开发第一阶段完成本系统的数据流图跟E-R图;第二阶段完成概要设计与详细设计;第三阶段书写文档。2、预算软件资金投入较少,具体预算分配简略。 3、关键问题各模块之间的联系和后台数据库的完成。使用目前的设备与现有开发技术完全可以开发出该系统,总的来说该项目没有较大的技术难点与其他的一些风险因素。对于出现的一些小难点总都能得到解决。第三章 需求分析3.1 任务需求分析总的来说,汽车维修管理软件需要满足一下需求:(1)、该
8、管理软件需要对进维修站的车辆的基本信息进行登记。(2)、该管理软件需要对车辆的维修过程进行统计和管理。(3)、该管理软件需要对车辆检修过程中消耗的材料配件进行登记。(4)、该管理软件需要对车辆维修后所需支付的费用进行统计和计算(6)、该管理软件需要对车辆维修完成后的出站管理进行登记(7)、该管理软件需要能完成对车辆检修的过程,维修历史信息的一些综合查询3.2 数据流图及实体联系图3.2.1 数据流图数据流图由四种基本的元素构成:数据流(Data Flow),处理(Process),数据存储和数据源(数据终点)。数据流(Data Flow):为具有名称且有流向的数据,用标有名称的箭头表示,一个数
9、据可以是记录、组合项或基本项。处理(Process):表示对数据所进行的加工和变换,在图中用矩形框表示。指向处理数据流为该处理的输入数据,离开处理的数据为处理的输出数据。数据存储:表示用文件方式或数据库形式所存储的数据,堆砌进行的存取分别以指向或离开数据存储的箭头表示。数据源及数据终点:表示数据的来源或数据的去向,可以是一个组织或人员,它处于系统范围之外,所以又称它为外部实体,它是为了帮助理解系统界面而引入的,一般只出现在数据流图的起点和终点。汽车维修管理系统的数据流图如下:图 3-1数据流图3.2.2 实体联系E-R图根据对数据流图和数据字典分析,我们可以确定应用中的实体,属性和实体之间的关
10、系,并画出如下的E-R图 汽车管理系统的E-R模型如图3-2:图3-2 E-R图系统E-R图说明:1) 该E-R图只是介绍了每个模块的主要的属性,更加详细的介绍,请参照后面的系统详细设计2) 材料领用中的一个明细表是说明该表还有一个更详细的明细介绍第四章 系统概要设计4.1 总体设计通过这个阶段的工作将划分出组成系统的物理元素。系统概要设计的基本目的是用比较抽象的概括方式确定系统如何完成预定的任务,也就是要确定系统的配置物理方案。软件结构设计时应该遵循的最主要的原理是模块独立,让模块彼此间的接口关系应该尽量简单。4.2 系统功能模块图可以根据模块独立原理对软件结构进行精化。为了合理的分解,得到
11、尽可能高的内聚、尽可能松散的耦合,最终要的是,为了得到一个易于实现、易于测试和易于维护的软件结构,应该对模块进行再分解或合并。本检修系统的模块图如4-1 图4-1系统的模块图本系统一共包含以下几大模块:1、综合查询(1) 单车信息的查询主要包括查询看这个车辆是否在本维修站,现在的检修状态,历史记录(2) 月查询查询本检修站一个月的业务情况2、进出管理 (1) 汽车进站填写汽车的进站信息 (2) 汽车出站填写汽车的出站信息3、汽车检修管理(1) 汽车检修过程管理汽车检修开,完工时间的记录,及主要负责人4、结算管理(1) 检修结算对检修完成车的付费的管理5、成本检修管理(1) 材料领料对检修的车办
12、理材料领料(2) 材料退票6、库存管理(1) 材料出库(2) 材料入库7、基础设置(1) 员工维护8、系统维护(1) 数据库备份(2) 程序升级,数据库升级4.3 数据库概念设计数据库一般分为三级模式:外模式、概念模式和内模式。外模式也就是不同用户所对的数据视图,它将数据库内部抽象的数据及其互相之间的关系表示为简单、直观的应用界面。概念模式是数据库中全部数据的逻辑结构和特征描述,通常以某种数据模型为基础。内模式是对数据的物理结构和存储方式的描述。在这里将要设计的是数据库的概念模式,通过对车辆维修管理系统的内容和数据流程分析及E-R图,设计如下数据项和数据结构。(主要的业务表) 1) 汽车进站表
13、(主键,单击ID,进车时间,汽车编号,车主,审核,审核人,审核日期,是否作废,作废人,作废日期,备注) 2) 汽车出站表(主键,进车主键,出车日期,提车人,审核日期,审核,审核人,作废,作废人,作废日期,备注) 3) 检修表(主键,进车主键,开工时间,完工时间,负责人,是否合格,检修检次,检修类型)4) 结算表(主键,进车主键,应付款,实付款,付款日期,操作人)5) 领料主表(主键,进车主键,单据ID,开单日期,申请人,操作人,审核,审核日期,审核人,作废,作废日期,作废人,科目,备注)6) 领料明细表(主键,主表主键,物资编码,物资单价,物资单位,领用数量,审核人,审核,审核日期,作废,作废
14、人,作废日期,备注)4.4数据库逻辑结构设计在数据库设计中相当重要的一步就是将概念模型转化为计算机上DBMS所支持的数据模型,例如,将E-R图模型转化为关系模型,道理很简单,我们设计概念模型基本上都是一些抽象的关系,在再数据库设计的实现过程中,在计算机上有效地表示出这些关系就成了数据库设计的关键,根据机车检修系统的功能要求,选取了oracle9i做为后台的数据库在上面的实体和实体之间的E-R图设计的基础上,形成数据库中的表及表结构之间的关系下列图:1、进车表结构:(by_car_come)图4-2其中关键字段介绍:Pk_id :本表的主键生成是根据oracle提供的sys_guid()函数生成
15、的一个长度为32位的唯一标示,它所担当的功能除了是本表的唯一主键外,它还是其他业务表中的外键,其它业务表中都记着这个字段,通过这个字段来解决的问题是当同一个车辆在不同次的检修时能进行区分,2、检修表结构:(by_car_repair)图4-3其中关键字段介绍:Come_pkid:进车表的主键,通过它实现检修表和进车表的关联;Is_verify: 通过它来来确定这次检修的车是否是合格的;Repair_type:检修类型,主要是来用来区分本次检修的车是否需要付费,它主要取一下的值:(检修,返修,其他),这三种类型的值,当检修类型是检修时则需要正常付费,当它取值为 返修,其他时则它的这次检修可能是本
16、检修站造成的不需要支付本次的检修费用。3,材料领料表:(by_car_op_outdepot)图4-4其中关键字段介绍:Come_pkid:是进车表的主键,记这个字段的主要目的是能区分同一车牌号的车辆在本检修站的多次维修问题。O_id_apply:申请人字段,这个字段主要用来以后和这个人在本检修站的工作表现以及评优,工资,奖金等相关联。Subject_id :科目这个字段主要在财务上用来区分维修站在一个月,或季度中在不同方面的材料支出,现在它的取值有:检修,售后,其他。4,材料领料明细表:(by_car_op_outdepot_ list)图4-5其中关键字段介绍:Materal_price:
17、物资单价,因为本系统是一个维修管理系统,而本系统需要在一次检修完成时,就要统计本次检修所需要的费用,所以该单价记录的是检修当时所用材料的单价,而不是采用的当检修完成付费时在计算该物资在库存中的数量,这样的好处是能更准确反映该车辆在当时检修是所耗用的费用,而不是按现在的库存单价,这样也更能赢的客户的满意,提高自己检修站的声誉,从而产生更好的效益。Material_uit:物资单位,这也是一个需要详细设计的字段,因为本系统在算车辆在本次检修的费用时,就是统计的本表中所领用的消耗材料的费用,这个字段所可能遇到问题是:比如该物品在采购时使用的单位是百个(或者是盒),而在领用的过程中所按的单位是个,在这
18、样两次操作过程中假如数量列都是 1,而采购时单位是百个,这样总数量就是100个,而在领用时单位是个,总数量就是1个,这样一来总金额就产生了很大的差别,数据库中的数据就不能保证完整性,所以在本系统中所给出的解决方案是单位同一,都用个,这样在后台中处理数量则就能避免这样的问题。这中问题隐蔽性很强不易被发现,所以在设计工程中要时刻注意这种问题。Main_pkid:和主表的关联外键。5,付款表(by_car_pay)图4-6其中关键字段介绍Come_pkid:解决重复问题 S_pay:在实际当中客户所支付的材料消耗费用一般情况下跟实际消耗的材料费用是不相等的,所以这里记下了客户所支付的金额。6,库存表
19、(by_car_mateial_kc)图4-7这里只是列举了一个简单的库存表,主要目的是来阐述一下,库存表中到底是数量,金额,还是记录数量,单价。本系统采用的是前者,也推荐采用前者,下面来做一个简单的介绍一般的仓库表中都要涉及到的三个字段就是,数量,金额,单价。而且存在这样的等式关系:金额 = 数量*单价。在数据库设计中是没有必要这三列都存储的可以根据其中的两个来计算第三者,(实际中数量必选,在金额和单价之间选择)但是当你选择在数据库中存储单价时就可能产生很多问题,比说当你选择存储单价,小数位留几位的问题,一般觉得留2位就够了,可是在实际中涉及到的物资的单位可能有很多种,比如说库存中单位有是吨
20、(t),而也有单位是克(g)的,这种情况下单价的小数位如果只有两位那么这两着的总金额可能就会产生很大的区别,你可能会用增加单价的小数位来解决这个问题,可是库存中还有很多其他的物资的,他们的单位不可能用到很多位,这样一来数据库中将会产生很多的一列不好读懂的数据,而且处理起来也会引起很多的问题。所以我们将在库存中存,数量和金额,在我领用材料时,我们来计算该物资的平均单价,当办理材料出库时,我们分别来更新金额和数量,这样长时间的平均下来我们库存中的材料价额也能反映现在市场上这种物资的价格走势。所以在本系统中存储的是数量和总金额7,出车登记表(by_car_out)图4-8其中关键字段介绍:Out_D
21、ate:记录该车这次检修出维修站的时间,好用来统计该车的总的检修时间以及该维修站的工作效率4.5连接数据库的特点当开发环境通过连接到数据库上之后,在设计中使用数据库画笔可实现对该数据库中表格,视图等的操作,如创建表,修改表,删除表,增加/删除记录。设计中设计数据窗口的时候,通过对话框实现与数据的连接。在应用程序中则一般是在应用程序对象中书写连接数据库的程序代码,使得应用程序开始运行并实现与数据库的连接第五章 程序详细设计详细设计阶段的根本目标是确定应该如何具体地实现所要求的系统,包括了用户界面设计、程序过程设计等步骤。5.1 系统的设计和开发环境操作系统:WindowsXP。数据库系统:ora
22、cle9i开发工具:PowerBuilder10.5PowerBuilder是著名的数据库应用开发工具生产厂商Sybase Inc.的子公司PowerSoft于 1991年6月推出的数据库应用开发工具 .PowerBuilder除了能够设计传统的高性能、基于客户/服务器(Client/Server)体系结构的应用系统外,也能够方便地构建和实现分布式系统,还可以开发基于Internet的应用系统。PowerBuilder采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用PowerBuilder,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。用Powe
23、rBuilder不仅能够开发客户端应用程序,而且还可以轻而易举地构造应用服务器,从而形成分布式应用。PowerBuilder支持多种平台,并能生成机器代码的可执行文件5.2 用户界面设计5.2.1 一般交互设计一般交互涉及信息显示、数据输入、和系统整体控制等方面。1、一致性为客户交互界面中的菜单选择、命令输入、数据显示以及众多的其他功能,使用一致的格式。在设计的过程中,基本上保持了系统的格式一致。2 、行有较大影响的操作前提示用户确认在设计过程中,如果用户要执行作废操作,以及对数据库的读写操作时,都会有窗体弹出询问继续操作或者予以提示3、减少操作间需要记忆的内容为了避免用户为下一步操作而记忆大
24、量数据,所以在设计过程中在需要数据传递的窗体中设置结构变量,来传递数据。4、允许错误允许用户的误操作尽量不对系统造成伤害5.2.2 信息显示设计应当尽量为用户提供的界面显示时完整的、明确的和容易理解的。这样才能满足用户的需求。使用不同的方式显示信息:用文字、图形、颜色和符号等方式传达信息。1、只显示与当前工作有关的信息在用户操作有关系统的特定功能的信息时,不必看到与之无关的数据、菜单和图形。2、使用便于用户迅速吸收数据的方式来表示数据在系统设计的过程中,较多地使用了图表的形式表示数据,例如在分析中就使用了折线图形式表现了复杂的数据。这样,用户可以直观的体会到图表所表示的含义。3、使用一致的标记
25、、标准的缩写和可预知的颜色为了使系统所表达的含义准确、无误,就必须适用一致的标记、标准的缩写和可以预知的缩写,这样用户就无需参照其他信息源就能理解,而正确地适用软件。5.2.3 输入界面设计用户的大部分时间用在选择菜单命令、键入数据和向系统提供输入。在系统中,键盘是主要的输入介质,因此我们要做到保证显示信息和数据输入的数据之间的一致性,尽量少的改变程序界面的风格,5.3 系统的主要功能及实现根据上面的需求分析,设计好数据库系统,然后开发应用程序可以考虑的窗体的系统,每一个窗体实现不同的功能,可以设计下面的几个模块。5.3.1 进出管理 汽车进站:功能:本模块的主要功能是对进入维修站的车辆管理登
26、记,包括对新来的车辆进行添加,作废,导出,打印。具体实现:当有新的维修车辆进入维修站时,需要办理添加,车牌号,车主等信息汽车进站按钮在主界面的位置图5-1 点击这个按钮后可以看到该菜单下的两个主要的模块,汽车进站和出站,点击进站可以看到如下的界面图5-2在打开主界面时系统会有一个默认的时间,一般是本月的一号到系统的当前时间,系统会将在这个时间段内的数据通过左侧的数据窗口对象将数据过滤出来,呈现到用户的界面前,数据有三种颜色,灰色-数据未审核,蓝色-数据已审核,红色-数据已作废,不同颜色的实现是通过动态获得数据窗口对象字段的取值,根据不同的取值来显示字体的不同颜色。当点击添加时,系统会弹出新的进
27、车添加窗口图5-3在这里面进行汽车进站的添加、修改、等操作。单据ID在新界面打开时是不会赋值的,当确定添加的保存时才会生成,这样做的好处就是避免了同时操作数据库时生成相同的单据号,能更好的减少程序的并发执行,保存时执行了数据窗口的update语句,同时更改数据窗口为只读属性dw_1.Modify(DataWindow.readonly=yes),对于保存成功的单据就可以进行审核操作了,通过sql的update语句将刚才更新到数据库记录的审核标记更改为已审核,同时执行数据存储过程DECLARE lp_pro PROCEDURE FOR pkg_carout.in_carout(:ls_guid,
28、:ls_carcode);EXECUTE lp_pro;向出车表里面添加数据,更新出车表。审核时同时操作了数据库里面的两张表,只有当这两个表的更新都成功执行后我们才能执行commit;语句,将所有的数据一次性的全部提交到数据库中,当当者有一个更新没有成功时,我们都要对数据操作进行rollback操作,提示用户操作失败,只有这样我们才能保证数据库中的数据完整的。当审核后下面的审核提示就会显示,当我们退出这个界面时我们就会在主界面中看到我们添加的数据。图5-4因为系统是按进车日期降序排列的,所以我们新添加的数据会显示在第一行,由于数据窗口是继承孙老师的数据窗口控件,支持点击数据窗口表头进行排序。查
29、询按钮当点击是系统就会按照左侧的查询条件进行随意的组合快速的找到我们需要的,图5-5单据,我们就可以对单据进行修改了。这里主要用到了PB里面通过ls_original_select = dw_1.GetSQLSelect( )动态的获得数据窗口对象的where条件,通过新添加的条件我们可以修改where条件,在将我们新生成的where条件和select语句关联再用dw_1.SetSQLSelect(ls_select)语句将数据窗口中的数据进行重新提取。 汽车出站: 前提条件:已办理结算付款 功能:对将要离开本检修站的车辆提车人和出车时间进行登记 出车管理主界面:图5-6同样我可以根据左侧的查
30、询条件快速找到我们需要办理出车登记的车辆,双击该行时会打开新的窗口图5-7这个窗口我们使用freeform格式的数据窗口对象,根据双击事件中的脚本OpenWithParm(w_car_comeadd_read,ls_guid)的guid参数,我们使用带参数的数据窗口提取数据找到我们需要的数据,我们就可以添加数据项,保存时用数据窗口的update语句,将我们更改的数据 更新到数据库中。审核后根据得到值将字体的颜色改变:if( is_verify =1,rgb(0,0,255),if( is_destory=1, rgb(255,0,0), rgb(0,0,0) )退出后刷新主数据窗口将我们的数据
31、提取到界面供用户查看, 对于审核后的数据我们不能再进行修改了。5.3.2 汽车检修管理检修过程前提条件:已办理进车登记,并审核功能:主要对车辆检修过程中,开工,完工,检修类型,汽车主要故障录入,数据的导出,打印等。图5-8左侧数据窗口检索数据的条件是车辆已经进站并且已经审核。单击需要的车辆后我们可以在右侧的数据窗口中显示我们需要的检修车辆的信息。在这里面我们需要输入的开工的日期和完工的日期,这两个在系统中我们使用的是pb中提供的日期控件,这样我们能减少用户的输入,从而能减少用户输入数据时产生的错误。当我们点击开工时系统会提示是否将开工时间设定为输入的值,因为我们现在定义数据库时有一个字段标记了是否开工,当填入数据保存后系统不再提供修改本时间的窗口,所以该时间需要用户谨慎填写。点击开工后调用数据窗口的update语句更新数据。当车辆修竣完成时,需要填写的信息主要有本次检修类型,本次检修故障,在设计填写检修故障时考虑到用户输入数据习惯点击这个按钮。图5-9系统会弹出新的故障录入界面如下图5-10
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1