版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验二 工业设备监控系统一. 实验目的通过本实验了解工业控制方面的知识,掌握JAVA编程,使用数据库知识,灵活在JAVA和VC+中的运用SQL语句。二. 实验内容1. 实现客户端和数据库的连通2. 开发随机数据产生器3. 通过JAVA进行数据统计三. 实验环境1.Microsoft Visual C+ 6.0;2. MySQL数据库3. 四. 实验步骤1.安装mysql数据库;MySQL是一个关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性,在WEB应用方面 MySQL 是最好的关系数据库管理系统应用软件之一。(1)、首先
2、单击MySQL5.5.21的安装文件,出现该数据库的安装向导界面,单击“next”继续安装,如图所示:(2)、在打开的窗口中,选择接受安装协议,单击“next”继续安装,如图所示:(3)、在出现选择安装类型的窗口中,有“typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,因为通过自定义可以更加的让我们去熟悉它的安装过程,单击“next”继续安装,如图所示: (4)、在出现自定义安装界面中选择mysql数据库的安装路径,这里我设置的是“d:Program FileMySQL”,单击“next”继续安装,如图所示:(5
3、)、接下来进入到准备安装的界面,首先确认一下先前的设置,如果有误,按“back”返回,没有错误,单击“Install”按钮继续安装,如图所示:(6)、单击“Install”按钮之后出现如下正在安装的界面,经过很少的时间,MySQL数据库安装完成,出现完成MySQL安装的界面,如图所示:这个界面单击“next”就行。注意要选择上边的“Launch the MySQL Instance Configuration Wizard”选项,这是启动MySQL的配置,单击“Finish”按钮,进入到配置界面。(7)、MySQL数据库的安装十分简单,关键是安装完成之后的配置,单击完成之后出现如下的配置界面向
4、导,单击“next”进行配置,如图所示:(8)、在打开的配置类型窗口中选择配置的方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,为了熟悉过程,我们选择“Detailed Configuration(手动精确配置)”,单击“next”继续,如图所示:(9)、在出现的窗口中,选择服务器的类型,“Developer Machine(开发测试类)”、“Server Machine(服务器类型)”、“Dedicated MySQL Server Machine(专门的数据库服务器)”,我们仅仅是用来学习和测
5、试,默认就行,单击“next”继续,如图所示:(10)、在出现的配置界面中选择mysql数据库的用途,“Multifunctional Database(通用多功能型)”、“Transactional Database Only(服务器类型)”、“Non-Transactional Database Only(非事务处理型)”,这里我选择的是第一项,通用安装,单击“next”继续配置,如图所示:(11)、在出现的界面中,进行对InnoDB Tablespace进行配置,就是为InnoDB 数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,
6、当然,对数据库做个备份就没问题了,如图所示:(12)、在打开的页面中,选择mysql的访问量,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,设置为15个)这里选择手动设置,单击“next”继续,如图所示:(13)、在打开的页面中设置是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,这也是连接java的操作,默认的端口是3306,并启用严格的语法设置,单击“next”继续,如图所示
7、:(14)、在打开的字符编码的页面中,设置mysql要使用的字符编码,第一个是西文编码,第二个是多字节的通用utf8编码,第三个是手动,我们选择utf-8或者是gbk,单击“next”,继续配置,如图所示:(15)、在打开的页面中选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql u username p password;”就可以了,单击“next”继续配置,如图所示:(16)、在打开的页面中设置是否要修改默
8、认root用户(超级管理员)的密码(默认为空),“New root password”,如果要修改,就在此填入新密码,并启用root远程访问的功能,不要创建匿名用户,单击“next”继续配置,如图所示:(17)、到这里所有的配置操作都已经完成,单击Execute按钮执行配置,如图所示:(18)、过了几分钟,出现如下的提示界面就代表MySQL配置已经结束了,并提示了成功的信息。(19)、在服务中将mysql数据库启动,并在命令窗口中输入“mysql h localhost u root -p”,接着在出现的提示中输入用户的密码,如图所示:从图中可以看到mysql数据库在启动之后,成功的登录了,在
9、此我们可以对数据库进行操作了。具体步骤也可参考此链接:2. 开发随机数产生器(一)、主界面设计1. 新建工程“你的团队的名字”(这里以SimulateData代替)2. 选择“Dialog based”3. 选择“Finish”4. 删除默认“确定”、“取消”按钮及“TODO: 在这里设置对话控制。”静态文本控件。5 . 设计主界面6. 控件ID及Styles设计。见表1。表1:控件ID及Styles设置名称IDStyles显示随机数据编辑框IDC_DISPLAY样式 多行 垂直滚动 边框设置参数IDC_SETUP产生随机数IDC_GETDATA清除显示IDC_CLEAR退出IDC_EXIT8
10、. 使用“Class Wizard”申明成员变量。具体参数见下表2。表2:控件ID、TYPE及成员变量设置IDTYPEMember VariablesClassNameIDC_DISPLAYCEDITm_DisplayCSimulateDataDlgIDC_SETUPCButtonm_SetupIDC_CLEARm_ClearIDC_EXITm_Exit(二)、随机数信息设置界面设计1. 在“ResourceView”窗口Dialog“Insert Dialog”插入对话框,设置其ID为“IDD_SETUPDLG”。2. 设计界面如下:1) 控件ID及Styles设置如表3表3:控件ID及St
11、yles设置名称IDStyles类型编辑框IDC_TYPE 设定值编辑框IDC_VALUE浮动值编辑框IDC_CHANGE时间间隔编辑框IDC_TIME随机数个数编辑框IDC_NUMBER确定按钮IDOK2) 基于上述对话框,利用“Class Wizard”建立新类CSetupDlg。使用“Class Wizard”申明成员变量。具体参数见下表6。表6:控件ID、TYPE及成员变量设置IDTYPEMember VariablesClassNameIDC_TYPECStringm_TypeSetupDlgIDC_VALUEfloatm_ValueIDC_CHANGEm_ChangeIDC_TIM
12、Em_TimeIDC_NUMBERintm_Number(三)、变量、函数申明及初始化1. 引入ADO动态链接库Visual C+中通过在程序中使用预编译指令#import来告诉编译器将此命令中指定的动态链接库引入工程中,并从动态链接库中取出其中的对象和信息,产生msado15.tlh和ado15.tli两个头文件来定义ADO库。在应用程序的文件stdafx.h中加入如下语句:/加入ADO支持库#import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF&quo
13、t;,"adoEOF")2. 头文件引用及变量、函数声明l 在主对话框头文件SimulateDataDlg.h中加入对其他头文件引用。#include "setupDlg.h"#include "math.h"l 在主对话框头文件SimulateDataDlg.h,构造函数的public区中加入如下声明代码:_ConnectionPtr m_pConnection;_CommandPtr m_pCommand;_RecordsetPtr m_pRecordset;SetupDlg m_SetupDlg;float m_Change,m
14、_Time,m_Value;int m_Number;CString m_Type;l 在主对话框头文件SimulateData.h,构造函数的public区中加入如下声明代码:_RecordsetPtr m_pRecordset;_CommandPtr m_pCommand;_ConnectionPtr m_pConnection;3. 初始化在应用程序类APP类CSimulateDataApp的InitInstance成员函数中初始化OLE/COM库环境,创建ADO连接等操作。BOOL CSimulateDataApp:InitInstance()AfxEnableControlConta
15、iner();AfxOleInit();m_pConnection.CreateInstance(_uuidof(Connection);trym_pConnection->Open("DSN=mysql;Server=localhost;DATABASE=mydb","root","",adModeUnknown); /MySQL/m_pConnection->Open("driver=SQL Server;Server=PUNSSQLEXPRESS;DATABASE=mydb","&quo
16、t;,"",adModeUnknown); /SQL Servercatch(_com_error e)AfxMessageBox("数据库连接失败,确认数据库是否在当前路径下!");return FALSE;trym_pCommand.CreateInstance(_uuidof(Command);m_pRecordset.CreateInstance(_uuidof(Recordset);catch(_com_error &e)AfxMessageBox("创立_CommandPtr和_RecordsrtPtr实例失败!"
17、);AfxMessageBox(e.ErrorMessage();.return FALSE;在主对话框中加入SimulateDataDlg.cpp中添加CSimulateDataApp对象的外部变量theApp。extern CSimulateDataApp theApp;在主对话框OnInitDialog()函数中加入初始化操作,对指针创建对象实例。BOOL CSimulateDataDlg:OnInitDialog()CDialog:OnInitDialog();/ Add "About." menu item to system menu./ IDM_ABOUTBO
18、X must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARA
19、TOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initializati
20、on heretrym_pRecordset.CreateInstance(_uuidof(Recordset);catch(_com_error &e)AfxMessageBox("创立_pRecordset实例失败!");AfxMessageBox(e.ErrorMessage();return TRUE; / return TRUE unless you set the focus to a control(四)、数据库连接与操作1. 在CSimulateDataApp中添加返回类型为_RecordsetPtr的成员变量ExcuteCommandADO(CSt
21、ring strSQL),编写函数代码。_RecordsetPtr CSimulateDataApp:ExcuteCommandADO(CString strSQL)if(strSQL="")AfxMessageBox("空SQL语句!");return NULL;_bstr_t strQuery=strSQL;trym_pCommand->ActiveConnection=m_pConnection;m_pCommand->CommandText=strQuery;m_pRecordset=m_pCommand->Execute(NU
22、LL,NULL,adCmdText);catch(_com_error &e)CString strErr;strErr="执行"+strSQL+"语句失败"AfxMessageBox(strErr);AfxMessageBox(e.ErrorMessage();AfxMessageBox(e.Source();AfxMessageBox(e.Description();return m_pRecordset;2. 设置参数。双击主对话框“设置参数”,添加OnSetup函数。执行如下代码:void CSimulateDataDlg:OnSetup
23、() / TODO: Add your control notification handler code hereCString Display;if(m_SetupDlg.DoModal() = IDOK)UpdateData(true);m_Type=m_SetupDlg.m_Type;m_Value=m_SetupDlg.m_Value;m_Number=m_SetupDlg.m_Number;m_Time=m_SetupDlg.m_Time;m_Change=m_SetupDlg.m_Change;Display.Format("%.0d", m_SetupDlg
24、.m_Number);3. 产生随机数void CSimulateDataDlg:OnGetdata() / TODO: Add your control notification handler code hereCString strSQL;strSQL="SELECT * FROM "+m_Type;if(m_pRecordset->State)m_pRecordset->Close();trym_pRecordset->Open(strSQL.AllocSysString(),theApp.m_pConnection.GetInterfacePtr
25、(),adOpenDynamic,adLockOptimistic,adCmdText);catch(_com_error &e)strSQL="create table " + m_Type+"(ID int AUTO_INCREMENT PRIMARY KEY,"+m_Type+" float,Time float)"theApp.ExcuteCommandADO(strSQL);strSQL="delete from "+ m_Type;theApp.ExcuteCommandADO(strSQL);CString strDisplay,strTime,strData;float
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胎盘EVs的基因编辑与治疗策略-洞察分析
- 细胞疗法在膝关节退变中的应用研究-洞察分析
- 艺术品市场风险预警系统-洞察分析
- 因果推断跨学科研究-洞察分析
- 网络安全法规-洞察分析
- 医药泡沫包装对药品保护效果研究-洞察分析
- 水利工程智能化发展-洞察分析
- 穴位疗法对更年期潮热疗效评估-洞察分析
- 休闲马术运动市场潜力-洞察分析
- 天然成分饮料创新-洞察分析
- 地震和防震知识课件
- 冗余系统设计策略
- 国家住宅装饰装修工程施工规范
- 种子检测报告
- 兖州煤田东滩煤矿240万ta新井设计
- 天津市部分区2023-2024学年九年级上学期化学期末试题
- 医学外科的教学设计
- 济南 公司章程范本
- AR技术在教育领域的应用与课程设计
- 2019疏浚工程预算定额
- 笙的演奏技术与教学
评论
0/150
提交评论