《汽车维修管理系统的设计与实现(共29页).doc》由会员分享,可在线阅读,更多相关《汽车维修管理系统的设计与实现(共29页).doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上*实践教学* 兰州理工大学计算机与通信学院2011年秋季学期 C+面向对象 课程设计题 目:汽车维修管理系统的设计与实现专业班级: 计算机科学与技术(1)班 姓 名: 张钱鹏 学 号: 指导教师: 年福忠 成 绩: 专心-专注-专业摘 要汽车维修仓库管理信息系统,可以高效地用于汽车零配件的管理,是企业信息化管理的重要组成部分。本系统为汽车服务行业的中小企业仓库管理提供了一套行之有效的解决方案,系统设计和实现是对现代仓库管理的一次实践探索。关键词:汽车维修仓库;管理信息系统;用户管理;SQL SERVER。目 录附录:源代码16 一. 概述1项目背景在计算机不断发展的今
2、天,计算机已经运用到各个领域,计算机的作用使由手工的操作到计算机的操作是一个大的飞跃,代替的复杂的容易出错的人工操作,节省了大量的时间,提高了正确性,提高了数据的可靠性。因此每个公司使用计算机建立自己的业务是迫在眉睫,汽车修理厂根据业务发展的需要,决定建立一个数据库管理系统,以代替单一的人工管理。这样使人工操作的管理方便,简单。2编写目的 编写的目的是使汽车修理厂由单一的人工管理到计算机管理的飞跃,使汽车修理厂的管理的效率得到很大的提高,使人工管理的出错的机会大大减少,实现数据的共享,便于查询自己的数据信息,使汽车修理厂的业务的流程时间大大减少,从而可以提高该汽车修理厂的竞争性,在社会有立足之
3、地。3软件定义 该软件为第一版,即汽车修理管理系统 1.0 版。4开发环境数据库: SQL SERVER 2000开发和编译环境: Visual C+6.0。二需求分析1通过分析得知,该修理厂共使用5种单据,4种账册和3种主要报表。 五种单据如表1所示:表中D1由送修人填写。修理派工员据此开出修理单D2,分派给指定的修理工执行。如果在修理中需要更换零件,一律由修理工填写零件领用单D3向仓库领用。修理结束后,修理工将D2交回给派工员,然后转财务部门结账并开修车发票D5。D4在零件入库时由仓库管理员验收并且填写。图6显示了这些单据的格式内容。编号名称填写人D1修车登记单送修人D2汽车修理单修理派工
4、员和修理工D3零件领用单修理工D4零件入库单仓库管理员D5修车发票财务人员表1 当前系统单据一览表汽车修理单 修理单编号: 汽车牌号: 修理工工号: 送修日期: 修理项目: 派工员: 零件用量零件号:数量:修理小时: 完工日期:修理工:图3汽车登记单 日期: 汽车牌号: 型号: 生产厂: 修理项目码: 车主名: 电话: 地址:图2修车发票 日期: 车主名:地址:牌号: 修理项目:修理费零件费总计图6零件入库单 日期: 零件号:零件名:成本:数量: 验收人:图5零件领用单 日期: 修理单编号: 零件号数量图4 四种账册,如表2所示。图7-10显示了这些账册的表式。编号名称建账根据Z1汽车登记册D
5、1Z2修理工名册人事部门资料Z3汽车修理台账D2,D5Z4库存修理台账库房资料表2 当前系统账册一览表牌号型号生产厂车主名地址电话图7 汽车登记册表式工号姓名小时工资出生日期进厂日期地址电话图8 修理工名册表式工号牌号修理项目修理工号修理小时修理费零件费总计零件用量送修日期完工日期零件号数量零件号数量零件号数量图9 汽车修理台账表式零件号零件名成本价格库存量最低库存量订货量图10 库存零件台账表式 3种主要报表如表3所示编号名称 数据来源B1零件耗用月报表Z4.Z3,B2修理工资月报表Z3,Z2B3零件订货计划Z4表3当前系统报表一览表图11-13显示了这些报表的格式。零件名数量价格名称利润图
6、11零件耗用月报表零件名订货量成本总计图12零件订货计划工号姓名修理小时小时工资月工资图13修理工资月报表这些报表是以上面提供的九种单据、帐册为依据,由程序自动统计生成的无需人工干预。零件耗用月报表是以零件入库、单零件领用单为依据生成的;零件订货计划由库存零件台账生成, 如果库存余量小于最低库存量,则产生订货计划;修理工资月报表由修理工名册和汽车修理台账生成。2ER模型图。汽车登记单日期汽车牌号生产厂修理项目码车主名电话地址汽车修理单零件用量修理工完工日期修理小时数量零件号派工员修理工工号修理项目送修日期汽车牌号修理单编号零件领用单零件号日期修理单编号数量零件入库单验收人成本零件号日期零件名数
7、量修车发票车主名日期牌号地址总计零件费修理项目修理费序号汽车牌号成本序号修理单编号操作员图12零件订货计划图11零件耗用月报表车主名牌号电话汽车基本信息地址型号生产厂修理工名册进厂日期小时工资电话工号出生日期姓名修理费序号汽车牌号成本序号修理单编号操作员图12零件订货计划图11零件耗用月报表汽车修理台账修理项目牌号修理工号修理单编号修理小时序号数量零件费总计修理费序号汽车牌号成本序号修理单编号操作员图12零件订货计划图11零件耗用月报表送修日期完工日期库存零件台帐额定订货量零件名零件号成本最低库存量价格库存量利润零件名零件耗用月报表数量价格零件号总计订货量零件订货计划零件名成本修理工工资月报表
8、小时工资月工资工号修理小时姓名三数据库逻辑设计 列名数据类型可否为空说明idintNot null 序号xcdjnovarcharNull 修车登记编号qcdjnovarcharNull汽车牌号qcdjclassvarcharNull型号qcdjfactoryvarcharNull生产厂qcdjpersonvarcharNull车主名qcdjtelvarcharNull电话qcdjaddrvarcharNull地址qcdjxiangmuvarcharNull修理项目qcdjdatedatetimeNull日期managervarcharNull操作员列名数据类型可否为空说明idintNot n
9、ull 序号qcxlidvarcharNull 修理单编号xcdjnovarcharNull 修车登记编号qcxlnovarcharNull汽车牌号qcxlfrdatedatetimeNull送修日期qcxlxiangmuvarcharNull修理项目qcxlgonghaovarcharNull修理工工号qcxlpaivarcharNull派工员qcxllingjiannovarcharNull零件号qcxlnumbervarcharNull数量qcxlhourvarcharNull修理小时qcxltodatedatetimeNull完工日期qcxlxlgvarcharNull修理工manag
10、ervarcharNull操作员列名数据类型可否为空说明idintNot null 序号ljlydanidvarcharNull 零件领用单编号ljlyidvarcharNull 零件号ljlyljhaovarcharNull修理单编号ljlynumberintNull数量ljlydatedatetimeNull日期managervarcharNull操 作 员 列名数据类型可否为空说明idintNot null 序号ljrknovarcharNull 零件号ljrknamevarcharNull 零件名ljrkPricevarcharNull成本ljrknumbervarcharNull数量
11、ljrkdatedatetimeNull日期ljrkpersonvarcharNull验收人managervarcharNull操作员 列名数据类型可否为空说明idintNot null 序号xldnovarcharNull 修理单编号fpnamevarcharNull 车主名fpaddrvarcharNull地址fpnovarcharNull汽车牌号fpxiangmuvarcharNull修理项目fpxlmoneyvarcharNull修理费fpljmoneyvarcharNull零件费fpsumvarcharNull总计fpdatedatetimeNull日期 列名数据类型可否为空说明id
12、intNot null 序号xlgnovarcharNull 工号xlgnamevarcharNull 姓名xlghourmoneyvarcharNull小时工资xlgbirthdaydatetimeNull出生日期xlgworkdatedatetimeNull进厂日期xlgaddrvarcharNull地址xlgtelvarcharNull电话列名数据类型可否为空说明idintNot null 序号xltznovarcharNull 修理单编号xltzqcnovarcharNull 汽车牌号xltzxiangmuvarcharNull修理项目xlgnovarcharNull修理工号xltzh
13、ourvarcharNull修理小时xltzxlmoneyvarcharNull修理费xltzljmoneyvarcharNull零件费xltzsumvarcharNull总计xltzljnovarcharNull零件号xltznumbervarcharNull数量xltzfrdatedatetimeNull送修日期xltztodatedatetimeNull完工日期 列名数据类型可否为空说明idintNot null 序号ljnovarcharNull 零件号kcljname(varcharNull 零件名kcljchengbenvarcharNull成本kcmoneyvarcharNull
14、价格kcnumbervarcharNull库存量kcminintNull最低库存量kcdinghuovarcharNull额定订货量列名数据类型可否为空说明idintNot null 序号ljhynovarcharNull 零件号ljhynamevarcharNull 零件名ljhynumbervarcharNull数量ljhymoneyvarcharNull价格ljhylirunvarcharNull利润列名数据类型可否为空说明idintNot null 序号ljdhnamevarcharNull 零件名ljdhnumbervarcharNull 订货量ljdhmoneyvarcharNul
15、l成本ljdhsumvarcharNull总计列名数据类型可否为空说明idintNot null 序号xlgznovarcharNull 工号xlgznamevarcharNull 姓名xlgzhourvarcharNull修理小时xlgzhourmoneyvarcharNull小时工资ljdhsumvarcharNull月工资 列名数据类型可否为空说明idintNot null 序号ljnovarcharNull 零件编号ljnamevarcharNull 零件名ljchengbenvarcharNull 成本ljmoneyvarcharNull价格列名数据类型可否为空说明idintNot
16、null 序号qcnovarcharNull 汽车牌号qcclassvarcharNull 型号qcfactoryvarcharNull生产厂qcpersonvarcharNull车主名qctelvarcharNull电话qcaddrvarcharNull地址 四软件功能设计汽车修理管理系统帮助帮助文档关于该系统报表操作零件定货计划表员工工资月报表零件耗用月报表表单操作修车发票零件领用单零件入库单汽车修理单修车登记单帐册操作库存零件台帐汽车修理台帐修理工名册汽车登记册基本信息零件基本信息修理工基本信息汽车基本信息系统管理管理用户退出系统修改密码注销用户1.软件功能模块图2.各模块功能说明:1系
17、统管理: 管理用户:包括用户的添加、修改、删除,退出 修改密码:包括旧密码、新密码及新密码的确认 注销用户:退回到登陆模式 退出系统:退出2基本信息: 零件基本信息:包括的功能有零件的添加、修改、删除、查询 汽车基本信息:包括的功能有汽车的添加、修改、删除、查询 修理工基本信息:包括的功能有修理工的添加、修改、删除、查询3表单操作: 修车登记单:包括的功能有修车登记的添加、修改、删除、查询 汽车修理单:包括的功能有汽车修理的添加、修改、删除、查询 零件入库单:包括的功能有零件入库的添加、修改、删除、查询 零件领用单:包括的功能有零件领用的添加、修改、删除、查询 修车发票:包括的功能有修车发票的
18、添加、修改、删除、查询4帐册操作 汽车登记册:包括的功能有汽车的添加、修改、删除、查询 修理工名册:包括的功能有修理工的添加、修改、删除、查询 汽车修理台账:自动汽车修理生成台账,有打印和查询的功能 库存零件台账:自动库存零件生成台账,可以更新和查询5报表操作 零件耗用月报表:自动生成,有打印和查询功能 员工工资月报表:自动生成,有打印和查询功能 零件定货计划表:自动生成,有打印和查询功能6帮助 帮助文档:用户操作手册 关于该系统:版本说明五系统界面1用户登录(用户名及密码都为admin) 2用户管理 3主界面及数据添加六设计总结SQL Server2000是美国微软公司开发的一款关系型数据库
19、管理系统的产品,具有成本低,易上手,工具全等优点。适用于大型或超大型数据库服务器端。它所使用的是增强型T-SQL语言。这个程序用到的数据库是一个关系型的数据库,设计关系型数据库的重头戏是把数据元素分别放进相关的表格里。一旦准备好开始操作数据,要依靠表格之间的关系把数据以有意义的方式联系到一起。这也是这个数据库程序设计的难点所在。视图是关系型数据库系统提供给用户以多种角度观察数据库中数据的重要机制。视图具有如下的一些优点: 1.简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,使用户不必为以后的操作每次都指定全部的条件。 2.安全性。通过视图用
20、户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。 3.逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。在本程序中的三种统计报表:零件耗用月报表,修理工工资月报表,零件订货计划。都是通过视图来完成自动的统计的。 数据库程序编写是通过对MFC ODBC 数据库访问技术的运用实现。ODBC基于SQL(St
21、ructured Query Language),并把它作为访问数据库的标准。这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。ODBC可以为不同的数据库提供相应的程序。CRecordset类代表一个记录集。该类是MFC的ODBC类中最重要、功能最强大的类。本程序对数据库的操作大多是基于这个类的。通过本次课程设计,让我对SQL SERVER 2000及Visual C+ 之间的设计连接有了更深的理解,提高了软件系统的设计能力,在设计中虽然遇到了很多困难,通过同学朋友帮助,及
22、网络询问、搜查,慢慢解决遇到的问题,最终还是完成本次的课程设计,使我对编程有了更大的兴趣,形成正确的编写Windows程序的思路,了解利用Visual C+编写程序的奥妙。本次的设计还有些“瑕疵”,主要是系统界面不够漂亮,还有待提高。致 谢首先非常感谢我们学院开设软件开发综合训练的课题,为我们日后从事计算机方面的工作提供了实战的经验,奠定了初步的基础。本次课程设计我们花费了三周的时间,三周来我们的辅导老师不辞辛苦的给我们辅导、为我们讲解疑难问题。在此,特别感谢我们辅导老师对我的谆谆教诲、耐心细致的讲解。参考文献1张海藩.软件工程导论M.清华大学出版社.2003年12月2张海藩. 软件工程导论学
23、习辅导M.清华大学出版社.2004年3萨师煊.王珊.数据库系统概论M.清华大学出版社.2002年 4汪孝宜.刘中兵,徐佳晶等.JSP数据库开发实例精粹M.电子工业出版社.2005年1月5周之英.现代软件工程.科学出版社.2000年1月6唐任仲.工程应用软件开发技术. 化学工业出版社.1999年5月7萨师煊.数据库系统概论. 王珊8数据库管理系统.美. 清华大学出版社 9数据库系统概念.美.机械工业出版社10SQLServer2005实用教程.清华大学出版社. 范立南.200511SQLServer2005编程员指南.北京希望电子出版社.李香敏. 2005附录源代码 use mastergoif
24、 exists (select * from dbo.sysdatabases where name = CarManager) drop database CarManagerGOcreate database CarManagergouse CarManagergoif exists (select * from dbo.sysobjects where id = object_id(Ndbo.GONGZIYUEBAOBIAO) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo.GONGZIYUEBAOBIAOGOif exists (se
25、lect * from dbo.sysobjects where id = object_id(Ndbo.KUCUNLINGJIANTAIZHANGVIEW) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo.KUCUNLINGJIANTAIZHANGVIEWGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.LINGJIANHAOYONGYUEBAOBIAO) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo.
26、LINGJIANHAOYONGYUEBAOBIAOGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.LINGJIANLINGYONGTONGJI) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo.LINGJIANLINGYONGTONGJIGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.QICHEXIULITAIZHANG) and OBJECTPROPERTY(id,
27、NIsView) = 1)drop view dbo.QICHEXIULITAIZHANGGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.XIULIDANTONGJI) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo.XIULIDANTONGJIGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.KUCUNLINGJIANTAIZHANG) and OBJECTPROPER
28、TY(id, NIsUserTable) = 1)drop table dbo.KUCUNLINGJIANTAIZHANGGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.KUCUNLINGJIANTAIZHANG2) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.KUCUNLINGJIANTAIZHANG2GOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.L
29、INGJIANJIBENXINXI) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.LINGJIANJIBENXINXIGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.LINGJIANLINGYONGDAN) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.LINGJIANLINGYONGDANGOif exists (select * from dbo.sysobjects w
30、here id = object_id(Ndbo.LINGJIANRUKUDAN) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.LINGJIANRUKUDANGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.M_USER) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.M_USERGOif exists (select * from dbo.sysobjects where i
31、d = object_id(Ndbo.QICHEDENGJI) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.QICHEDENGJIGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.QICHEJIBENXINXI) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.QICHEJIBENXINXIGOif exists (select * from dbo.sysobjects whe
32、re id = object_id(Ndbo.QICHEXIULIDAN) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.QICHEXIULIDANGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.XIUCHEFAPIAO) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.XIUCHEFAPIAOGOif exists (select * from dbo.sysobjects w
33、here id = object_id(Ndbo.XIULIGONGMINGCHE) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.XIULIGONGMINGCHEGOCREATE TABLE dbo.KUCUNLINGJIANTAIZHANG (id int NULL ,ljno varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,kcmin int NULL ,kcdinghuo varchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMA
34、RYGOCREATE TABLE dbo.KUCUNLINGJIANTAIZHANG2 (id int NOT NULL ,kcljno varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,kcljname varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,kcljchengben varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,kcljmoney varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,kcljnumber varchar
35、(50) COLLATE Chinese_PRC_CI_AS NULL ,kcljmin varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,kcdinghuo varchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGOCREATE TABLE dbo.LINGJIANJIBENXINXI (id int NULL ,ljno varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,ljname varchar (50) COLLATE Chinese_PRC_CI
36、_AS NULL ,ljchengben varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,ljmoney varchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGOCREATE TABLE dbo.LINGJIANLINGYONGDAN (id int NOT NULL ,ljlydanid varchar (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,ljlyid varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,ljlyljhao varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,ljlynumber int NULL ,ljlydate datetime NULL ,manager varchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGOCREATE TABLE dbo.LINGJIANRUKUDAN (id int NOT NULL ,ljrkno varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,ljrkname varcha