产品故障信息管理系统.docx

上传人:b****6 文档编号:7260564 上传时间:2023-01-22 格式:DOCX 页数:34 大小:414.18KB
下载 相关 举报
产品故障信息管理系统.docx_第1页
第1页 / 共34页
产品故障信息管理系统.docx_第2页
第2页 / 共34页
产品故障信息管理系统.docx_第3页
第3页 / 共34页
产品故障信息管理系统.docx_第4页
第4页 / 共34页
产品故障信息管理系统.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

产品故障信息管理系统.docx

《产品故障信息管理系统.docx》由会员分享,可在线阅读,更多相关《产品故障信息管理系统.docx(34页珍藏版)》请在冰豆网上搜索。

产品故障信息管理系统.docx

产品故障信息管理系统

内容摘要

本文介绍了如何使用VisualC++6.0编程制作彩色电视机故障信息共享系统,实现信息管理共享的自动化。

由此实现了信息的增加、删除、修改、查看等功能,并且进而实现信息的安全管理,使信息的管理更加人性化,规范化。

从而提高故障排除效率,提高信息利用率,有助于进一步提高生产效率。

关键词:

信息管理信息共享故障数据库

Abstract

ThemainworkofthispaperisintroducehowtouseVisualC++6.0 programmingaColorTVMalfunction-InformationIn-CommonSystem,achievetheauto-manageoftheMalfunction-Information.Accordingthese,thissystemachievestheinformation’sfunctionofadd,delete,editandview,italsogettheinformationmanagedsafety,sothemanagementoftheinformationwillbemorehumanity&normalize.Thereby,itcanimprovetheefficiencyofthemalfunction’selimination,enhancetheexploitationoftheinformation,andalsohelpimprovingtheefficiencyoftheproducebyalargestep.

Keywords:

 Informationmanagement Informationshares ADO

 

目录

前言1

1.系统设计1

1.1目标设计1

1.2开发设计思想1

1.3功能分析2

1.4功能模块设计2

2.数字库设计2

2.1数据库需求分析2

2.2数据库概念结构设计3

3.创建应用程序3

4.数据库操作准备5

5.功能模块的创建7

5.1系统主体窗体的创建7

5.1.1主菜单的创建7

5.1.2右键菜单的创建8

5.1.3工具栏的创建8

5.1.4数据显示与表格控件的创建9

5.2系统用户权限管理模块的创建11

5.2.1添加用户对话框的创建11

5.2.2更改密码对话框的创建13

5.2.3删除用户对话框的创建15

5.2.4用户登录对话框的创建17

5.3信息管理模块的创建17

5.3.1添加记录对话框的创建17

5.3.2查询记录对话框的创建20

5.3.3修改记录对话框的创建21

5.3.4查看记录对话框的创建22

5.4打印预览模块的创建22

7.接口网络编程原理26

8.WindowsSockets编程原理29

8.1异步选择机制29

8.2异步请求函数29

8.3阻塞处理方法29

8.4错误处理29

8.5启动和终止29

9.实现远程数据的管理30

9.1设计基本思路:

30

9.2具体实现(为了数据传送的可靠性,采用基于TCP的流式套接字):

30

10.程序的编译和系统的实现31

11.结论31

12.致谢32

参考文献33

 

前言

VisualC++是Microsoft公司开发的基于Windows操作系统的编程工具,它采用一种巧妙的方法将Windows的编程复杂性封装起来,编程者可以比较轻松地进行Windows应用程序的设计。

VisualC++6.0继承了以前版本的优点,为用户提供了更为友好的可视化开发环境,是当今程序员首选的开发工具。

它在编程的深入性、运行的快速性等方面具有很强的功能。

随着社会的飞速发展,信息管理系统已广泛地运用于各行各业。

信息在企业生产经营中扮演着越来越重要的角色。

企业内部和外部之间的信息变得越来越频繁,方式越来越复杂,信息量日益增大,速度越来越快,丝毫不亚于企业的物质、能量交流,信息流在企业系统中所占份额逐渐上升。

这样一来,企业信息管理才应运而生,成为企业管理的重要组成部分。

企业信息管理的产生是企业管理发展到一定阶段的必然产物,是企业管理发展史上的划时代的进步。

故障信息管理,一般是指设备或系统在使用中丧失或降低其规定的功能。

故障管理,其目的是保证设备经常处于完好状态,严格控制设备的故障发生,降低故障率,减少维修费用,延长设备的使用寿命。

 而信息化建设对企业来说无疑已经成为企业在现代竞争社会中立足的重要因素。

而从中国大陆企业现状来看,大部分企业的信息化建设都是依靠专业化软件公司。

毋庸置疑,对于大规模的管理系统,例如CRM(ClientRelationManager),ERP

(EnterpriseResourcePlan)等,使用专业软件公司开发的产品,功能相对齐全,安全级别也相对较高。

但对于企业内部小范围内所需的一些小系统而言,如也依靠此种方式,势必会产生无谓的成本流失。

鉴于这种形式,借助这次毕业设计的机会,在指导老师的帮助下,经过一段时间的努力,开发出了这套彩电共享系统。

本系统主要用于对已有故障信息进行更高效的管理,提高信息的利用率,改变了以往烦琐的查找,大大提高了故障的排除速度及正确率,对进一步提高生产效率具有十分重要的意义。

下面我们将按照软件工程学思想,对整个系统制作过程做个一般性阐述。

1.系统设计

1.1目标设计

通过一个彩电故障信息共享系统,使生产工程部的故障处理工作系统化,规范化,自动化,从而达到提高故障排除效率,提高信息利用率的目的。

1.2开发设计思想

●尽量采用生产工程部现有的软硬件环境及齐全的故障信息,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。

●系统应符合生产工程部资料管理规范,符合普通员工操作的规范,达到操作过程中的直观、方便、实用、安全等要求。

●系统采用VisualC++环境,用ADO(ActiveXDataObjects)数据访问方式,采用MicrosoftAccess2000作为数据源,使整个系统易于使用及维护。

●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。

●系统应具备数据维护功能,及时根据数据变化进行添加、删除、修改、查询等操作,并加入拥护权限功能,使系统更加安全

1.3功能分析

本系统功能分析是在系统开发总体任务的基础上完成的,本系统需要完成的功能如下:

●故障信息的输入、查询、修改、删除

●故障信息的打印

●系统用户管理,权限管理

1.4功能模块设计

在系统功能分析的基础上,考虑VisualC++程序编制的特点,得到图1所示的系统功能模块图。

 

图1  系统功能模块图                   图2 数据流程图

2.数字库设计

数据结构的好坏将直接影响到系统的效率以及实现的效果。

好的数据库结构会减少数据库的存储量、冗余度,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于数据库的应用程序的实现方法等。

2.1数据库需求分析

在仔细研究资料管理过程的基础上,归纳出系统的数据流程图如上图2所示,所有数据均由管理员输入管理。

根据图2的数据流程图,可得到所须设计的数据项和数据结构如下:

●故障信息,包括的数据项有显象管、机芯、机壳、器件、技术员、时间、其他、信息名、具体内容等。

●权限验证,包括的数据项有用户名、密码等。

由上分析,为此需要有2个数据表分别用来存放故障信息的用户信息。

这两个数据表均用Access2000实现。

Access中的设计视图如图3、图4所示,其中数据类型根据具体的数据字段来设置。

图3info1视图

图4login视图

2.2数据库概念结构设计

在分析需求的基础上,我们得到整个系统的E-R图如图5所示。

3.创建应用程序

本彩电故障信息共享系统采用VisualC++6.0的ADO方法开发。

工程创建具体步骤如下:

打开VisualC++后,选择菜单“File/New”中的“Project”选项卡中的“MFCAppWizard[exe]”,设置工程名字为“CaidianGuzhang”,选择存储位置,单击“OK”。

创建一个单文档应用程序,在Step1中,选择“SingleDocument”,然后单击“Next”按扭,进入“Step2of6”。

一直单击“Next”按扭,直到进入“Step6of6”。

因为为了能使数据更直观,我们采用列表形式,所以需要在本步骤中,选择CCaidianGuzhangView类的BaseClass(基类)为ClistView。

然后单击“Finish”,最后将出现确认窗口,如图6所示,检查无误后,单击“确定”,即可完成工程创建。

图6确认

为了使程序能支持ADO数据库对象,应该在头文件stdafx.h(预编译头文件)中加入

#import"c:

\ProgramFiles\CommonFiles\System\ado\msado15.dll"\

rename_namespace("AdoNS")\

rename("EOF","adoEOF")

usingnamespaceAdoNS;导入ADO库

并在主程序入口:

BOOLCCaidianGuzhangApp:

:

InitInstance()中加入AfxOleInit();初始化COM环境。

ADO(ActiveXDataObjects)是Microsoft开发数据库应用程序的面向对象的新接口,描述了软件中存取多种数据源的统一接口,并提供了实现ADO模型的COM组件,使得不同程序设计语言均可使用ADO。

在NETFramework的System.Data命名空间中定义这些类-这些类表示到数据库的连接、数据库中的表,和表中所包含的数据类型。

更广义地讲,ADO.NET就是Microsoft最新的数据访问策略。

其主要的优点是灵活,易于使用、速度快、内存支出少和磁盘遗迹小,简化了操作。

ADO类的定义是作为一种资源存储在ADODLL(msado15.dll)中,在其内部称为类型库。

类型库描述了自治接口,以及C++使用的COMvtable接口。

当使用#import指令时,在运行时VisualC++需要从ADODLL中读取这个类型库,并以此创建一组C++头文件。

ADO库包含三个智能指针:

_ConnectionPtr、_CommandPtr和_RecordsetPtr。

  _ConnectionPtr通常被用来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。

  _CommandPtr返回一个记录集。

它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。

在使用_CommandPtr接口时,可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。

  

_RecordsetPtr是一个记录集对象。

与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定、游标控制等。

4.数据库操作准备

由于本系统使用的是ADO方式访问数据库,因此可以使用从视表到记录集的映射。

为了编程便捷,可以为数据库中的每个表映射一个记录集类(从CDaoRecordSet类继承)。

映射关系如下表1所示。

表1记录集映射关系

表格(视图)

对应记录集

Info1

CDataSet

login

CLoginSet

CDaoRecordSet封装了ADO记录集对象,用于管理一个来自表定义(基础表)或查询定义的记录集合。

CDaoRecordSet对象有三种使用的原型,分别为table-type(基于单个数据表)、dynaset-type(基于组合查询)、snapshot-type(基于组合查询的静态拷贝)。

对记录集的映射有两种方法:

第一种是直接从CDaoRecordSet类创建记录集,并且动态绑定记录字段;第二种是使用ClassWizard创建CDaoRecordSet类的派生类,并利用DFX机制记录数据与记录集字段数据成员之间的映射。

在本系统中,我首先使用第二种方法,方法是在ClassWizard中单击“NewClass”,进入下一窗口,设置类名为“CDataSet”,选择BaseClass(基类)为CDaoRecordSet,然后单击“OK”,进入“DatabaseOption”窗口,选中“ADO”,按浏览按钮后,选择需要映射的文件(此处为info1.mdb),具体过程如图7所示。

最后在弹

图7选择ADO数据库文件

出的SelectDatabaseTable(数据表选择对话框)中选中要映射的表名(在此为info1)。

单击“OK”即可。

同样的方法,建立类“CloginSet”,映射的表名为login。

但是此种方法把数据库访问路径给固定了,我们可以从以下VisualC++自行建立的函数看出。

CStringCDataSet:

:

GetDefaultDBName()

{

return_T("D:

\\visual\\MSDev98\\MyProjects\\xiahua\\info1.mdb");

}

为了能使系统在各个环境下都可正常运行,需要修改此函数,使数据库实现动态链接,修改后的函数程序如下:

CStringCDataSet:

:

GetDefaultDBName()

{

charpath[50];

CStringm_strDatabaseName;

:

:

GetCurrentDirectory(50,path);//得到当前应用程序所在的路径

strcat(path,"\\");

m_strDatabaseName=_T(path);

m_strDatabaseName+="info1.mdb";//将所对应文件改成所要的数据库名

returnm_strDatabaseName;//返回数据库所在的完整路径

}

同样的,我们也必须修改CLoginSet:

:

GetDefaultDBName()函数。

因为其内部程序与CDataSet:

:

GetDefaultDBName()相同,所以我们就不再此列出。

5.功能模块的创建

在链接了数据库后,接下来我们就可以开始进行各功能模块的创建。

5.1系统主体窗体的创建

在我们按照VC++的AppWizard创建完工程后,为了使主窗口框架更适合整个系统的操作,我们有必要进行修改,重新创建。

5.1.1主菜单的创建

在WorkSpase中选择ResourseView,然后双击Menu文件夹,再双击IDR_MAINFRAME选项,单击右边窗口中“帮助”旁边的虚线框,在双击或按回车键,就会出现“MenuItemProperties”对话框,在这个对话框中输入菜单项的内容,如图8所示。

图8设置一级菜单

二级菜单的设置基本上都和图8相同,只是必须设置ID。

按照这种方法,最终创建出如表2所示的菜单结构。

表2菜单结构

菜单名称

ID

文件

….打印

ID_FILE_PRINT

….打印预览

ID_FILE_PRINT_PREVIEW

….打印设置

ID_FILE_PRINT_SETUP

….最近文件

ID_FILE_MRU_FILE1

….退出

ID_APP_EXIT

查看

….工具栏

ID_VIEW_TOOLBAR

….状态栏

ID_VIEW_STATUS_BAR

信息管理

….查询记录

ID_RECORD_SEARCH

….添加记录

ID_RECORD_ADD

….查看记录

ID_RECORD_VIEW

….删除记录

ID_RECORD_DEL

….更改记录

ID_RECORD_EDIT

权限管理

….添加用户

ID_USER_ADD

….更改密码

ID_PASSWARD_EDIT

….删除用户

ID_USER_DEL

帮助

….关于xiahua1.0

ID_APP_ABOUT

5.1.2右键菜单的创建

为了实现操作的方便、快捷,我们在程序中加入了右键菜单。

在VC的主菜单中,按“Project”—>“NewProject”—>“ComponentsandControlsGallery”即可进入“ComponentsandControlsGallery”对话框,然后再打开VisualC++Components文件,再选择“Pop-upMenu”,单击“insert”,随后在跳出的对话框中选择“CxiahuaView”,最后单击“OK”。

完成后,需要对其进行编辑。

单击WorkSpase中的ResourseView,在Menu文件夹中选择CG_IDR_POPUP_MAIN_FRAME,之后边可在右边窗口对其进行编辑。

编辑方法与主菜单相同,其中各项的ID分别对应相应的菜单项,对应关系如表3所示。

表3右键菜单对应的菜单项ID

菜单名称

ID

查看记录

ID_RECORD_VIEW

添加记录

ID_RECORD_ADD

删除记录

ID_RECORD_DEL

更改记录

ID_RECORD_EDIT

5.1.3工具栏的创建

在WorkSpase中选择ResourseView,然后双击Toolbar文件夹,再双击IDR_MAINFRAM选项,就可以利用工具条编辑器(ToolbarEditor)编辑右边的工具条。

本系统创建的工具条如图9所示。

其中各按钮的ID分别对应相应的菜单项,按从做到右的顺序对应的菜单项ID如表4所示。

表4工具条对应的菜单项ID

次序

ID

1

ID_FILE_PRINT

2

ID_RECORD_ADD

3

ID_RECORD_DEL

4

ID_RECORD_SEARCH

5

ID_RECORD_ALL

6

ID_APP_ABOUT

(注:

其中第5个是显示全部数据,实现刷新功能,在菜单中没有)

5.1.4数据显示与表格控件的创建

因为CxiahuaView是从ClistView继承的,所以创建完工程后,就已经有表格控件存在。

而我们目的就是使控件上的显示更符合系统的使用,所以我们有必要对初试界面也就是对CXiahuaView:

:

OnInitialUpdate()函数进行修改,修改后的函数如下:

voidCXiahuaView:

:

OnInitialUpdate()

{

CListView:

:

OnInitialUpdate();

//TODO:

YoumaypopulateyourListViewwithitemsbydirectlyaccessing

CListCtrl&ctl=GetListCtrl();

ctl.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL);

ctl.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//设置窗体类型

//初始化m_pSet指针,m_pSet原型为CDataSet*m_pSet

m_pSet=&GetDocument()->m_dataSet;

//初始化m_pLset指针,m_pLset原型为CLoginSet*m_pLset

m_pLset=&GetDocument()->m_dataLset;

if(m_pSet->IsOpen())

m_pSet->Close();

m_pSet->Open();//打开数据库

GetDocument()->SetTitle("彩电故障信息共享系统");//设置标题

CStringstr;

//以下是设置控件按钮显示字符

str.LoadString(IDS_SERIAL);

ctl.InsertColumn(0,str);

ctl.InsertColumn(1,"显象管");

ctl.InsertColumn(2,"机芯");

ctl.InsertColumn(3,"机壳");

ctl.InsertColumn(4,"器件");

ctl.InsertColumn(5,"技术员");

ctl.InsertColumn(6,"时间");

ctl.InsertColumn(7,"其他");

ctl.InsertColumn(8,"信息名");

ctl.InsertColumn(9,"具体内容");

m_bIsAsc=TRUE;

m_bIsShowAll=TRUE;

ShowTableData();//调用显示数据函数,显示数据

}

接下来就是要编写ShowTableData()函数。

程序如下:

voidCXiahuaView:

:

ShowTableData()

{

CListCtrl&ctl=GetListCtrl();

ctl.DeleteAllItems();//删除所有已显示内容

m_pSet->MoveFirst();//将m_pSet指针指向首条记录

inti=0;

intColWidth[10]={0};

while(!

m_pSet->IsEOF())//如果没有到达数据末尾,则显示数据

{

}

//设置各数据项的显示宽度

for(intj=0;j<8;j++)

{

ctl.SetColumnWidth(j,ColWidth[j]+30);

}

ctl.SetColumnWidth(8,100);

ctl.SetColumnWidth(9,100);

m_pSet->MoveFirst();//将m_pSet指针再指向首条记录,便于下次操作

}

到此,我们完成了主体框架的制作,主窗口如图9所示。

图9主窗口

5.2系统用户权限管理模块的创建

为了数据库使用的安全,必须对数据库的各种操作实行权限管理。

只有管理员允许的人员才有权力使用。

允许的用户和密码都预先存在数据库中,本系统中为login表。

权限管理模块主要实现如下功能:

●添加用户

●更改密码

●删除用户

●用户登录(权限验证)

5.2.1添加用户对话框的创建

在ResourseView中,右击Dialog,选择InsertDialog,便可在右边窗口中编辑对话框。

完成的对话框如图10所示。

对话框中各种非静态文本控件的属性见表5。

图10添加用户对话框图11密码修改对话框

表5添加用户对话框中各控件的属性设置

控件

ID

用户名EditBox

IDC_USER

密码EditBox

IDC_PSWD

确认密码EditBox

IDC_COMPSWD

对话框编辑完成后,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1