VC++第12章类的其他特性2.
第十二章伏安法与电位溶出法(45)

29
30
(二)溶出 静止0.5min~1min,施加反向扫描电压,记录曲线。
(三)定量分析依据
峰尖对应电位称为峰电位 p ,电流i p 是定量依据。
31
悬汞电极: 汞膜电极:
条件一定时:
32
(四)溶出峰电流影响的因素 1. 富集电位 控制在比待测离子峰电位负0.2V~0.4V
2. 搅拌速度: i p v ,常用的有电磁搅拌、旋转电极、
恒电流溶出或加入Hg2+为氧化剂时,待测溶液应作通氮 处理,并保持溶液上方为氮气氛围,以防止溶解氧的干扰。
40
二、电位溶出曲线 包括常规电位溶出、微分电位溶出(differential
potentiometri stripping analysis),前者是记录 t 曲线,后者是记录 dt d 或 d dt t 曲线。 (一)常规电位溶出
mh
t 1 h
22
2
2
ic m 3 t 3 h 3 h 3 h0
23
二、氢催化波 某些物质在酸性或缓冲溶液中能降低氢的超电位,比正
常氢波更正的电位下还原,形成氢催化波(hydrogen catalytic wave)。氢催化波高随催化剂的加入量的增加而增 加,形成比催化剂本身的扩散电流大的多的催化电流。
34
汞膜电极(mercury film electrode):汞膜薄,比表面积 大,汞膜牢固,可快速搅拌,富集效率高,灵敏度比悬汞电 极提高3个数量级。缺点: 形成互化物,汞膜均匀性难控制。
2. 固体电极: 碳质电极与贵金属电极如:Ag、Au、 Hg、Pt、As的测定
3. 化学修饰电极:电极表面具有特殊的化学基团,选择 性的富集分子,提高选择性和灵敏度。
vc12

12.3 输入/输出处理程序
●输入输出处理是几乎所有Windows应用 程序最基本的功能之一 ● Windows应用程序通过对键盘消息和鼠 标消息的响应完成对用户输入的处理 ●通过GDI提供的绘图函数在窗口的客户 区输出信息。
26
1. 文本输出程序
文本输出指在窗口客户区特定位 置输出用户指定的相关文本信息。 在MFC中,CDC类实现了对设备 环境的封装,CDC类有许多成员函数, 完成各种与设备环境有关的操作。
22
(4)视图类
● CMyWinP应用程序的视图类名为 CMyWinPView,类的声明在头文件MyWinPView.h 中,而类的实现在文件MyWinPView.cpp中。
●视图类主要管理视图窗口,Hale Waihona Puke 责用户数据的输 入和数据的输出显示。
●在创建一个单文档应用程序时,也可以选择将 视图类从非CView类的其他子类派生出来,例如, 在Base Class中选择CEditView作为基本视图类,则 可以很方便的得到一个简易的字处理程序。
23
(5) 其他文件
●除以上主要类之外,AppWizard还自动生 成Stdafx.cpp和stdafx.h两个文件。 这两个文件是每个基于MFC程序所必需的, ●用于建立一个预编译头文件*.pch和一个预 定义的类型文件stdafx.obj。 ● MFC包含很多头文件,如果每次都编译则 比较费时,将afxwin.h、afxext.h、afxcmn.h、 afxdisp.h都放在stdafx.h文件中,这样编译系 统可以识别哪些文件已经编译过,以加速应 用程序的编译过程。
//NOTE-the ClassWizard will add and remove mapping macros here. //DO NOT EDIT what you see in these blocks of generated code!
VC++第十二章

12.1 异常处理的基本语法12.2 异常处理的使用12.3 标准C++库中的异常类第12 章异常处理前言一个优秀的软件应该具有很强的容错能力。
C++语言能够提供异常处理机制使得当某个函数出现异常时,能够将控制权交给调用它的函数进行处理。
异常处理的主要任务是力争给用户提供机会,以排除环境错误,继续执行程序或者使程序给出恰当的提示。
异常处理是C++语言的一个重要特征。
出错处理机制更加完美,它使得异常的引发和处理不必在同一函数中。
由于在大型软件中,函数之间有着明确的分工和复杂的调用关系,如果在每一处可能出现错误的地方都加入错误处理代码,不仅会使程序显得冗长,可读性不好,而且会产生代码膨胀,影响程序的效率。
实际上在很多情况下,发现错误的函数往往不具备处理错误的能力。
在C++程序中,针对这种情况可以引发一个异常,希望它的调用者能够捕获这个异常并处理这个错误。
如果调用者也不能处理这个错误,还可以继续传递给上级调用者去处理,这种传播会一直继续到异常被处理为止。
如果程序始终没有处理这个异常,最终它会被传到C++运行系统那里,运行系统捕获异常后通常只是简单地终止这个程序。
本章将通过具体的例子讨论异常处理的使用方法。
异常处理的语法如下:throw 表达式语法throw 表达式try 表达式语法try受保护的程序段语句catch(异常类型)异常处理语句;catch(异常类型)异常处理语句;......try 、throw 和catch 语句实现异常处理,在程序的某个函数中发现异常时使用throw 表达式抛出这个异常,这个异常被抛给该函数的调用者,调用者用catch 捕捉该异常并进行相应的处理。
当预测到某段程序将可能出现问题时,则将该段程序放在try 语句之后,使该段程序得以有机会抛出异常。
异常类型与throw 抛出的异常类性相匹配,当某个异常发生后,catch 语句将逐个被检查,直到某个异常类型与throw 抛出的异常类型相匹配,执行catch 后面的异常处理程序。
12章-片剂

一、片剂的含义与特点
片剂(tablets):圆形片状或异型片状制剂。 常见的异型片有三角形、菱形、橢圆形等。 片剂始创于19世纪40年代 片剂在中国以及其他许多国家的药典所收载 的制剂中,均占1/3以上。
优点
1剂量准确,使用方便。每片含量均匀、差异小, 在药片上还可压上凹纹,便于分取较少剂量。 2质量稳定,受外界空气、水分影响较小,必要时 还可包衣保护。 3体积小,携带、运输和服用方便。 4生产机械化,成本较低。 5可通过各种制剂技术制成各种类型的片剂,如包 衣片、分散片、缓释片、控释片、多层片等。
④着色剂和遮光剂
5、包薄膜衣工艺流程
图12-8
薄膜包衣的固化操作
绝大多数包衣材料,包在片芯上后,需要经 过一段时间,薄膜才能定型并逐渐变坚硬, 此过程称为固化。 包衣产品的固化可在室温下或升温条件进行 若干小时,借以排除底料和包衣中残余的溶 剂。 通常需要在室温中贮存约6~8小时,然后再 在50° C干燥11~12小时。 最好采用逐渐干 燥的方法,以避免包衣起泡或产生花斑。
|②包粉衣层 ③包糖衣层
是清除片剂的棱角,使片面平整; 增加衣层牢固性和甜味,使片形光洁圆整,细腻美观; 使片剂美观和便于识别;
④包有色糖衣层
⑤打光
增加片剂的光泽美观和表面疏水防潮性能。
3、包糖衣工艺流程
图12-7
隔离层的层数对糖衣片质量的影响
隔离层的层数太多会使糖衣片崩解和溶解迟 缓; 若层数不够,包其余衣层时的水分可能进入 片芯,使片芯的稳定性下降。 隔离层的层数一般为2~6层 确定层数时应根据片芯的吸湿性、片芯对水 分的敏感性、片芯形状等因素综合而定。
理论力学-动能定理2

vA
(1)
,并将 90代入,其中 J o 解出角速度
P 1P 1Q | 90 Q ( l l ) 2速度,将(1)式两边对时间求导
l Q 2 Ql P sin J l 0 2 g Q
应用动量定理和动量矩定理的优点是不必考虑系统的内力。
应用动能定理的好处是理想约束力所作之功为零,因而不必 考虑。
动力学普遍定理的综合应用
在很多情形下,需要综合应用这三个定理,才 能问题的解答。正确分析问题的性质,灵活应用这 些定理,往往会达到事半功倍的作用。 另外,这三个定理都存在不同形式的守恒形式, 也要给予特别的重视。
始位置和最终位置有关,而与其作用点所经过的路径
无关(path-independent),这种力称为有势力或保 守力(conservative force)。 重力、弹性力等都具有这一特征,因而都是有势力。
势能、机械能守恒定律
● 势 能(potential energy)
势能是质点系从某位置运动到任选的零势能位置时,有 势力所作的功。 承受有势力作用的质点系,其势能的表达式为
3m2 m1cos d 2 l d m1 v a v m g cos 上式对时间求导 A A A 1 2 2 3sin 3 dt 2 dt 3sin v d 1 A 注意到 初瞬时 45 , vA 0 dt lsin 3m1 g aA 可解得 4m1 9m2
动力学普遍定理的综合应用
例 题 5
解: 2.确定B处的约束力
B
对图示系统应用质心运动定理,有
m a m a F F cos30 B Bx C Cx Bx T m a m a F F cos60 mB g mC g B By C Cy By T
VC(变式配置)相关性语法说明

VC(变式配置)相关性语法说明SAP 相关性(OD)语法作用及实例目录1.相关性的作用1.1描述或规范特性与特性、特性值与特性值、特性与特性值之间的相互关系。
1.2控制超级BOM中项目的选择。
1.3对BOM的数据进行更改或计算。
2.相关性的种类2.1前提条件2.2选择条件2.3活动2.4程序3.相关性的使用范围:3.1>全局相关性:单独建立,可引用在多个对象,具有通用性,外部编号或命名。
3.2>局部相关性:针对某个特定的对象(如BOM、特性等)建立,只能在此对象中使用,只能内部编号。
4.相关性语法4.1.常用规则:4.1.1.直接使用特性的代码作为变量,因此特性的代码只能使用字母、数字、底线“_”,不能使用连接符“-”。
4.1.2.每个单元之间用空格隔开(OD中要求,测试表明对语法检验无影响)。
4.1.3.关键词及字符串是不区分大小写的,除非你在特性维护时定义了区分大小写。
4.1.4.定义为字符串的(char格式)的特性值必须包含在单引号内。
4.1.5.星号(*)在行的开始表示该行为注释行;要素的分割用逗号(,)。
4.1.6.字符串处理4.2.关系运算符4.3.运算符号加:+ ,减:-,乘:* ,除:/。
CHAR_WIDTH = CHAR_LENGTH / 4SIN (2*3.14 * ANGLE / 360) 4.4.取整$SELF.CHAR_A = FLOOR ($SELF.CHAR_B + $SELF.CHAR_C + 0.5)4.5.大小判断运算4.6.间隔/区间的输入语法用语句"IN"标示5.相关性用法5.1.前提条件前提条件:指满足什么条件才出现某个特性或特性值。
作用:1、需要隐藏的特性。
2、需要隐藏的特性值。
3、当有A时才出来B。
例:现有一配置物料自行车它的其中一个特性是MODEL要求:如果当我们选择特性MODEL的特性值为Tandem时,则将原本隐藏的特性TANDEM_SADDLE显示出来语句:MODEL = 'Tandem'( MODEL eq 'Tandem')点评:这样写照成的效果1、如果MODEL选择的特性值是Tandem,则我们能看见特性TANDEM_SADDLE2、如果MODEL选择其它的特性值,则我们看不见特性TANDEM_SADDLE3、如果MODEL什么值都没有选择,则我们能看见TANDEM_SADDLE,因为我们在语句中没有写相关的限制。
电路与电子学基础内容

电路分析导论
仔细理解下面的例题
• 图示电路,若已知元件吸收功率为-20W,电压U为 5V,求电流I。 U I
解
P -20 I= = 5 = -4A U
+
元件
• 图示电路,已知元件中通过的电流为-100A,电压U 为10V,求电功率P。并说明元件性质。 U I +
解 P = UI = 10×(-100) = 1000W
返节目录
电路分析导论
利用电路模型研究问题的特点
1、电路模型是用来探讨存在于具有不同特性的、各种 真实电路中共同规律的工具。
2、电路模型主要针对由理想电路元件构成的集总参数
电路,集总参数电路中的元件上所发生的电磁过程都 集中在元件内部进行,任何时刻从元件两端流入和流 出的电流恒等、且元件端电压值确定。因此电磁现象 可以用数学方式来精确地分析和计算。
返节目录
电路分析导论
1.1 电路及其模型
1.1.1 电路的作用、组成与模型
• 电路的概念
由实际元器件构成的电流的通路称为电路。
返节目录
电路分析导论
电路的组成
• 电路的组成
电源
火线 零 线
..
连接导线和其余 设备为中间环节 负载
电路通常由电源、负载和中间环节三部分组成。
返节目录
电路分析导论
电路的功能
电路与电子学基础
返章目录
电路分析导论
欢迎学习电路与电子学基础
电路与电子学基础是通信、信息工程、计算机、自动 控制等专业的主干技术基础课程。通过本课程的学习可 使学生掌握电路的基本理论、基本分析方法和进行电路 实验的基本技能,为后续专业课程打下必要的基础。
电路与电子学基础理论体系严谨,内容贴近实际,学 生在学习中不仅可学会一种思维方法,而且深入学习能 养成科学的学习作风,从而终生受益。 学习电路与电子学基础,要求透彻理解其中的诸多重 要概念,掌握其基本定理、定律分析电路的方法,并能 运用它们分析和解决电路中的一些实际问题。
理论力学第12章

①
MaCx
MxC
F (e) ix
,
MaCy
MyC
F (e) iy
,
MaCz MzC Fiz(e) 。
②
MaC
M
dv dt
F (e) i
,
MaCn
M
vC2
F (e) in
,
F (e) ib
0 。
19
2. 刚体系统:设第 i 个刚体 mi,vCi,则有
mi aCi Fi (e) 或 mi rCi Fi (e)
对整个质点系来讲,内力系旳主矢恒等于零,内力系对任一 点(或轴)旳主矩恒等于零。即:
Fi (i) 0; mO (Fi (i) )0 或 mx (Fi (i) )0。
6
§12-2 动量与冲量 一、动量
1.质点旳动量:质点旳质量与速度旳乘积 mv 称为 质点旳动量。 是瞬时矢量,方向与v 相同。单位是 kgm/s。
解:选两物体构成旳系统为研究对象。
受力分析,
F (e) x
0,
水平方向
Kx
常量。
运动分析,设大三角块速度 v,
小三角块相对大三角块速度为 vr ,
则小三角块 va v vr
由水平方向动量守恒及初始静止;则
M (v)mvax 0 M (v)m(vrx v)0
vrx M m Srx M m vm Sm
mi aCix mi xCi Fix(e) mi aCiy mi yCi Fiy (e)
mi aCiz mi zCi Fiz(e)
MaC Fi (e) MrC Fi (e)
3. 质心运动定理是动量定理旳另一种体现形式,与质点运动微 分方程形式相同。对于任意一种质点系, 不论它作什么形式旳 运动, 质点系质心旳运动能够看成为一种质点旳运动, 并设想 把整个质点系旳质量都集中在质心这个点上, 全部外力也集中 作用在质心这个点上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
void A::Setxy(B &b) { x=b.c; y=b.d; } void main(void) { A a1(25,40); B b1(55,66); cout<<“a1.x=“ cout<<“a1.x=“<<a1.Getx( )<<‘\t’; )<<‘ cout<<“a1.y=“ cout<<“a1.y=“<<a1.Gety( )<<‘\n’; )<<‘ cout<<“b1.c=“ cout<<“b1.c=“<<b1.Getc( )<<‘\t’; )<<‘ cout<<“b1.d=“ cout<<“b1.d=“<<b1.Getd( )<<‘\n’; )<<‘ a1.Setxy(b1); cout<<“a1.x=“ cout<<“a1.x=“<<a1.Getx( )<<‘\t’; )<<‘ cout<<“a1.y=“ cout<<“a1.y=“<<a1.Gety( )<<‘\n’; )<<‘ }
10
12.1.2 一个类的成员函数作为另一个类 的友元
class B; class A { float x,y; public: A(float a,float b) {x=a;y=b;} float Getx( ) { return x;} float Gety( ) { return y;} void Setxy( B &); }; class B { float c,d; public: B(float a,float b) {c=a;d=b;} float Getc( ) {return c;} float Getd( ) {return d;} friend void A::Setxy( B &); };
13
12.1.3 一个类作为另一个类的友元
class N { //……… //……… friend class M; }; class M { //……… //……… };
类M作为类N的友元 作为类N
友元关系不传递、不 友元关系不传递、 交换、不继承 交换、
P273
例12.3
14
12.2 静态成员
16
void main() { A a(2,3,4,5); a.show();
A b(100,200,300,400); b.show(); a.show(); } //cout<<A::y; //cout<<A::x; error i=2 i=100 i=2 j=3 x=4 y=5 y=400 y=400
17
j=200 x=300 j=3 x=300
12.2 静态数据成员
静态数据成员是静态分配存储空间的, 静态数据成员是静态分配存储空间的,即其 存储空间在全局内存区。 存储空间在全局内存区。
全局存储区 x y
动态存储区 i a j i b
18
j
12.2 静态数据成员
必须在文件作用域,对静态数据成员作一次 必须在文件作用域, 且只能作一次定义性说明 静态成员数据同时具有全局变量和局部变量 的一些特点 对静态数据成员一般不在构造函数中赋初值, 对静态数据成员一般不在构造函数中赋初值, 而是在类外文件作用域中, 而是在类外文件作用域中,作定义性说明时 赋初值。 赋初值。
8
#include <iostream.h> #include "math.h" class point { public: point (double xx, double yy) { x=xx; y=yy;} void getxy(); private: friend double distance(point &a,point &b); private: double x,y; }; void point::getxy() { cout<<"("<<x<<","<<y<<")"<<endl;}
19
12.2 静态数据成员
class A {int x; 静态数据成员的应用- 静态数据成员的应用-对象计数器 { static int c; A b[2]; public: a1.show(); A(int a=0) } {x=a; c++; } cout<<"number="<<c<<endl;} ~A() { c--; c--; cout<<"number="<<c<<endl;} void show() {cout<<"x="<<x<<'\ {cout<<"x="<<x<<'\t'; cout<<"c="<<c<<endl; } } int A::c=0;
void main() { A a1(100);
20
12.2 静态成员函数
静态成员函数只能直接使用本类的静态成员 数据或静态成员函数, 数据或静态成员函数,但不只能直接使用非 静态成员数据,因为它不包含对象地址的 静态成员数据, this指针 this指针。 指针。 静态成员函数若要使用某对象的非静态成员 数据,须将该对象作为函数参数。 数据,须将该对象作为函数参数。 C++为节省存储空间 C++为节省存储空间,将同一类的所有对 为节省存储空间, 象的成员函数只保存一个拷贝。 象的成员函数只保存一个拷贝。
12
12.1.2 一个类的成员函数作为另一个类 的友元
将一个类1的成员函数( 将一个类1的成员函数(含构造函数和析构 函数)说明为类2的友元函数时,格式为: 函数)说明为类2的友元函数时,格式为: class D; class C{ … 注意: 注意: public: 包含友元的类对象, 包含友元的类对象,往往 void fun(D &); 作为友元的函数参数 }; class D{ … friend void C:: fun(D &); }; void C::fun(D &d) { … }
6
void main( ) { A a1(25,40),a2(10,40); cout<<"V1="<<Volum(a1)<<"\ cout<<"V1="<<Volum(a1)<<"\n"; cout<<"V2="<<PI*a2.Getr( ) *a2.Getr( )*a2.Geth( )<<"\n"; )<<"\ }
类是一种数据类型,定义类时并不分配存 类是一种数据类型, 储空间。 储空间。 以类作为数据类型定义对象时, 以类作为数据类型定义对象时,给对象分 配空间,因为对象是一种变量。 配空间,因为对象是一种变量。 当把类中的某个数据成员说明为static的 当把类中的某个数据成员说明为static的 时候,类的所有对象的static数据成员共 时候,类的所有对象的static数据成员共 亨同一个内存空间, 亨同一个内存空间,且该存储空间是编译时 分配的。 分配的。
解决办法
使用类的友元函数
3
12.1.1 普通函数作为一个类的友元
友元函数的说明方式
friend <type> funname(<args>); 特点:该函数可以访问类中的所有成员 私有、 该函数可以访问类中的所有成员(私有 特点 该函数可以访问类中的所有成员 私有、保 护和公有成员) 又不损坏类的封装特性 又不损坏类的封装特性。 护和公有成员).又不损坏类的封装特性。 注意: 注意:友元函数 若在类中定义同普通成员函数一 样,但在类外定义,不需要在友元函数前加类作 但在类外定义, 用域, 用域,因为友元函数不是类的成员函数
7
12.1.1 普通函数作为一个类的友元
友元函数不是类的成员函数,它不带this 指针, 友元函数不是类的成员函数,它不带this 指针, 因此必须将对象名或对象的引用作为友元函数的 参数,并在函数体中使用“ 参数,并在函数体中使用“.”运算符访问对象的成 员 与一般函数的区别: 与一般函数的区别: 必须在类的定义中说明,可以访问类中所有成员 在类中对友元函数指定访问权限无效 友元函数不是类的成员 友元函数的作用域 友元函数是普通函数,其作用域是整个文件, 友元函数是普通函数,其作用域是整个文件, 是文件作用域(全局) 是文件作用域(全局) 使用友元函数的目的是提高程序运行效率, 使用友元函数的目的是提高程序运行效率,通常用 来取对象中的成员数据, 来取对象中的成员数据,而不要修改对象中的成员 值.
第12章 12章
类的其它特性
1
12.1 12.2 12.3
友元 静态成员 虚函数
2
12.1 友元函数
问题
当把类中的成员的访问权限定义为私有的或保 护的情况下, 护的情况下,在类的外部不能直接访问这些成 这是类的封装性。 员,这是类的封装性。 若把类的私有成员或保护成员改成公有成员, 若把类的私有成员或保护成员改成公有成员, 则又破坏了类的封装性
15
12.2 class A 静态数据成员 {int i,j; static int x; public: static int y; A(int i1=0,int j1=0,int x1=0,int y1=0) { i=i1; j=j1; x=x1; y=y1;} void show() {cout<<"i="<<i<<'\t'<<"j="<<j<<'\ {cout<<"i="<<i<<'\t'<<"j="<<j<<'\t'; cout<<"x="<<x<<'\t'<<"y="<<y<<'\ cout<<"x="<<x<<'\t'<<"y="<<y<<'\n'; } }; int A::x; int A::x=0; 必须在文件作用域, 必须在文件作用域,对静态数据成员作一次 int A::y; int A::y=0; 且只能作一次定义性说明。 且只能作一次定义性说明。