汽车修理管理系统的设计与开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“汽车修理管理系统”的开发
描述一个“汽车修理管理系统”的全过程。
10.2.1 需求分析
某汽车修理厂根据业务发展的需求,决定建立一个“汽车修理管理系统”,以取代人工操作管理。开发项目如下:
(1)能对汽车修理有关数据进行输入、修改和查询。
(2)编制季度零件定货计划。
(3)打印汽车修理发票和工资月报表。
用户提出开发应用系统要求后,软件开发者应通过调查研究归纳目标系统的数据需求和功能需求。
一、数据需求
在调研的过程中,用户提供了该系所需的输出、输入单据(参阅图10.2~10.3)。输入单据包括修车登记单,汽车修理单,零件入库单和零件出库单等4种;输出单据包括零件定货计划,汽车修理发票和月工资报表等3种。不少单据都填写过数据,但却正合开发人员的需要,因为这为数据库设计提供了样例。
修车登记单
编号:5001 日期:99/01/12
修理项目点火线圈
汽车牌号A2020203 型号S130 生产厂南方汽车厂
车主名李符地址岭分路18号电话8787878
图10.3汽车修理单
汽车修理单
登记单号:5005 汽车牌号;a2312318
修理项目大修送修日期99/06/28
零件号10001 10004 10005
数量2 5 2
修理小时98.0
完工日期:99/07/27 修理工:李平
图10.4 零件入库单
零件入库单
零件号零件名成本数量价格最低库存量定货量
验收人:
图10.5 零件出库单
零件出库单
编号:日期:
零件号
数量
修理工:
图10.6 零件定货计划
第1季度零件定货计划
零件号零件名库存量最低库存定货量
10003 离合器3 4 2
二、功能需求
功能分析的任务,是弄清用户对目标系统数据处理功能所提出的需求。根据系统目标和数据需求并与用户充分讨论后,本例的功能需求可分为以下几个方面。
1.数据登记
登记功能用于把各种单据的数据即时登记到系统奖要定义的表中,还要求能进行修改,这些单据还包括修车登记单、汽车修理单、零件入库单和零件入库单。
图10.7 汽车修理发票
顾客姓名施志秋地址东方路1005号
汽车牌号A2312318 修理项目大修
送修日期99/06/28 备注
零件费894.0
修理费2352.0
总金额3246.0
月工资报表
工号姓名修理小时小时工资月工资
0001
0005
2.查询
能查询登记单,修理单,汽车,车主,修理工,零件库存的有关数据。
3.编制并显示季度零件定货计划
编制零件定货计划需要找出要定货的零件,定货条件为<最低库存量。定货量可由用户输入和修改。
4.打印发票
发票中除包含顾客、汽车及修理项目等数据外,还要计算出修车费,修车费包括修理费和零件费,按下式计算:
零件费=∑(零件价格*耗用数量)
修理费=小时工资*修理工时*3
总计=零件费+修理费
不难看出,发票包含的信息来自修车登记单和汽车修理单和零件出库单的各种单据,这是一向涉及面很广的功能。
5.打印修理工工资月报表
某修理工的月工资=∑修理小时*小时工资
10.2.2数据库设计
数据库设计的任务是确定系统所需的数据库。数据库是表的集合,通常一个系统只需要一个数据库。前以谈到,数据库设计可分为逻辑设计和物理设计两个步骤。第一步确定数据库所包含的表极其字段。第二步确定表的具体结构,及确定字段的名称,类型及宽度;此外还要确定索引,为建立表的关联准备条件。
一、逻辑设计
设计从输入数据着手,输入数据中的某类相关数据可以归纳唯一个表。对需要同时调用的若干表,应使它们符合关联要求。数据库设计好后,可通过输入数据类印证其可用性,若发现有的输出数据不能从输入数据导出,需继续向用户征集数据。本例根据季度零件定货计划、汽车修理发票和月工资报表等输出单据的数据需求,从修车登记单,汽车修理单,零件入库单和零件出库单等输入单据中归纳出包含6个表的数据库现将这些表例如下:
a 修理单:xld(编号牌号工号修理项目修理小时送修日期完工日期)
b 汽车:q
c (牌号型号生产家车主名)
c 车主:cz(车主名地址电话)
d 修理工:xlg(工号姓名地址电话出身日期进厂日期小时工资)
f 零件用量:ljyl(编号零件号数量)
g 零件库存:ljkc (零件号零件名成本库存量最地库存量定货量)
以上括号外的字符是表名,括号内为字段名表,第一个字段为关联关键字。根据系统数据处理的需求,这些表的关联情况如图10.9所视。图中用矩行框表示表,需要关联的两个表用线段联接,连线的一端标出关键字,表明必须在一端的表中建立索引。
下面对以上设计说明两点:
1为同时调用表中的数据,需将其关联起来,故有时应该在表中添加字段。例如仅从修理的
角度而言,qc.dbf包含牌号,型号和生产厂3个字段以很完整,单打印发票时要用到车主名和地址,为了qc.dbf与cz.dbf能以车主名关联,在qc.dbf中需增加车主名字段。
2.数据库设计必须注意合理性。如将不同的数据放进同一表中,可能回产生数据冗余。例如将qc.dbf与cz.dbf 的字段合并为一个表,由于一个车主可以拥有多辆车,在登记这些汽车的牌号、型号和生产厂的同时也要登记车主的车主名,地址和电话,那么这些记录中车主信息将重复记载。数据冗余会多站存贮容量,更糟的是还会破坏数据的一致性。如果车主易名,只要一处忘记修改,将来查询或打印是可能会输出不一样的数据。
表的分拆往往能减少数据冗余,单表个数的增多又会增加程序的复杂性,因为须在不同的工作区打开这些表,而且为了实现数据连用还要对表进行关联。
二、物理设计
下面列出汽车修理管理系统所有的表结构和索引,为读者理解本例系统,顺便一列出表部分记录。
1.修理单(c:\qcxl\xld.dbf)
结构:
xld(c(4),c(12),d,d,c(4)n(4,1))
记录:
记录号编号牌号修理项目送修日期完工日期工号修理小时
1 5001 A2020203 点火线圈01/12/99 01/15/99 0003 2.0
2 5002 R121212
3 刹车02/05/99 02/10/99 0005 3.2
3 5003 H210-100 喷漆02/06/99 02/13/99 0001 6.0
4 5004 K333-667 换转动轴05/08/99 05/15/99 0003 18.0
5 5005 A2312318 大修06/28/99 07/27/99 0001 98.0
2.汽车(C:\QCXL\QC.DBF)
结构
qc (牌号c(8)普通索引,型号c(6),生产厂c(20),车主名c(8))
记录
记录号牌号型号生产厂车主名
1 A2020203 S130 南方汽车厂李符
2 R121212
3 760 东环汽车制造厂马一鼎
3 H210-210 C12-5 国光轿车厂孔力
4 K333-667 FG323 V 福铃货车总厂贾嘉丁
5 A2312318 NA122 全球汽车厂施志秋
3.车主(C:\QCXL\CZ.DBF)
结构
cz(车主名c(8)普通索引,地址c (16),电话c(7))
记录:
记录号车主名地址电话
1 李符岭分路18号8787878
2 马一鼎鸿飞路10号5656555
3 孔力虎山路15弄15号3456789
4 贾嘉丁法平路213号3344556