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