收藏 分享(赏)

安1-7-1 安全操作规程交底.doc

上传人:晚风 文档编号:4127406 上传时间:2021-07-19 格式:DOC 页数:40 大小:139KB
下载 相关 举报
安1-7-1 安全操作规程交底.doc_第1页
第1页 / 共40页
安1-7-1 安全操作规程交底.doc_第2页
第2页 / 共40页
安1-7-1 安全操作规程交底.doc_第3页
第3页 / 共40页
安1-7-1 安全操作规程交底.doc_第4页
第4页 / 共40页
安1-7-1 安全操作规程交底.doc_第5页
第5页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、mports System.Console Module Module1 Sub Main() Dim Chx As String, Num As Integer Chx = * Num = 8 Call triangle(Chx, Num) 使用Call关键字的调用格式 Chx = $ triangle(Chx, Num / 2) 不用Call关键字的调用格式 End Sub Private Sub triangle(ByVal str As String, ByVal n As Integer) Dim i As Integer, j As Integer For i = 1 To n F

2、or j = 1 To i Write(str) Next j WriteLine() Next i End Sub End Module * * * * * * * * $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 当在程序中需要多次用到某一公式或要处理某一函数当在程序中需要多次用到某一公式或要处理某一函数 关系,而又没有现成的内部函数可以使用时,用户自己可关系,而又没有现成的内部函数可以使用时,用户自己可 以定义一些函数来使用。以定义一些函数来使用。 自己定义的函数通常称为自己定义的函数通常称为Function过程过程。 Function程也是用特定格式程也是用特定格

3、式 起来的一起来的一代代 。 Function过程过程在在用用束束时时回一个回一个,该值该值称称 Function程的程的返回返回。个个 的的型称型称Function 程的程的型型。 要使用自己定义的函数过程来编程序需要做两件事要使用自己定义的函数过程来编程序需要做两件事: : 一是要一是要定义定义Function过程过程; 二是要二是要调用调用Function过程过程。 5.2.2 Function过程的定义和调用 1.1. Function 程的定程的定 定义格式: Public|PrivateStaticFunction()As = Exit Function = | Return En

4、d Function 第一行称为函数过程首部。 Function是定义函数的关键字 。Private、Public、Static为可选关键字,意义同上。 函数有返回值,由As 指明返回值的数据类型。 Function与End Function之间的语句称为函数体。 函数体中应该至少有一个返回函数值的语句。 函数值返回语句有两种形式:向函数名赋予表达式的值和通 过Return语句返回表达式的值。 若函数没有返回值语句,则函数返回一个默认值。 数值型函数的默认值为0,字符串型函数的默认值为空串。 例如,求三个数的最大值可以定义一个函数过程:例如,求三个数的最大值可以定义一个函数过程: Privat

5、e Function max( ByVal x As Single, ByVal y As Single, _Private Function max( ByVal x As Single, ByVal y As Single, _ ByVal z As Single) ByVal z As Single) As SingleAs Single Dim m As Single Dim m As Single If xy Then m=x Else m=y If xy Then m=x Else m=y If zm Then m=z If zm Then m=z max=mmax=m End F

6、unctionEnd Function Return m Public Public Function Function fact(ByVal fact(ByVal n n As As Integer) Integer) As As LongLong Dim i As Integer, Dim i As Integer, t As Longt As Long t=1 t=1 For i=1 To n For i=1 To n t=t*i t=t*i Next t Next t fact=tfact=t End FunctionEnd Function 又如,求阶乘也可以定义一个函数过程:又如,

7、求阶乘也可以定义一个函数过程: Return t 要使用函数过程必须调用它,而调用函数过程的常用格要使用函数过程必须调用它,而调用函数过程的常用格 式为:式为: 函数过程名(实际参数表)函数过程名(实际参数表) 其中函数过程名用标识符表示。实际参数表中的参数一般为其中函数过程名用标识符表示。实际参数表中的参数一般为 常数、常量、变量等,更一般为表达式,它们必须在数目、常数、常量、变量等,更一般为表达式,它们必须在数目、 类型和排列次序上与相应函数过程定义的形式参数表中参数类型和排列次序上与相应函数过程定义的形式参数表中参数 一致。一致。 函数过程一般在表达式中调用。当系统在执行程序遇到函数过程

8、一般在表达式中调用。当系统在执行程序遇到 函数过程调用时,先进行参数传送,然后执行函数过程体中函数过程调用时,先进行参数传送,然后执行函数过程体中 的语句,并通过函数名把函数值带回表达式进行运算。的语句,并通过函数名把函数值带回表达式进行运算。 例如:例如:y=max(0.75,100,85.5) y=max(0.75,100,85.5) 2.2.函数函数程的程的用用 Private Private Function Function max( max( ByVal ByVal x x As As Single, Single, ByVal ByVal y y _ _ As Single,By

9、Val z As Single) As SingleAs Single,ByVal z As Single) As Single Dim m As Single Dim m As Single If xy Then m=x Else m=y If xy Then m=x Else m=y If zm Then m=z If zm Then m=z max=m max=m End FunctionEnd Function s=(fact(5)+fact(7)/fact(8)s=(fact(5)+fact(7)/fact(8) Public Function fact(ByVal n As Int

10、eger)As LongPublic Function fact(ByVal n As Integer)As Long Dim i As Integer,t As Long Dim i As Integer,t As Long t=1 t=1 For i=1 To n For i=1 To n t=t*i t=t*i Next t Next t fact=t fact=t End FunctionEnd Function 例5-4 使用函数计算圆面积。 Imports System.Console Module Module1 Function area(ByVal radius As Dou

11、ble) As Double area = 3.14159 * radius * radius End Function Sub Main() Dim r#, a# Write(请输入半径:) r = Va RaiseEvent ( ) 中的参数一般常数、常量、量和数 等,也可以表达式。 它必在数目、型和排列次序与相事件程定 的中的参数一致。 事件程的行程与一般程的行程一致。 若触事件用的事件程有参数,VB系首先 行参数送,然后行事件程体中的句。 程体行束之后,返回用事件程句的 下一个句去行。 若事件程没有参数,VB系直接行事件程体中 的句,行之后就返回用子程句的下一个句。 4能够触发事件对象

12、的定义 用一般方法定的象是不能触事件的,只有用关字 WithEvents定义的对象才能触事件。 用关字WithEvents定事件象句的法格式: Dim|Private|Public WithEvents As New 功能: 定一个能触事件的象。 例6-4 首先定义学生类Student,它包括3个数据成员No 、Name和Score,分别表示学号、姓名和分数,也包 括分别与数据成员No、Name和Score关联的属性X、 Y和Z,还包括两个事件Pass和NoPass,然后编写程 序测试该类定义的正确性。 Imports System.Console Module Module1 Public

13、Class Student 明Student Private No As String Private Name As String Private Score As Integer Public Property X() As String Get Return No End Get Set(ByVal V As String) No = V End Set End Property Public Property Y() As String Get Return Name End Get Set(ByVal V As String) Name = V End Set End Propert

14、y Public Property Z() As Integer Get Return Score End Get Set(ByVal V As Integer) Score = V End Set End Property 定义3个私有数据成员,只 能在类中访问,不能在类外 访问。 也定义3个属性与3个私 有数据成员对应 。 Public Event Pass() Public Event NoPass() Public Sub P() If (Score data; return; else Get_PreOrder(T-lchild, k, e ); /在左子树中查找 Get_PreOr

15、der(T-rchild, k ,e); /在右子树中查找 /if /Get_PreOrder 习题6.9: int LeafCount(BiTree T) /求二叉树中叶子结点的数目 if(!T) return 0; /空树没有叶子 else if(!T-lchild /叶子结点 else return Leaf_Count(T-lchild)+Leaf_Count(T-rchild); /左子树的叶子数加上右子树的叶子数 /LeafCount 习题6.10: /交换所有结点的左右子树 void Change_BiTree (BiTree T) BiTree temp if(T) temp=

16、T-lchild; T-lchild=T-rchild; T-rchild=temp /交换左右子树 if(T-lchild) Change_BiTree(T-lchild); if(T-rchild) Change_BiTree (T-rchild); /左右子树再分别交换各自的左右子树 /Change_BiTree 习题6.11: /求二叉树中以值为x的结点为根的子树深度 int Get_Sub_Depth(BiTree T,int x, int return;/找到了值为x的结点,求其深度 else if(T-lchild) Get_Sub_Depth(T-lchild,x,depth)

17、; if(T-rchild) Get_Sub_Depth(T-rchild,x,depth); /在左右子树中继续寻找 /Get_Sub_Depth int Get_Depth(BiTree T) /求子树深度的递归算法 if(!T) return 0; else m=Get_Depth(T-lchild); n=Get_Depth(T-rchild); return (mn?m:n)+1; /Get_Depth 习题6.12: / 删除所有以元素x为根的子树 void Del_Sub_x(BiTree T,int x) if(T-data=x) Del_Sub(T); /删除该子树 else

18、 if(T-lchild) Del_Sub_x(T-lchild,x); if(T-rchild) Del_Sub_x(T-rchild,x); /else 在左右子树中继续查找 /Del_Sub_x void Del_Sub(BiTree T) /删除子树T if(T-lchild) Del_Sub(T-lchild); if(T-rchild) Del_Sub(T-rchild); free(T); /Del_Sub 习题6.13: / 根据顺序存储结构建立二叉链表 Status CreateBiTree_SqList(BiTree /该数组储存与sa中各结点对应的树指针 if(!sa.l

19、ast) T=NULL; return; /空树 ptr1=new BTNode; ptr1-data=sa.elem1; /建立树根 T=ptr1;T-lchild=NULL; T-rchild=NULL; for(i=2; idata=sa.elemi; j=i/2; /找到结点i的双亲j if(i-j*2) ptrj-rchild=ptri; /i是j的右孩子 else ptrj-lchild=ptri; /i是j的左孩子 return OK; /CreateBitree_SqList 习题6.13: / 根据顺序存储结构建立二叉链表 void CreateBiTree_SqList(B

20、iTree for( int i=1; idata=sa.elemi; qi=p; for(i=1;ilchild=NULL; if(2*i+1rchild=q2*i+1; else qi-rchild=NULL; T=q1; /CreateBiTree_SqList 习题6.19: /求一棵以孩子兄弟链表表示的树的度 int GetDegree_CSTree(CSTree T) /求孩子兄弟链表表示的树T的度 if(!T-firstchild) return 0; /空树 else degree=0; for( p=T-firstchild; p; p=p-nextsibling) degr

21、ee+; /本结点的度 for( p=T-firstchild; p; p=p-nextsibling) d=GetDegree_CSTree(p); if(ddegree) degree=d; /孩子结点的度的最大值 return degree; /else /GetDegree_CSTree 习题6.20: /求孩子兄弟链表表示的树T的叶子数目 int LeafCount_CSTree(CSTree T ) if(!T) return 0; else if(!T-firstchild) return 1; /叶子结点 else count=0; for(p=T-firstchild;p;p

22、=child-nextsibling) count+=LeafCount_CSTree(p); return count; /各子树的叶子数之和 /LeafCount_CSTree 习题6.20: /求孩子兄弟链表表示的树T的叶子数目 int LeafCount(CSTree T ) CSTree p=T; int k=0; if(p!=NULL) if(p-firstchild=NULL) k=1+LeafCount(p-firstchild)+LeafCount (p-nextsibling); else k=0+LeafCount(p-firstchild)+LeafCount(p-ne

23、xtsibling); else k=0; return k; /LeafCount 习题6.23: /按树状打印输出二叉树的元素,i表示结点所 在层次,初次调用时i=0 void Print_BiTree(BiTree T,int i) if(T-rchild) Print_BiTree(T-rchild , i+1); for(j=1;j=i; j+ ) printf (“ ”); /打印i个空格以表示出层次 coutdatarchild, i+1 ); /Print_BiTree 分析:该递归算法实lt;90 结果返回一张内容如表10-8所示的结果表。 课 程 号课 程 名学 时学 分

24、0101计算机原理865 0110编码技术764 在教师表中收集姓梁的教师的材料 SELECT * FROM 教师 WHERE 教师名 LIKE 梁% 在上述语句中,与LIKE关键字匹配的字符“%”代表任意个字 符。 结果返回一张内容如表10-9所示的表。 教 师 号教 师 名系教 研 组 0321梁丽娟机电模具 1123梁 敬机电机械制造 查询星期二第3、4节上课的教师名和课程名 SELECT排课.上课时间,教师.教师名,课程表.课程名 FROM排课,教师,课程 WHERE 排课.上课时间=“周二3-4” And课程.课程号=排 课.课程号 And 教师.教师号=排课.教师号 为了区别不同表

25、中的同名字段,可以使用格式: . 结果返回一张如表10-10所示的有两个相同行的表。 上 课 时 间教 师 名课 程 名 周二3-4蔡培元程序设计 周二3-4蔡培元程序设计 要使返回的表中没有相同的行,在该查询语句的 SELECT后面要加上DISTINCT 在课程表中使用“GROUP BY”,按课程名分组。 SELECT 课程名, SUM(学时), SUM(学分) FROM 课程 GROUP BY 课程名 课 程 名学 时 和 学 分 和 计算机原理1408 软件测试543 工具与环境543 电力拖动362 模具设计543 机制基础724 材料力学724 程序设计1629 编码技术764 信号

26、处理724 英语视听362 在课程表中使用“GROUP BY”按课程名分组后,使 用HAVING提取同组课程学时之和大于70的行。 SELECT 课程名, SUM(学时), SUM(学分) FROM 课程 GROUP BY 课程名 HAVING SUM (学时)70 课 程 名学 时 和 学 分 和 计算机原理1408 机制基础724 材料力学724 程序设计1629 编码技术764 信号处理724 2数据更新语句 (1)UPDATE语句 功能:对合乎条件的记录,改变其中一个或多个字段 (列)的值。 格式: UPDATE 表名SET = , = WHERE (2)INSERT语句 功能:添加新

27、的记录到表中。 格式: INSERT INTO ( ,) VALUES ( , ) (3)DELETE语句 功能:删除表中记录。若无WHERE语句则删除表中全部 数据,但表仍然存在。 格式:DELETE FROM WHERE 例10-2数据更新示例。 把课程表中每门课程增加18学时,增加1个学分 UPDATE 课程 SET 学时=学时+18,学分 = 学分+1 把0102号课程星期二3,4节的课改为星期一3、4节,地 点不变。 UPDATE 排课 SET 上课时间=周一3-4 WHERE 课程号 =0102 And 上课时间 = 周二3-4 在教师表中增加一个教师。 INSERT INTO 教

28、师(教师号,教师名,系,教研组) VALUES (1031,余佩玉,电信工程,系统) 删除排课表中全部数据。 DELETE FROM 排课 从教师表中删除0873号教师的记录。 DELETE FROM 教师 WHERE 教师号 =0873 10.4 VB.NET中的数据库操作 . NET框架提供一套面向对象的数据库访问工具,称为 ADO.NET。 ADO是ActiveX Data Object的缩写,它提供一个允许通 过代码访问数据库的应用程序接口。 ADO.NET对象模型的两个核心组件是DataSet对象和 .NET数据提供程序。 DataSet对象是一个数据缓冲,其结构与关系数据库结构 一

29、致。当程序需要操作数据库时,连接外部数据源生成 DataSet对象的数据。程序对本地缓存数据进行操作,而不是 直接对数据库操作。若需要把操作结果保存到数据源中,程 序需要重新连接数据源,执行更新操作。 .NET数据提供程序是数据库的访问接口,它包括 Connection、DataReader和DataAdapter等一组对象,负责建 立和连接数据库操作。 ADO.NET主要使用SQL Server.NET或OLE DB.NET数据提 供程序来访问数据源。 其中,SQL Server.NET数据提供程 序用于访问SQL Server 7.0或更新版本的数据库,如SQL Server 2000。

30、OLE DB.NET数据提供程序主要用于访问Access、Oracle 、Sybase、SQL Server 6.5或更老版本的数据库,以及其 他数据源。 .NET框架的各种语言都可以在代码中使用ADO.NET接口 来编写操作数据库的应用程序。并且,.NET框架提供了一 套可视化的数据库工具(Visual Datebase Tools),包括 数据库关系图设计、查询设计和表设计。 应用这些工具,程序员几乎不必编写代码,就可以操 作数据库。本章将通过实例介绍这些工具的应用。 本节沿用10.2节建立的教务数据库,演示如何使用IDE 可视化数据库工具和向导,连接数据库、设计数据库和查 询数据库。 1

31、0.4.1 10.4.1 接接数据数据 连接数据库是指把外部已经建立的数据源导入应用程序, 以便应用程序可以方便地访问数据库的文件。 1创建项目 例10-3 在窗体显示教务数据库中的教师表。 创建一个新的Windows窗体应用程序,项目名称和窗体的 Text属性都设置为“显示数据表”。 2添加数据访问控件 集成开发环境工具箱“数据”控件列表中包含了一组操作 数据库的控件。选用带有OleDb前缀的控件。 3添加数据源 选择IDE主菜单的“数据”菜单项,从下拉列表中 选择“添加新数据源”,系统弹出“数据源配置向导”对 话框,将可视化地引导用户完成数据源连接的工作。 (1)选择数据源类型 在如图10.7(a)所示的“选择数据源类型”对话框中,选择 数据的来源为“数据库”,在如图10.7(b)所示的“选择数据库 模型”对话框中选择“数据集”。 (2)添加连接数据库 在如图10.8(a)所示的“选择您的数据连接”对话框中 ,单击“新建连接”按钮。 在“添加

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 应用文书 > 工作报告

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报