第9章.ppt

-龚沛曾-VB.net程序设计教程(第3版)

收藏

压缩包内文档预览:

资源预览需要最新版本的Flash Player支持。
您尚未安装或版本过低,建议您

-龚沛曾-VB.net程序设计教程(第3版),龚沛曾,VB,net,程序设计,教程
编号:74277869    类型:共享资源    大小:11.31MB    格式:ZIP    上传时间:2020-04-19 上传人:独** IP属地:江苏
20
积分
关 键 词:
龚沛曾 VB net 程序设计 教程
资源描述:
-龚沛曾-VB.net程序设计教程(第3版),龚沛曾,VB,net,程序设计,教程
内容简介:
应用案例和相关概念ADO NET基础数据库查询数据库维护 数据库应用程序开发 问题的提出 第八章数据文件对数据的保存有利但不利 数据的维护 查询不便 都要通过编程来实现 如何解决 利用数据库访问 2 3 典型案例一 校园一卡通 4 典型案例二 通用考试系统 应用程序 数据库管理系统 VB VC Web技术 ACCESS SQLSERVER ORACLE MySQL ADO NET技术 数据库 题库 C 为什么各门课程考试可使用相同的考试系统 题库的不同 SQL命令 一 引例利用拖放建立简单的学生数据管理程序 5 特点 几乎不需要编程 拖放数据自动实现数据的查询和维护功能 准备数据库添加数据源选择数据表拖放表或者表的字段到窗体 6 1 添加数据源 数据库 1 菜单 项目 添加新数据源 7 是否复制数据库 2 选择数据表 选择数据表 8 3 拖放自动生成 自动产生的控件 直接拖曳字段 自动生成的代码 视图 其他窗口 数据源 直接拖曳表 9 二 NET平台上数据库应用系统的三层结构 数据库应用程序的设计方法 数据拖放 控件和数据源建立连接 具有浏览和维护数据功能 但没有实用意义编程 利用代码定义ADO NET对象和编写相关的需求功能 提供前台应用程序所需的数据源 提供前台与后台之间的通信 用VB等语言完成应用程序功能设计及相应的界面设计 10 ADO NET的体系结构 ADO NET包括两个核心组件 DataProvider 数据提供程序 DataSet 数据集 对象 本课程涉及的四个对象 ConnectionCommandDataAdapterDataSet ADO NET数据访问主要对象 11 ADO NET不同数据提供程序所对应的类名 12 导入System Data OleDb命名空间ImportsSystem Data OleDb OLEDB 对象链接和嵌入数据库 接口 Access数据库 13 数据库操作示意图 数据库 Connetion Command ExecuteNonQuery 方法 DataAdapter DataSet 维护方式 增 删 改 查询方式 查询 统计 14 Connection对象的主要属性和方法 绝对路径和相对路径问题 数据库的连接 用代码实现 导入System Data OleDb名称空间 设置连接字符串 数据库类型 数据库名 创建OleDbConnection对象 设置连接属性 Open打开连接 有的自动打开 访问数据库后Close关闭连接 建立连接的步骤 注意 连接的数据库文件默认应在项目bin debug文件夹下可以多次调用Open 和Close 但必须成对出线 ImportsSystem Data OleDbDimDimconStr conStr Microsoft ACE OLEDB12 0 DataSource classes accdb 一行书写DimobjConnAsNewOleDbConnection conStr objConn Open MsgBox 成功建立与数据库 objConn DataSource 的连接 objConn Close 例9 2 16 数据库连接对象声明和获得连接字符串 连接的是classes mdb数据库 连接字符串如何书写 conStr Provider Microsoft Jet OLEDB 4 0 Datasource classes mdb 连接的是classes accdb数据库 连接字符串如何书写 OleDbConnection conStr Provider Microsoft ACE OLEDB12 0 DataSource classes accdb conStr Provider Microsoft Jet OLEDB 4 0 Datasource classes mdb 回顾 数据库连接的对象类 DimobjConnAsNewOleDbConnection conStr 17 断开式查询时用到哪些对象类 OleDbDataAdapter DataSet 如何创建 DimobjAdpAsOleDbDataAdapter DimobjDataSetAsNewDataSet 如何使用 selStr 查询命令 objAdp NewOleDbDataAdapter selStr objCon objAdp Fill objDataSet 表别名 如何在窗体上显示查询的结果 DataGridView1 DataSource objDataSet Tables 表别名 18 如何引用DataSet数据集中某些信息 行 列如何表示 如何引用DataGridView控件中某些信息 行 列如何表示 19 要显示每个学生所选的课程数 平均分 学号 字符串命令 sqlStr SELECT学号 count As课程数 avg 成绩 fromscoresgroupby学号 要显示每个学生所选的课程数 平均分 学号 姓名 sqlStr SELECTfirst 姓名 as姓名1 scores 学号 count As课程数 avg 成绩 fromscores studentswherestudents 学号 scores 学号groupbyscores 学号 重点解决SELECT命令的正确书写 方法直接进入ACCES建立查询 程序实现流程 20 显示学号由用户通过文本框输入 sqlStr SELECT fromstudentswhere学号 1502002 显示学号为 1502002 学生的基本信息 交互查询 sqlStr SELECT fromstudentswhere学号 TextBox1 Text 数据库的查询 用代码实现 21 1 理解查询的流程 用到的对象 2 根据查询要求 如何构建SQL命令 3 掌握简单查询 分组查询 交互查询如何实现 4 掌握查询结果如何在网格控件显示 22 23 数据库查询过程示意图 数据库 DataSet OleDbDataAdapter DataGridViewTextBoxLabelComboBox 离线式查询 Provider Datasource SQL OleDbConnection TablesRowsItem Command DataReader对象 Fill 窗体显示查询结果 在线式查询 内存数据库 OleDbConnection 准备工作导入System Data OleDb名称空间创建3个对象 连接 适配器 数据集两个字符串变量 连接属性 SQL命令 查询操作连接对象和数据库连接适配器获取数据 SQL命令 连接对象适配器将获取数据Fill到数据集 查询结果显示在屏幕网格控件获得数据集的表内容 数据库的查询过程 ImportsSystem Data OleDbDimobjConnAsNewOleDbConnectionDimobjAdpAsNewOleDbDataAdapterDimobjDataSetAsNewDataSetDimconStr sqlStr conStr Provider Microsoft Jet OLEDB 4 0 Datasource classes mdb 一行书写objConn ConnectionString conStrsqlStr select fromstudents objAdp NewOleDbDataAdapter sqlStr objConn objAdp Fill objDataSet 学生 DataGridView1 DataSource objDataSet Tables 学生 例9 3 注意 DataAdapter对象可以自动打开或关闭连接 25 DataAdapter对象 是数据库与数据集的桥梁 DataAdapter对象 NewOleDbDataAdapter SQL 数据库连接对象 获取SQL语句执行得到的结果集 利用Fill方法将其填充到DataSet对象中DataAdapter对象 Fill 数据集对象 表 主要方法 Fill 26 DataSet对象 是内存中的一个数据库 作用 将数据库中取出来的数据缓存在内存中 常用属性 Tables 数据集中包含的数据表的集合数据集对象的结构 DataSet Tables 数据表名 Rows i Item j 常用方法 Clear清除表中数据 Rows 0 Rows Rows Count 1 Item 0 若仅获得一张表 则Tables 数据表名 Tables 0 Item Item Count 1 27 要将表中某列内容存入列表框 要将表中的姓名字段在列表框显示 Fori 0ToobjDataSet Tables 学生 Rows Count 1s objDataSet Tables 学生 Rows i Item 1 ListBox1 Items Add s Next 0 Rows Count 1 Item 1 Tables 学生 28 DataGridView网格控件 常用属性DataSource获得数据集中表的数据CurrentRow CurrentCell当前选定行 列RowCount ColumnCount行数 列数Cells 列 Value单元格值 0 ColumnCount 1 cells 0 CurrentRow 例 DataGridView1 DataSource objDataSet Tables 学生 DataGridView1 29 DataGridView网格控件 Fori 0ToDataGridView1 ColumnCount 1s DataGridView1 CurrentRow Cells i ValueListBox1 Items Add s Next 0 ColumnCount 1 CurrentRow 掌握这些对后面维护操作很有用 DataGridView1 例将当前选中行的每个单元格内容在列表框显示 例9 3 30 Select目标列From表名 Where查询条件 GroupBy分组字段Having分组条件 OrderBy排序关键字段 Asc Desc 复习 大学计算机 课程学习的Select查询命令 Where条件 目标列 查询基础 常用函数 31 日期函数 Date Year D 合计函数 AVG COUNT SUM MAX MIN 如果没有GROUPBY子句 合计函数对整个表进行统计 产生一条记录 否则按分组统计 一组产生一条记录 查询基础 进入Access 在SQL视图创建查询 熟悉SQL命令的调试 选择 创建 选项卡 选择 查询设计 按钮 创建一个空查询 切换到 SQL视图 输入SQL命令 执行查询 Select姓名 专业FromStudentsWhere出生年月 1 1 1997 And性别 女 例查询1997年以前出生的女生姓名和专业 注意 输入时除出汉字全部英文字符 包括空格 33 例 查询所有计算机专业学生的学号 姓名和年龄分析 年龄通过当前年与出生年月计算获得Year Date Year 出生年月 Select学号 姓名 Year Date Year 出生年月 As年龄FromStudentsWhere专业 计算机 查询基础 仅是标题显示 是别名 没有值 进一步要求 仅显示年龄 19岁的非计算机专业学生 Where专业 计算机 AndYear Date Year 出生年月 19 Where专业 计算机 And年龄 19 34 例查询显示学生学号 姓名 课程 成绩分析 涉及两表查询 通过where将两表中的学号进行关联 SELECTstudents 学号 姓名 课程 成绩fromstudents scoreswherestudents 学号 scores 学号 两表连接 连接 35 利用VB编程实现查询 例对学生成绩按学号分组统计 步骤 OleDbConnection连接构建SQL命令OleDbDataAdapter获得查询数据填充到DataSet数据集在网格显示结果界面设计 DataGridView Button sqlStr select学号 max 成绩 as最高分 min 成绩 as最低分 avg 成绩 as平均分fromScoresgroupby学号 关键构建SQL查询命令 conStr Provider Microsoft ACE OLEDB 12 0 DataSource classes accdb 一行书写objConn ConnectionString conStrsqlStr select学号 max 成绩 as最高分 min 成绩 as最低分 avg 成绩 as平均分fromScoresgroupby学号 objAdp NewOleDbDataAdapter sqlStr objConn objAdp Fill objDataSet 学生 DataGridView1 DataSource objDataSet Tables 学生 例9 4 进一步思考 合计条件查询 36 sqlStr select学号 max 成绩 as最高分 min 成绩 as最低分 avg 成绩 as平均分fromScoresgroupby学号havingavg 成绩 80 仅显示平均分高于80分的那些学生的最高分 最低分和平均分 如何修改前面的Select命令 注意 不能写成 having平均分 80因为 avg 成绩 as平均分 仅是显示的标题名 没有实际的值 交互查询 查询内容由用户在文本框输入 SqlStr Select fromstudentswhere专业 交通工程 问题 现专业是由用户在文本框输入 SQL命令如何书写 以往查专业为字符串常量 如 交通工程 查询命令 SqlStr Select fromstudentswhere专业 TextBox1 Text 怎么解决 把查询命令拆成三部分 不变字符串部分1 变量 不变字符串部分2 SqlStr Select fromstudentswhere专业 TextBox1 Text 不变 不变 可变 专业 SQL命令交互输入书写形式 38 变量类型为字符串 命令不变部分1 变量 命令不变部分2 变量类型为日期 命令不变部分1 变量 命令不变部分2 变量类型为数值 命令不变部分1 变量 例查询成绩高于cj变量中输入的那些学生sqlStr select学号 成绩fromScoreswhere成绩 cj 掌握这些对后面维护操作很有用 模糊查询 39 利用where字段Like 字符 条件表达式来实现匹配任意字符 sqlStr Select姓名 学号fromstudentswhere姓名Like 陈 但如果查询的姓名中的字符是从文本框输入 也是要把字符串命令分成3部分 例9 5 sqlStr select姓名 学号fromstudentswhere姓名Like TextBox2 Text 40 查询小结 理清查询的过程 用到的对象和作用关键写SQL命令 尤其条件中交互通过TextBox等控件或变量的书写 其他语句 对象及设置都是套路 查询结果 1 一组数据 一般在网格控件显示DataGridView1 DataSource objDataSet Tables 表名 2 一行结果可以在网格控件 也可以在TextBox Label控件 若是后者 控件 属性 objDataSet Tables 表名 Rows i Item j 注意 为简化 本课程仅要求在网格控件显示 41 2 查询命令字符串书写进入access环境 建立查询 调试正确 粘贴到字符串 OleDbConnection conStr Provider Microsoft ACE OLEDB12 0 DataSource classes accdb conStr Provider Microsoft Jet OLEDB 4 0 Datasource classes mdb 常见问题 1 数据库连接字符串书写 获取 3 交互式查询命令书写进入access环境 建立查询 用常量 调试正确 粘贴到字符串 用文本框代替 42 查询4查询4 根据组合框下拉项中选择部门 统计该部门所有员工各月份的最高 最低 平均的实际收入 通过Command对象读取部门信息 然后通过DataReader对象的Read 方法逐一读取后加入到组合框 组合框内容 即部门 根据数据库的内容 在属性窗口设置好 改进 SELECTDISTINCT部门frompersonal 获得唯一部门从数据集获得每一部门加入到组合框 如何引用DataSet数据集中一列信息 在组合框事件写SELECT命令显示与组合框相关的命令 还要考虑两表查询 数据维护 代码实现 43 插入 Insert 删除 Delete 修改 Update 对数据库的数据维护主要涉及到对数据的插入 删除和修改 任何数据库应用程序都离不开这些功能 对一个数据库应用程序而言 用户是不能直接来操作数据库文件 一般通过应用程序中进行交互实现维护 这涉及3条命令 1 维护的流程 用到的对象 2 根据维护要求 如何正确地构建SQL命令 44 45 维护流程图流程 用Command对象实现 连接数据源 适配器 数据集 网格显示数据 在新窗体输入数据构建Insert命令 在网格选定欲删除的数据构建DELETE命令 Command对象与sql命令 连接对象关联 打开数据连接Command对象 ExecuteNonQuery方法 关闭连接 网格显示维护后内容 显示选定的数据输入数据构建Update命令 注意 因为维护首先要看到数据 所以维护前后都用到在网格显示数据 46 维护流程图流程 添加 连接数据源 适配器 数据集 网格显示数据 输入数据构建Insert命令 在网格选定欲删除的数据构建DELETE命令 Command对象与sql命令 连接对象关联 打开数据连接Command对象 ExecuteNonQuery方法关闭数据连接 网格显示更新后的数据 显示选定的数据输入数据构建Update命令 注意 因为维护首先要看到数据 所以维护前后都用到在网格显示数据 修改 删除 Command对象 作用 生成并执行SQL语句 对数据库进行查询和维护操作 47 重要属性 Connection 数据库连接对象 CommandText sql命令 例9 6对数据进行添加 删除 修改 48 分析 1 程序运行就将数据在网格控件显示 通过Form Load事件显示 2 添加 修改的数据在Form2 Form3窗体操作 3 多个窗体 多个事件实现维护操作 涉及的对象和变量可在模块中声明便于共享 ImportsSystem Data OleDbModuleModule1PublicobjConnAsNewOleDbConnectionPublicobjAdapAsNewOleDbDataAdapterPublicobjCmdAsNewOleDbCommandPublicobjDSetAsNewDataSetPublicstrCon strSql EndModule 难点 将窗体中每个控件的内容根据字段不同类型连接成SQL字符串命令文本类型 不变 文本框 不变 日期类型 不变 日期控件 不变 insertintostudentsvalues 1500001 张三 女 计算机 1998 1 2 strSql insertintostudentsvalues TextBox1 Text TextBox2 Text xb TextBox3 Text DateTimePicker1 Value Date 49 添加的内容为常量 添加的内容为变量 显示数据与查询相同在网格全部显示数据 维护操作声明Command对象构建SQL维护命令打开数据库连接执行ExecuteNonQuery方法 维护结果显示数据集对象清空 Fill方法获得新数据在网格控件显示 数据库的维护过程 PrivateSubForm1 Load HandlesMyBase LoadstrCon Provider Microsoft Jet OLEDB 4 0 一行DataSource classes mdb 设置连接字符串objConn ConnectionString strConstrSql select fromStudents objAdap NewOleDbDataAdapter strSql objConn objDSet Clear objAdap Fill objDSet stud DataGridView1 DataSource objDSet Tables stud EndSub 例9 6 注意 因为维护首先要看到数据 显示数据与查询相同略声明3个对象 在网格全部显示数据 添加操作构建SQL添加命令命令对象对数据源的操作 sql 连接对象打开数据库连接执行ExecuteNonQuery方法关闭数据库连接 添加结果显示数据集对象清空 Fill方法获得新数据在网格控件显示 数据库的添加操作 strSql insertintostudentsvalues TextBox1 Text TextBox2 Text xb TextBox3 Text DateTimePicker1 Value Date objCmd NewOleDbCommand strSql objConn objConn Open objCmd ExecuteNonQuery MsgBox 添加成功 objConn Close objDSet Clear objAdap Fill objDSet stud 重新填充数据集Form1 DataGridView1 DataSource objDSet Tables stud 例9 6 Form2 2 数据库的修改 实现流程 网格显示数据 选中欲修改的记录通过网格属性将选中记录的字段逐一在新窗体显示 供用户修改 主键如学号不能修改 可设置为只读 构建Update命令Command命令对象对数据源的操作 sql 连接对象打开数据库连接 执行ExecuteNonQuery方法更新数据库 关闭数据库连接 52 53 修改操作之一读取选定记录在新窗体显示 Form3 0 ColumnCount 1 cells 0 CurrentRow Form3 TextBox1 Text DataGridView1 CurrentRow Cells 0 ValueForm3 TextBox2 Text DataGridView1 CurrentRow Cells 1 ValueIfDataGridView1 CurrentRow Cells 2 Value 男 ThenForm3 RadioButton1 Checked TrueElseForm3 RadioButton2 Checked TrueEndIfForm3 TextBox3 Text DataGridView1 CurrentRow Cells 3 ValueForm3 DateTimePicker1 Value DataGridView1 CurrentRow Cells 4 ValueForm3 Show 修改操作之二构建Updete命令 54 复习Update命令形式 Update表名Set字段名1 值1 字段名2 值2 Where条件 Update常量形式修改某记录字符串表达式 UpdateStudentsSet姓名 张三 性别 女 专业 交通工程 出生年月 1998 1 2 where学号 150001 Update交互修改某记录字符串表达式 拆成不变部分 可变控件或变量 UPDATEstudentsSet姓名 TextBox2 Text 性别 xb 专业 TextBox3 Text 出生年月 DateTimePicker1 Value where学号 TextBox1 Text 55 将网格选定的内容逐项在新窗体显示 根据学号修改操作构建UPdate命令 正确书写其余操作与添加相同 修改操作之三执行更新数据库中数据 strSql UPDATEstudentsSet姓名 TextBox2 Text 性别 xb 专业 TextBox3 Text 出生年月 DateTimePicker1 Value where学号 TextBox1 Text objCmd NewOleDbCommand strSql objConn objConn Open objCmd ExecuteNonQuery MsgBox 修改成功 objConn Close 维护结果显示数据集对象清空 Fill方法获得新数据在网格控件显示 56 根据网格中选定的项构建Delete命令执行删除命令 同添加和修改 数据库的删除 实现流程 strSql DELETE fromStudentswhere学号 DataGridView1 CurrentRow Cells 0 Value objCmd NewOleDbCommand strSql objConn objConn Open objCmd ExecuteNonQuery MsgBox 删除成功 objConn Close 例9 6 删除SQL命令形式 DeleteFrom表名Where条件一般按主键学号来构成删除条件 57 维护操作总结 1 掌握维护操作流程 用到的对象 操作步骤2 关键是掌握添加 修改和删除的SQL命令正确书写3 通过实验来加深理解和掌握 第1节 应用案例和数据库概念可不讲第2节 要讲第3节查询的SELELCT命令提一下 大基学过 交互查询下次讲 58 1 应用案例和相关概念 59 本节通过典型案例的介绍 让大家进一步理解数据库在信息化社会的作用 以及数据库应用程序开发的过程 简要地介绍了数据库的基本概念以及Access数据文件的组成 60 典型案例一 校园一卡通 61 典型案例二 通用考试系统 应用程序 数据库管理系统 VB VC PowerBuilder Delphi ACCESS SQLSERVER ORACLE MySQL ADO NET技术 数据库 题库 C 为什么各门课程考试可使用相同的考试系统 题库的不同 SQL命令 数据库概念 数据库 DataBase DB 长期保存在计算机外存上的 有结构的 可共享的数据集合 数据库管理系统 DataBaseManagementSystem DBMS DBMS提供给用户可使用的SQL数据库语言 对数据库进行管理的软件 如建库 查询 更新 插入 删除等操作 应用程序利用各种开发工具开发的 满足特定应用环境的数据库应用程序 62 数据库概念 关系数据库 由若干表组成 根据表 记录和字段之间的关系进行数据组织和访问 并通过关系将这些表联系在一起 典型的关系数据库产品AccessMySQLSQLServerOracle 63 记录 字段 表 本章案例中用到的数据库classes mdb Students表Scores表 64 创建数据库 创建表 设计各字段及主键 添加数据 65 数组 声明 初始化 求数组上界函数UBound 分离函数Split列表框 常用属性和方法过程 函数过程 子过程的差别 参数 值传递和引用传递区别界面设计 菜单 对话框 多重窗体 操作题要求文件 顺序文件的打开 关闭 读入 行读 数据项读入写 文本框一次写入 数据项逐个写入实验题目 66 求级数和素数最大公约数最大值 最小值 计数 平均值排序 选择 冒泡 数组元素插入 删除和移位加密解密和加密回文数 词 算法 ADO NET技术基础 67 要对数据库访问 在微软的 NET框架下离不开ADO NET技术 什么是技术 其实质是一组用于和数据源进行交互的面向对象类库 1 通过拖放建立简单的数据库应用程序实例2 了解数据库应用开发的三层次结构3 理解ADO NET的体系结构中的主要对象 作用 68 VisualBasic NET程序设计同济大学龚沛曾 2 第四章基本的控制结构 4 1顺序结构4 2选择结构和选择控件4 3循环结构和相关控件4 4综合应用 常用算法4 5自主学习 程序调试 本章目录 3 VB NET是完全面向对象的程序设计语言在事件过程的实现上具有结构化程序设计的三种控制结构 即顺序结构 选择结构 循环结构 是程序设计的基础 本章目录 1 顺序结构各语句按出现的先后次序执行 用传统流程图表示为 引言 4 2 选择结构 传统流程图 根据条件决定执行的语句 5 3 循环结构 I 当型循环结构 II 直到型循环结构 根据条件重复执行语句 称为循环体 6 4 1顺序结构 本章目录 4 1 1引例例4 1华氏温度与摄氏温度之间转换 要求 已知华氏温度 转换成摄氏温度 同样 已知摄氏温度 转换成华氏温度 换显示保留两位小数 华氏温度与摄氏温度之间转换的公式是 程序运行不管输入摄氏温度C多少 显示结果华氏温度始终是32度 原因 计算机始终按照人安排的顺序依次执行语句 Dimf c f 9 5 c 32c Val TextBox1 Text TextBox2 Text Format f 0 00 c Val TextBox1 Text f 9 5 c 32 7 一般程序设计语言中顺序结构的常用简单语句 赋值语句和输入 输出语句等 在VB NET中赋值 复合赋值语句输入 输出通过 文本框控件 标签控件 InputBox函数 MsgBox函数Write方法 8 4 1 2赋值语句 例如 x 0 1 x为单精度变量 获得值0 1TextBox1 Text 清除文本框的内容TextBox1 Text 欢迎使用VB NET 本章目录 形式 变量名 表达式对象名 属性名 表达式 作用 计算表达式的值 再将此值赋给变量或对象属性 9 赋值语句注意点 符号有两个意义赋值号 关系运算符等号形式相同 系统会根据所处的位置判断符号意义 赋值号左边只能是变量 不能是常量 常数符号 表达式 下面均为错误的赋值语句 Now x y 左边是表达式 函数 5 sqrt s x y 左边是常量x y z 左边是表达式 本章目录 Ifx 3Theny x 10 复合赋值语句 复合赋值运算符 实现过程 首先计算右边表达式的值 然后与左边的变量进行相应的运算 最后赋值给变量 本章目录 例如 a b 4等价于a a b 4 形式 变量名复合赋值运算符表达式复合赋值运算符 作用 简化程序代码 提高程序编译的效果 11 常用复合赋值语句 累加sum x等价于sum sum x计数n 1等价于n n 1显示多行信息利用 来实现 本章目录 如下语句 TextBox1显示结果 TextBox1 Text VB NET vbCrLfTextBox1 Text TextBox1 Text 程序设计教程 TextBox1 Text VB NET vbCrLfTextBox1 Text 程序设计教程 12 形式 变量 InputBox 提示 标题 默认值 4 1 3数据输出和输入 本章目录 注意 提示项不能省略 若要多行提示 可在每行行末加回车换行vbCrLf 例4 2利用InputBox输入基本工资和营业额 按营业额的5 提成 计算实发工资并显示 作用 打开一个对话框 等待用户输入 返回字符串类型的输入值 1 InputBox函数 13 作用 打开信息框 等待用户选择一个按钮 MsgBox函数返回所选按钮的整型值 变量 MsgBox 提示 按钮 标题 MsgBox函数无返回值 独立的语句 MsgBox提示 按钮 标题 2 MsgBox函数 本章目录 按钮 决定信息框按钮的数目 名称等 返回结果 返回所按的按钮值此两项均为整型表达式或枚举值 枚举名分别为MsgBoxStyle MsgBoxResult MsgBox按钮设置 枚举名MsgBoxStyle MsgBox所选按钮返回值 枚举名MsgBoxResult 15 例4 3模拟ATM机输入账号和密码验证要求 账号6位数字 密码4位字符在账号输入按Tab键进行账号合法性检验击 检验密码 按钮对密码进行验证 本章目录 分析 数字字符函数 IsNiumeric字符长度属性 TextLength按Tab键合法性检验 LostFocus事件 16 3 Write WriteLine方法 形式 Debug WriteLine 表达式 Debug Write 表达式 本章目录 例将例4 1输出改为如下语句 Debug WriteLine 本月营业额为 x 基本工资为 jbgz Debug Write 本月实发工资为 sfgz 选择 调试 窗口 输出 显示 输出 窗口 作用 在调试程序时 输出 窗口输出变量信息 Write输出后不换行 17 顺序结构要点 掌握计算机按照语句出现的先后顺序执行掌握赋值语句 复合赋值语句 尤其 掌握InputBox输入数据掌握MsgBox对话框显示信息和按钮的作用了解输出Write WriteLine 完成实验二 顺序结构1 2 3 4 5 6题 18 4 2选择结构和选择控件 计算机要处理的问题往往是复杂多变的 仅采用顺序结构是不够的 必须利用选择结构等来解决实际应用中的各种问题 VB中选择结构 If语句Select情况语句 本章目录 例1 1移动到窗体边界判断If Label1 Top Me Height ThenLabel1 Top 0 单分支If语句双分支If Then Else语句多分支If Then ElseIf语句 19 4 2 1If条件语句 1 If Then语句 单分支结构 IfThen语句块EndIf或IfThen表达式 算术 关系 逻辑表达式 语句块 可以是一条或多条语句表达式值 按非零为True 零为False进行判断 本章目录 作用 当表达式值为True 执行Then后面的语句块否则不做任何操作 20 例 已知两个数x和y 比较它们的大小 使得x大于y Ifx yThent xx yy tEndIf或Ifx yThent x x y y t 本章目录 注意 简单If形式无EndIf时 只能是一句语句或语句间用冒号分隔 而且必须在一行上书写 x yy x能否实现两数交换 x yt xy t能否实现两数交换 21 双分支结构 2 If Then Else语句If表达式Then语句块1Else语句块2EndIf或If表达式Then语句1Else语句2 本章目录 作用 当表达式的值为True时 执行Then后面的语句块1 否则执行Else后面的语句块2 22 双分支结构例 计算分段函数 Ifx0Then双分支y sin x sqrt x x 1 Else结构实现y cos x x 3 3 xEndIf 本章目录 单分支y cos x x 3 3 x结构实现Ifx0Theny sin x sqrt x x 1 思考如下单分支结构能实现 Ifx0Theny sin x sqrt x x 1 y cos x x 3 3 x 23 多分支结构 3 If Then ElseIf语句形式 If表达式1Then语句块1ElseIf表达式2Then语句块2 Else语句块n 1 EndIf 作用 根据不同的表达式值确定执行哪个语句块 本章目录 说明 不管有几个分支 依次判断 当某条件满足 执行相应的语句 其余分支不再执行 若条件都不满足 且有Else子句 则执行该语句块 否则什么也不执行 ElseIf不能写成ElseIf 24 例4 6已知变量ch中存放了一个字符 判断该字符是字母字符 数字字符还是其他字符 多分支结构例 本章目录 IfUCase ch A AndUCase ch 0 Andch 9 Then 数字字符MsgBox ch 是数字字符 Else 除上述字符以外的字符MsgBox ch 是其他字符 EndIf 25 4 2 2SelectCase语句 SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2 CaseElse语句块n 1 EndSelect 表达式列表与变量或表达式的类型必须相同 是下面4种形式之一 表达式例 A 用逗号分隔的枚举值2 4 6 8表达式1To表达式260To100Is关系运算符表达式Is 60 本章目录 26 SelectCase语句例 例4 8将例4 6改用SelectCase语句实现 本章目录 SelectCasechCase a To z A To Z MsgBox ch 是字母字符 Case 0 To 9 MsgBox ch 是数字字符 CaseElseMsgBox ch 是其他字符 EndSelect SelectCase语句比If Then ElseIf语句直观 程序可读性强 但不是所有的多分支结构均可用SelectCase语句代替If Then ElseIf语句 27 SelectCase语句例 例4 9已知坐标点 x y 判断其落在哪个象限 代码一Ifx 0Andy 0ThenMsgBox 在第一象限 ElseIfx0ThenMsgBox 在第二象限 ElseIfx0Andy 0ThenMsgBox 在第四象限 EndIf 代码二SelectCasex yCasex 0Andy 0MsgBox 在第一象限 Casex0MsgBox 在第二象限 Casex0Andy 0MsgBox 在第四象限 EndSelect 代码二错误 1 SelectCase后不能出现多个变量 2 Case后不能出现变量及有关运算符 本章目录 小结 1 SelectCase语句虽然简洁 但使用有限制2 虽然If语句条件复杂时书写不直观 但是万能的 28 If语句的嵌套是指If或Else后面的语句块中又包含If语If表达式1ThenIf表达式2Then EndIf EndIf If语句的嵌套 例4 10已知x y z三个数 使得x y z用一个IF语句和一个嵌套的IF语句实现 本章目录 Ifx yThent x x y y tIfy zThent y y z z tIfx yThent x x y y tEndIfEndIf X y X与y交换 y z X y y与z交换 X与y交换 T T T F F F x y z x Y z最小 F 29 4 2 3条件函数 1 IIf函数IIf 表达式 表达式为真时的值 表达式为假时的值 IIf函数是If Then Else结构的简洁表示 本章目录 例如 将x y中大的数 放入Tmax变量中 Tmax IIf x y x y 该语句与如下语句等价 Ifx yThenTmax xElseTmax y 30 4 2 3条件函数 2 Choose函数Choose 整数表达式 选项列表 根据表达式的值i 返回选项列表中第i个选项 如果整数表达式的值越出选项范围时 返回Null例根据Nop的值 得到 中的某运算符 Op Choose Nop 本章目录 DimnopAsInteger opAsCharRandomize nop Int Rnd 4 1 op Choose nop MsgBox nop nop op op 例4 11根据当前日期 显示今日是星期几 t Choose Weekday Now 星期日 星期一 星期二 星期三 星期四 星期五 星期六 MsgBox 今天是 Now t 31 4 2 4选择控件与分组控件 1 单选按钮 单选按钮以组的形式出现 允许选择一项 例单选题测试 1 主要属性Text属性按钮上显示的文本Checked属性表示单选按钮的状态 True 被选定False 未被选定 本章目录 32 2 主要事件Click单击后使Checked属性为TrueCheckedChanged当某个单选按钮的状态被发生变化 该事件随之被触发 本章目录 33 一组选项 允许用户选择其中一个或多个例多选题测试 1 主要属性和事件与单选有相同的属性和事件 增加了 CheckState属性表示复选框状态Unchecked未选定Checked被选定Indeterminate部分选定 2 复选框 本章目录 34 3 分组 需要在同一个窗体中建立几组相互独立的单选或复选按钮 具有容器功能 先建立分组控件 然后将各控件放置其中 本章目录 特性 移动 复制 删除框架 对控件进行Enabled Visible属性设置 均作用于组内控件 主要属性 Text分组的标题 无则封闭框线 事件 一般不需要编写事件过程 35 例4 12通过单选按钮和分组控件设置文本框的Font属性 带来问题 分组上的六个单选按钮 编写6个事件过程 解决的方法 共享事件处理过程 36 例4 13对上例进行改变 再增加字型复选框 用一个事件过程实现 实现思想 对每个按钮要进行状态判断难点对字型设置 何为共享事件处理过程 即多个控件共享事件处理过程 形式 对象 事件 参数 Handles对象 事件 对象2 事件 Regular0Bold1Italic2Underline4Strikeout8 37 例4 14通过单选按钮和复选框选修课程 关键处理思路 只要有一个选择按钮触发 则 逐一检查选择按钮的状态 并更新文本框内容 38 选择结构和控件要点 掌握关系表达式 逻辑表达式的正确书写掌握If语句多种分支形式的正确书写与使用掌握SelectCase语句的正确书写与使用掌握单选按钮 复选框和分组控件的使用 完成实验三 选择结构必做 1 2 3 5 6 78 9 10 11题 39 4 3循环结构 引例 求 的近似值祖冲之用了15年算出 值到小数点后面7位 第一台计算机计算到2000多位1999年东京大学2061 5843亿 本章目录 例4 15验证祖冲之有效位7位的计算求 4 1 1 3 1 5 1 7 1 9 关键找规律写通项 计算机最擅长的功能之一 按规定的条件 重复执行某些操作 从而实现将一个复杂问题转换为简单问题的迭代过程 可以说离开循环结构计算机寸步难行 掌握好循环的结构的正确使用很重要VB中提供了主要的两类循环语句 Do语句 一般未知循环次数 for语句 一般已知循环次数 41 4 3 1Do Loop循环语句 形式1 Do While Until 条件表达式语句块Loop 形式2 Do语句块Loop While Until 条件表达式 本章目录 形式1为先判断后执行 有可能一次也不执行 形式2为先执行后判断 至少执行一次 42 Do Loop流程 本章目录 43 数学公式直接求得问题 1 求得的年数不为整数2 得不到实际人数利用循环求得循环通项 x x 1 008上述两个问题解决了 例4 18我国有13亿人口 按人口年增长0 8 计算 多少年后我国人口超过26亿 解此问题两种方法 本章目录 x 13n 0DoWhilex 26x x 1 008n n 1Loop DoWhile Loop例 44 例4 19用辗转相除法求两自然数的最大公约数 求最大公约数的算法思想 例m 14 n 6的最大公约数Ifm0 m nn rr mmodnLoopMsgBox 最大公约数 n 1 对于两数m n 使得m n 2 m除以n得余数r 3 若r 0 则 m n n r 再重复执行 2 否则n为最大公约数 结束 本章目录 辗转相减法思想 始终大数减小数直到两数相等m m nm nn n mn mm n为公约数m nDoWhilemnmnIfm nThen146m m n86Else26n n m24EndIf22Loop Do LoopWhile例 猜数游戏计算机随机产生一个0 100之间的整数 用户通过输入的方式来猜测此数 根据比较的结果屏幕上会给出 大了 或 小了 的提示 根据提示重新猜测 直到猜对提示 恭喜你 猜对了 分析 猜数程序实现不难 关键用户要提高猜中数的策略 思想为二分法查找 在100个数的范围内平均猜中次数为 n log2100 result Int Rnd 100 1 Doguess Val InputBox 输入猜测的数 Ifguess resultThenLabel1 Text guess toobig vbCrLfElseIfguessresult 46 分析 猜数实质就是二分法查找 思路是对一组有序的数据 设置查找区间的下界low 上界high 每次猜数取其中间项 mid low high 2 计算机每次猜的数应该取mid值 若Key mid 则后半部作为继续查找的区域 low mid 1 若Key mid 则前半部作为继续查找的区域 high mid 1 Key mid猜对 47 4 3 2For循环语句 形式 For循环变量 初值To终值 Step步长 语句块 循环体Next循环变量 本章目录 循环次数 循环变量必须为数值型 48 sum 0Fori 1To100Step2sum sum iNextiMsgBox sum sum 0i 1DoWhile i 100 sum sum ii i 2LoopMsgBox sum 4 16计算1 100的奇数和分别用For Do Loop语句实现循环 理解For语句执行过程 49 For循环变量 初值To终值 Step步长 语句块 循环体Next循环变量 循环流程 1 循环变量被赋初值 它仅被赋值一次 2 判断循环变量是否在终值内 如果否 结束循环 执行Next的下一语句 3 如果是 执行循环体 循环变量加步长 转 2 本章目录 50 例4 17将可打印的ASCII码制成表格输出 实现思路 1 确定循环的初值 终值 2 字符和码值关系 3 控制每项占用位数 空格数 4 控制每行输出个数 Space 8 Len asci asci 32 127 Chr asci i i 1IfiMod7 0Then换行 51 4 21判断输入的数是否为素数定义 素数就是除1和本身以外 没有其他因子 即不能被其他任何整数整除的数 算法 m依次用i 2 m 1去除 只要有一个数能整除m m就不是素数 否则m是素数 本章目录 m Val TextBox1 Text Fori 2Tom 1If mModi 0ThenExitForNextiIfm iThenLabel2 Text m 是素数 vbCrLf 是因子强制退出循环 循环是怎样退出的 52 思考 要求一定范围内 如100 200的素数 程序如何修改 本章目录 注意 Exit语句不符合一个入口一个出口设计的规定改进 增加逻辑型变量Tag 用以判断是否被整除过 Dimi mAsInteger TagAsBooleanm Val TextBox1 Text Tag TrueFori 2Tom 1If mModi 0ThenTag FalseNextiIfTagThenLabel2 Text m 是素数 vbCrLf 假定是素数 只要有一个能整除 就不是素数 循环正常结束 根据Tag判断m是否是素数 53 Dimi mAsInteger TagAsBooleanForm 100To200m Val TextBox1 Text Tag TrueFori 2Tom 1If mModi 0ThenTag FalseNextiIfTagThenLabel2 Text m 是素数 vbCrLfNextm 思考 Tag附初值位置改变 例4 22100 200的素数实现思想 求一个素数的过程成为外循环的循环体 要搞清楚 嵌套循环的内外循环体如何正确表达 哪些语句是外循环循环体 哪些是内循环循环体 循环的嵌套 在一个循环体内又包含了一个完整的循环结构 55 例4 20打印九九乘法表 本章目录 思考 打印上三角或下三角程序如何改动 分析 被乘数i为外循环控制变量 乘数j为内循环控制变量格式控制使得对齐显示 56 1 Continue语句形式 ContinueFor ContinueDo2 Exit语句VB中有多种形式的Exit语句 用于退出某种控制结构的执行 Exit的形式如下 ExitFor ExitDo 本章目录 用于循环结构 相当于循环的断路 主要用于循环结构 相当于本次循环的短路 4 3 3其他控制语句 57 Fori 20To1Step 1IfiMod6 0ThenContinueForLabel1 Text i Next Fori 20To1Step 1IfiMod6 0ThenExitForLabel1 Text i Next 运行结果 2019 运行结果 20191716151413111098754321 58 3 End语句 1 独立的End语句作用 结束一个程序的运行 2 与其他控制结构关键字配套的End语句作用 结束一个控制语句或过程或块 相当于语句括号 例如C语言中的 End语句的多种形式如下 EndIf EndSelect EndStructureEndWith EndFunction EndSub 本章目录 59 4 3 4滚动条 进度条和定时器 1 滚动条 ScrollBar 作用 数据输入工具 也可显示数据 滚动条有水平 H 和垂直 V 两种 本章目录 主要属性Value 缺省为0 Minimum 缺省为0 Maximum 缺省为100 SmallChange改变值 缺省为1 LargeChange改变值 缺省为10 60 主要事件 Scroll当拖动滑块时触发ValueChanged同上 还可改变Value属性时触发 本章目录 注意 任意一个颜色改变均为影响合成的颜色 因此用共享事件来简化编程 例4 24设计一个调色板应用程序 设计思想 三个滚动代表三种基本颜色的输入工具使用颜色函数Color FromArgb Red Green Blue 61 2 进度条 ProgressBar 作用 指示事务处理的进度主要属性 Maximum Minimum Value实现关键 确定Maximum值 如下载文件该值为文件的字节数 变化的Value值 使得进度条变化 如文件下载过程中 该值为当前已下载的字节数 例4 25设计带有进度条的倒计时程序 注意 为显示进度条变化 一般结合定时器实现 62 3 定时器 Timer 定时器以一定的时间间隔产生Tick事件属性Enabled为False时定时器不产生Tick事件Interval触发Tick事件的时间间隔 单位ms事件定时器控件只有一个Tick事件产生Tick事件条件 Enabled TrueInterval 0例4 26用一个定时器控制蝴蝶在窗体内的飞舞 本章目录 思考 如果飞的过程有三个状态又如何编程 63 掌握For循环语句的正确书写与使用掌握Do循环语句的正确书写与使用掌握滚动条 进度条和定时器的使用利用循环 解决实际问题的能力 完成实验四 循环结构必做 1 2 3 4 5 6 7 8 10 11题 循环结构要点 64 4 4综合应用 常用算法 近似公式 本章目录 代码说明 简化 已知 i 1 要求i 只要 i 1 i就可 这样就简化成只要通过一重循环求累加 就可 4 4 1计算部分级数和 例4 27求自然对数e的近似值 其误差小于0 00001 分析 本例涉及到程序设计中两个重要运算 连乘累加 n 1 ee 1 i 1Don n i 连乘 求阶乘ee ee 1 n 累加和i i 1LoopWhile 1 n 0 00001 为什么用ee而不用e 类似应用问题 计算Sin x 函数的近似值 x为弧度 公式为 当10 5时结束 同时内部函数Sin x 加以验证 65 分析 ti表示第i项 其中t1
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:-龚沛曾-VB.net程序设计教程(第3版)
链接地址:https://www.renrendoc.com/p-74277869.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!