压力容器程序设计.docx
- 文档编号:25280959
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:27
- 大小:1.10MB
压力容器程序设计.docx
《压力容器程序设计.docx》由会员分享,可在线阅读,更多相关《压力容器程序设计.docx(27页珍藏版)》请在冰豆网上搜索。
压力容器程序设计
压力容器程序设计
一.目录
ABSTRACT
第一章.为什么要开发一个压力容器设计软件?
第二章.怎样开发一个压力容器设计软件?
2.1编程环境的选择
2.2关系型数据库的实现
2.3二者的结合
第三章.Windows下的VisualC++编程环境简介
3.1面向对象编程
3.2实现菜单选项
3.3创建对话框资源
3.4帮助系统
第四章使用Access2000实现关系型数据库
4.1数据库的概念
4.2新建一个数据库
第五章系统总体规划
5.1系统功能
5.2系统规划流程图
第六章系统具体实现
6.1用户界面的实现
6.1.1主界面
6.2数据库的实现
6.2.1鞍座尺寸数据库
6.2.2材料钢号数据库
6.2.3应力数据库
6.2.4封头数据库
6.2.5人孔尺寸数据库
6.2.6法兰尺寸数据库
6.2.7系数k’,k3,k4,k5,k6数据库
6.2.8钢板厚度负偏差C1数据库
6.3与VC++的连接
6.3.1ADO技术介绍
6.3.2引入ADO库文件
6.3.3初始化ADO环境
6.3.4ADO与数据库的连接
6.3.5获得和遍历记录集
第七章结束语
第八章主要参考文献
附录
------------------ABSTRACT----------------
Theprogramofpressurevesseldesignisatypicalcombinationofcomputerscienceandchemicalindustrydesign.whichmainlyincludesbuildingupdata-baseofback-endanddevelopingtheapplicationinterfaceoffront-end.Theformerrequiredconsistencyandintegralityandsecurityofdata.Thelatershouldmaketheapplicationpowerfulandeasilyused.Afterlookingupmanymaterials,wedecidetochooseVisualC++toaccomplishthisprocedure.VisualC++ispresentedbyMicrosoftanditsobjectivetoolsinWin32.VC++offeredaseriesofActiveXoperatingadata-baseItcangiveyouashort-cuttobuildupaprototypeofsystemapplication.Theprototypecouldbemodifiedanddevelopedtillusersaresatisfiedwithit.
Keywords:
VC++,data-base,pressurevessel
第一章为什么要开发一个压力容器设计软件?
压力容器是工业生产的重要设备,用途广泛,在石油化工企业生产,运输等领域发挥着重要作用。
传统的设计方法是设计是通过化学工程手册,结合容器设计知识,按照一定的程序设计出的,设计效率低下,容易因各种因素而产生一些错误。
随着计算机技术的发展,用计算机进行辅助设计已经非常普遍。
运用计算机辅助设计,可以减少错误,降低设计的强度,减少设计时间,降低设计成本,极大的提高设计的小路和准确性。
因此,开发一套这样的设计软件非常必要,一下将详细论述该软件设计的过程。
第二章怎样开发一个压力容器设计软件?
2.1编程环境的选择
VisualC++6.0是微软公司的重要产品之一 —— VisualStudio工具集的重要组成部分。
它用来在Windows(包括Windows95,Windows98,Windows2000,WindowsXP等)环境下开发应用程序,是一种功能强大,行之有效的可视化编程工具。
VisualC++提供了MFC类库,使用户可以很方便地开发自己想实现的功能。
与TurboC等工具相比,变成所花费时间要少得多。
另外,VC++以C语言为核心,对于有C语言基础的学生来说容易进行操作。
所以,我们选择VC++来进行编程。
2.2数据库的实现
数据库(Database),是长期储存在计算机内部的,,有组织的数据集合。
数据库中的数据按一定的数据模型组织,描述和存储,具有较小的冗余度,叫高度数据独立性和已扩展性,并可为各种用和所共享。
常见的数据库有SQL.Oracle.DB2.Sybase.MySQL.Access.FoxPro等,其中作为关系型数据库库的.Access优点在于它能使用数据表示图或自定义窗体收集信息。
数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。
而且,Access数据库还具有操作简便,建库非常迅速。
2.3二者的结合
微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及VisualBasic来访问数据库并对其进行各种操作。
VisualBasic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。
DATA控件在数据库中的信息与将信息显示给用户看的VisualBasic程序之间架起了一座桥梁。
我们可以设置DATA控件的各个属性,告诉它要调用那个数据库的哪个部分。
缺省情况下,DATA控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。
一个记录集合是动态的也就意味着,当原来的数据表中的内容改变了以后,该记录集合中的记录也会随之改变。
DATA控件还提供了用来浏览不同记录的各种跳转按钮。
将DATA控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。
第三章.Windows下的VisualC++编程环境简介
3.1面向对象编程
面向对象编程(ObjectOrientedprogramming,OOP)是一种计算机编程架构。
OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。
OOP达到了软件工程三个主要目标:
重用性、灵活性和扩展性。
为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。
面向对象的编程方法OOP是九十年代才流行的一种软件编程方法。
它强调对象的“抽象”、“封装”、“继承”、“多态”。
我们讲程序设计是由“数据结构”+“算法”组成的。
从宏观的角度讲,OOP下的对象是以编程为中心的,是面向程序的对象。
OOP主要有以下的概念:
组件-数据和功能一起在运行着的计算机程序中形成的单元,组件在OOP计算机程序中是模块和结构化的基础。
抽象性-程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。
封装-也叫做信息封装:
确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。
每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。
多态性-组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。
继承性-允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。
典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。
由于抽象性、封装性、重用性以及便于使用等方面的原因,以组件为基础的编程在脚本语言中已经变得特别流行
3.2实现菜单选项
菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,VisualC++也提供了强大的创建菜单功能是程序更加标准。
您可以使用VisualC++的菜单编辑器建立菜单或者修改已经存在的菜单。
3.3创建对话框资源
对话框是程序中一个常见的用户界面元素。
一个具有良好的人际交互功能的软件中,对胡乱纲要操作简便,功能完备信息明了,整体同一。
3.3.1对话框的创建流程
(一)创建对话框资源
A添加对话框模版
B添加控件
(二)创建对话框类
A添加控件变量
利用View菜单里的Classwizard进行添加
B添加消息处理函数
下面是为本程序设计的主界面
利用这个主界面,正和整个设计过程,在左端输入已知参数,经过内部程序的计算可以在输出端获得要求的参数,则该设计的最重要的一步,未知参量的结果就可以得出。
3.4帮助系统
专业水平的软件通常都带有联机帮助功能。
无论写出来的程序是要给大量的用户使用,还是仅仅局限于公司内部有限的使用者,我们都应该为用户提供详细的、易于理解的联机帮助文档。
微软的MSDN是一套独立于VisualC++的用来协助我们创建、运行于32位Windows操作系统下的帮助文件的工具。
使用它我们可以为我们编写的应用程序生成一组帮助文件。
MSDN功能非常强大,可以解释几乎任何一条语句,以及各个类的作用及所属关系,同时对各个不同的函数进行解释。
可以说,对于初级编程者来说,没有MSDN编程几乎没有办法进行。
第四章使用Access2000实现关系型数据库
4.1数据库的概念
数据库(Database),是长期储存在计算机内部的,,有组织的数据集合。
数据库中的数据按一定的数据模型组织,描述和存储,具有较小的冗余度,叫高度数据独立性和已扩展性,并可为各种用和所共享。
很多情况下,人们所说的数据库实际上指的是数据库系统。
数据库系统(DatabaseSystem,简称DBS)是指在计算机系统中引入数据库后的系统构成,一般由首据库,受据库管理系统(DatabaseManagementSystem,简称DBMS),应用系统,数据管理员和用户构成。
设计数据库的核心问题就是数据模型的选择,常用的数据模型有层次数据模型,网状数据模型,关系数据模型,实体联系数据模型和面向对象数据模型。
常见的数据库有SQL.Oracle.DB2.Sybase.MySQL.Access.FoxPro等等。
4.2新建一个数据库
由于Access与其它的数据库管理系统(如VisualFoxPro)相比更加简单,简单易学,一个普通的计算机用户即可掌握并使用它。
而且最重要的一点是,Access的功能足够强大,足以应付一般的数据管理及处理需要。
因此,我们选择Access来进行数据库的创建。
1.新建数据库
新建一个数据库有两种方法:
一种是创建一个空数据库,即建立一个没有表、查询、窗体和报表等内容的数据库;另一种方法是使用Access中提供的数据库模板创建数据库,即通过对向导所提出的选项和不同选择来设计窗体、查询和报表等,从而建立一个完整的数据库。
这里我们将使用第一种方法:
Step1:
在Access窗口中单击“文件(F)”菜单,在下拉菜单中选择“新建”项,将得到“新建”的对话框。
Step2:
双击“数据库”图标,即会显示“文件新建数据库”对话框
Step3:
在文件名文本框中输入要保存数据库的文件夹及新建的数据库名,如“C:
\test”,然后选择“确定”。
即可创建好一个名为“test”的数据库,并显示如图:
2.添加数据表
表是Access数据库的基础,是信息的载体。
其它对象如查询、窗体和报表,也是将表中的信息以各种形式表现出来,方便用户使用这些信息。
在Access中,创建表的方法有三种:
一是使用设计器创建表;二是通过输入数据创建表;三是利用向导创建表。
在这里,我们采用第一种方法创建表:
Step4:
在上图的窗体中,双击“使用设计器创建表”,则会出现如图所示的对话框。
Step5:
在“字段名称”列的第一行中输入test表的第一个字段的名字“姓名”。
然后按回车键,此时在“数据类型”列中会显示出一个按钮,单击按钮,在弹出的下拉列表中选择“文本”选项,设置id字段的类型为文本型。
Step6:
重复上述方法,添加其它字段,并设置其属性。
Step8:
设置完成后,单击“文件(F)”菜单,在下拉菜单中选择“保存”项,将会出现一个“另存为”的对话框,在“表名称”文本框中输入表名test,单击确定按钮。
Step9:
此时,系统会提示用户建立一关键字段。
一般情况下单击“是”完成即可。
.
第五章系统总体规划
5.1系统功能
本程序是将压力容器的设计过程通过编程将其自动化,从而减少设计时的工作量,提高设计效率。
本系统共有三个功能:
程序的后台计算,数据的查询以及设计说明书的打印。
程序的计算是本程序的重要一部分,包括容器几何尺寸计算及校核,鞍座的计算,人孔的计算与选取。
5.2程序开发流程图
第六章系统具体实现
6.1.1主界面
主界面是编程最总要的部分,参数的输入和输出,相关源程序的输入,程序操作的简便性等,都由主界面表现出来。
本程序功能相对简单,且由于时间相对紧凑,故而主界面用来显示容器设计的相关参数。
相信如果时间充裕的话,将该工作界面作为一主界面得分界面,进而加上其他功能如密码显示,效果将会更好。
本主界面分为三部分。
输入部分:
包括容积,长径比,充装系数,设计温度,材料,设计压力,介质温度,焊接方式,介质温度等;
输出部分,包括工称直径,长径比,充装系数,设计压力介质密度等;
进度部分。
6.2数据库的实现
对于该程序来讲,数据库的建设是相当重要的一部分,因为该程序注重设计过程的计算,而工程计算中不可避免的需要引入大量的数据,这些数据的特点是,没有必然的函数关系,也就是说,单单依靠各数据间的关系是很难得到各个数据的。
而这样的数据如果每一个都要在运行时输入的话,该程序就没有太大的存在意义了。
故而,我们在该程序中建立了大量的数据库,来简化设计者输入的过程。
由于Access软件简单易学,同时功能强大,我们选择用它来建库。
下面将具体介绍各个数据库。
6.2.1鞍座尺寸
(1)数据库
鞍座示容器设计中最要的组成部分,无论是立式容器还是坐式容器多需要鞍座来支撑。
6.2.2材料钢号数据库
材料刚好数据库包括各种钢材的型号,尺寸,和标准。
市原则材料的重要依据。
6.2.3应力数据库
应力数据库是个许用应力的数据库,包含温度和该温度下的需用应力
6.2.4封头数据库
风头数据库包含了封头的各参数,包括公称直径,曲面高度,直边高度,内表面积,容积,厚度和质量等。
6.2.5人孔尺寸数据库
人孔是压力容器中用来检修的容器的开口。
该数据库包含了人孔的公称直径以及开孔大小等必要参数
6.2.6法兰尺寸数据库
法兰是压力容器重要的部件,用来连接各个部件。
在此数据库中,包含了法兰的参数,如公称直径,钢管外径,法兰内径,坡口宽度,法兰厚度,法兰盖厚度,法兰质量,法兰盖质量等。
6.2.7系数k’,k3,k4,k5,k6数据库
K’
K3
K4
K5
K6
6.2.8钢板厚度负偏差C1数据库
6.3与VC++的连接
VisualC++功能十分强大,不管是对简单的数据库,还是对复杂的大型数据库来讲,VC++都提供了一些编程接口,共数据库与程序连接。
一般来说,编程接口主要有以下5种:
1ODBC是客户应用程序访问关系数据库时提供的一个统一的接口,对于不同的数据库,ODBC提供了一套统一的API,使应用程序可以应用所提供的API来访问任何提供了ODBC驱动程序的数据库。
而且,ODBC已经成为一种标准,所以,目前所有的关系数据库都提供了ODBC驱动程序,这使ODBC的应用非常广泛,基本上可用于所有的关系数据库。
但由于ODBC只能用于关系数据库,使得利用ODBC很难访问对象数据库及其它非关系数据库。
由于ODBC是一种底层的访问技术,因此,ODBCAPI可以使客户应用程序能够从底层设置和控制数据库,完成一些高层数据库技术无法完成的功能。
2MFCODBC由于直接使用ODBCAPI编写应用程序要编制大量代码,在VisualC++中提供了MFCODBC类,封装了ODBCAPI,这使得利用MFC来创建ODBC的应用程序非常简便。
3DAO提供了一种通过程序代码创建和操纵数据库的机制。
多个DAO构成一个体系结构,在这个结构中,各个DAO对象协同工作。
MFCDAO是微软提供的用于访问MicrosoftJet数据库文件(*.mdb)的强有力的数据库开发工具,它通过DAO的封装,向程序员提供了DAO丰富的操作数据库手段。
4OLEDB是VisualC++开发数据库应用中提供的新技术,它基于COM接口。
因此,OLEDB对所有的文件系统包括关系数据库和非关系数据库都提供了统一的接口。
这些特性使得OLEDB技术比传统的数据库访问技术更加优越。
与ODBC技术相似,OLEDB属于数据库访问技术中的底层接口。
直接使用OLEDB来设计数据库应用程序需要大量的代码。
在VC中提供了ATL模板,用于设计OLEDB数据应用程序和数据提供程序。
5ADO技术相比前面4种技术,ADO技术方便易学,本程序即用ADO技术进行数据库连接。
6.3.1ADO技术介绍
ADO是ActiveX数据对象(ActiveXDataObject),这是Microsoft开发数据库应用程序的面向对象的新接口。
ADO访问数据库是通过访问OLEDB数据提供程序来进行的,提供了一种对OLEDB数据提供程序的简单高层访问接口。
ADO技术简化了OLEDB的操作,OLEDB的程序中使用了大量的COM接口,而ADO封装了这些接口。
所以,ADO是一种高层的访问技术。
ADO技术基于通用对象模型(COM),它提供了多种语言的访问技术,同时,由于ADO提供了访问自动化接口,所以,ADO可以用描述的脚本语言来访问VBScript,VCScript等。
除了可以使用VC6提供的ActiveX控件开发应用程序,还可以用ADO对象开发应用程序。
使用ADO对象开发应用程序可以使程序开发者更容易地控制对数据库的访问,从而产生符合用户需求的数据库访问程序。
使用ADO对象开发应用程序也类似其它技术,需产生与数据源的连接,创建记录等步骤,但与其它访问技术不同的是,ADO技术对对象之间的层次和顺序关系要求不是太严格。
在程序开发过程中,不必选建立连接,然后才能产生记录对象等。
可以在使用记录的地方直接使用记录对象,在创建记录对象的同时,程序自动建立了与数据源的连接。
这种模型有力的简化了程序设计,增强了程序的灵活性。
6.3.2引入ADO库文件
使用ADO前必须在工程的stdafx.h文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。
代码如下所示:
#defineINITGUID
#import"c:
\programfiles\commonfiles\system\ado\msado15.dll"no_namespacerename("EOF","adoEOF")
#include"icrsint.h"
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免冲突,将EOF改名为adoEOF。
6.3.3初始化ADO环境
在使用ADO对象之前必须先初始化COM环境。
初始化COM环境可以用以下代码完成:
:
:
CoInitialize(NULL);
在初始化COM环境后,就可以使用ADO对象了,如果在程序前面没有添加此代码,将会产生COM错误。
在使用完ADO对象后,需要用以下的代码将初始化的对象释放:
:
:
CoUninitialize();
此函数清除了为ADO对象准备的COM环境。
6.3.4ADO与数据库的连接
ADO与数据库连接时,有一个非常重要的数据类型,__ConnectionPtr,在该类中封装了Idispatch接口指针,及一些必要的操作,通过这个指针便可以操纵Connection对象。
通常连接实现方式如下:
__ConnectionPtrconn;
Conn.Createinstance(_uuidof(Connection));
Coon->Open(BSTRConnectionString,BSTRUserID,BSTRPassword,longOptions);
各参数意义如下:
ConnectionString:
是最关键的参数,它表明了要连接的数据源,在本程序中使用的是Access数据库,它的格式一般为:
”Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db.mdb”。
UserID:
用户名,如果ConnectionString中已经包含,则可以为空。
Password:
密码,如果ConnectionString中已经包含,则可以为空。
Options:
表示是以同步方式(adConnectUnspecified)还是以异步方式(adAsyncConnect)进行连接,默认为同步。
具体的,有以下两种连接方式:
(1)LPCSTRstrConnect=“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db.mdb”;
Coon->Open(strConnect,””,””,adConnectUnspecified);
(2)conn->Open(“DSN=DataSourceName”,””,””,adConnectUnspecified);
6.3.5获得和遍历记录集
建立连接后,便可以创建一个ADO记录集.在得到记录集之前,需要先声明一个_RecordsetPtr型变量,然后创建记录集的实例:
一般说来,打开记录集的方式有3种。
1.利用Connection对象的Execute()方法执行SQL命令
Execute(_bstr_tCommandtext,VARIANT*RecordsAffected,longOptions)
各参数意义如下:
Commandtext:
命令字串,通常是SQL语句。
RecordsAffected:
操作完成后影响的行数。
Options:
CommandText中内容的类型。
取值为adCmdText表明是文本命令;取值为adCmdTable表明是一个表名;取值为adCmdProc表明是一个存储过程。
例如:
_variantRecordsAffected;
M_Connection->Execute(“select*fromContact”,&RecordsAffected,adCmdText);
2.利用Command对象执行SQL命令
党要执行复杂的命令以及执行带参数的命令时要使用命令对象对数据源进行操作。
一般的,利用Command对象打开记录集,代码如下。
_CommandPtrm_Command;
//创建实例
m_Command.CreateInstance(“ADODB.Command”);
//指向当前连接
m_Command->ActiveConnection=m_Connection;
//设置命令字串
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 压力容器 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)