复习-第5章-数组及结构类型例题部分隐藏.ppt_第1页
复习-第5章-数组及结构类型例题部分隐藏.ppt_第2页
复习-第5章-数组及结构类型例题部分隐藏.ppt_第3页
复习-第5章-数组及结构类型例题部分隐藏.ppt_第4页
复习-第5章-数组及结构类型例题部分隐藏.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 大学程序设计技能训练VB NET之数组及结构类型 教师 柳强 2 第五章数组 5 1数组的概念5 2数组声明及初始化5 3重定义数组大小5 4数组的基本操作和排序5 5结构类型及其数组5 6综合应用 本章目录 3 数组 不是一种数据类型 而是一组相同类型的变量的集合 作用 用一个数组名代表逻辑上相关的一批数据 用下标表示该数组中的各个元素 和循环语句结合使用 使得程序书写简洁 使用 必须先声明后使用 本章目录 数组的概念 4 5 2数组声明及初始化 一维数组Dim数组名 下标上界 As类型 下标上界为常数 已有值的表达式或变量 下标下界为0 一维数组的大小为 下标上界 1 例Dima 10 AsInteger Dimst 5 AsString声明了一维整型数组a 有11个元素 下标的范围0 10 若在程序中使用a 11 则系统会显示 索引超出了数组界限 st是一维字符串类型数组 有6个元素 下标的范围0 5 本章目录 5 多维数组声明 Dim数组名 下标1 下标2 As类型 下标数决定了数组的维数 每一维的大小 上界 1 数组的大小为每一维大小的乘积 例Dimx 2 4 AsLong声明了一个长整型的二维数组x 共占据3 5个长整型变量的空间 本章目录 6 数组的初始化 VB NET提供了对数组的初始化功能 也就是在定义数组的同时 为数组元素赋初值 形式 Dim数组 As类型 常数1 常数n 一维Dim数组 As类型 行1常数 行m常数 例Dimx AsInteger 1 2 3 4 5 6 7 8 数组x 本章目录 7 5 3重定义数组大小 对已经存在的数组可用ReDim语句改变数组大小ReDim数组名 下标 下标2 例DimsArray 2 3 AsSingleSubForm1 Load ReDimsArray 4 8 EndSub在过程外声明了二维数组sArray 在Form1 Load事件中重新指明二维数组的大小为5行9列 本章目录 8 重定义数组大小注意 Dim是说明语句 可出现在程序的任何地方 而ReDim是执行语句 只能出现在过程中在过程中可多次使用ReDim语句来改变数组的大小 但不能改变维数和类型可在ReDim后加Preserve参数用来保留数组中的数据 若使用Preserve参数后 只能改变最后一维的大小 例5 2对例5 1改进 根据指定人数输入学生的成绩 计算的平均分和高于平均分的人数 本章目录 9 5 4数组的基本操作和排序 5 4 1数组的输入通过TextBox控件或InputBox函数逐一输入例Dimsb 3 4 ASIntegerFori 0To3Forj 0To4sb I j InputBox 输入 i j 元素 NextjNexti 本章目录 10 5 4 2数组的输出 例5 3形成5 5的方阵 分别输出方阵中各元素和下三角元素方阵规律 第一行的元素为0 4 以后每一行是前一行对应元素增加5上三角规律 每一行的起始列与行号相同 只要控制内循环的初值用Space 4 Len Trim sc i j 控制输出的空格 本章目录 代码说明 11 5 4 3求数组和 最值 位置 例5 4求一维数组中各元素之和 最小数组元素 并将最小值数组元素与数组中第一个元素交换求元素和通过循环将每个元素进行累加求数组中最小元素假设第一个元素为最小 然后将该数与其他元素逐一比较 若发现小于最小值 就用新值替换最小值 同时记录下标值 求最大值的方法与求最小值相似 本章目录 12 交换元素 本章目录 13 数组的复习 写出VB表达式 定义数组x 用于存放26个大写字母 定义数组y 用于存放5个学生的成绩 并初始化 14 5 4 4数组排序 排序是将一组数按递增或递减的次序排列 例如按学生的成绩 球赛积分等排序 排序的算法有许多 常用的有选择法 冒泡法 插入法 合并排序等 选择法排序基本思想 每次在若干个无序数中找最小 大 数 并放在相应的位置 本章目录 15 5 4 4数组排序 n个数的序列 用选择法按递增次序排序的步骤 1 从n个数中找出最小数的下标 出了内循环 最小数与第1个数交换位置 通过这一轮排序 第1个数已确定好 2 除已排序的数外 其余数再按步骤1 的方法选出最小的数 与未排序数中的第1个数交换位置 3 重复步骤2 最后构成递增序列 选择法演示 本章目录 16 选择法排序 例5 5对已知存放在数组中的6个数 用选择法按递增顺序排序 选择法排序过程示意 本章目录 代码说明 17 选择法排序 DimiA AsInteger 8 6 9 3 2 7 SubForm1 Click HandlesMyBase ClickDimiMin n i j t n UBound iA 获得数组的下标上界Fori 0Ton 1 进行n 1轮比较iMin i 对第i轮比较 初始假定第i个元素最小Forj i 1Ton 选最小元素的下标IfiA j iA iMin TheniMin jNextjt iA i 选出的最小元素与第i个元素交换iA i iA iMin iA iMin tNextiEndSub 18 冒泡法排序 基本思想是 1 从第一个元素开始 对数组中两两相邻的元素比较 将值较小的元素放在前面 值较大的元素放在后面 一轮比较比较完毕 一个最大的数沉底成为数组中的最后一个元素 一些较小的数如同气泡一样上浮一个位置 2 n个数 经过n 1轮比较后完成排序 冒泡法演示 本章目录 19 冒泡法排序 例5 6用冒泡排序法实现例5 5的问题 本章目录 代码说明 20 冒泡法排序 SubForm1 Click HandlesMyBase ClickDimiA AsInteger 8 6 9 3 2 7 Dimtim j t n UBound iA Fortime 1Ton n 1个数 进行n趟比较Forj 0Ton time 在每一趟比较对n time个元素中两两相邻比较 大数沉底IfiA j iA j 1 Thent iA j iA j iA j 1 iA j 1 tEndIfNextjNexttimeEndSub 21 5 4 5插入数据 插入数据基本思想是 1 首先查找待插入数据在数组中的位置k 2 然后从最后一个元素开始往前直到下标为k的元素依次往后移动一个位置 3 第k个元素的位置腾出 将数据插入 本章目录 数据插入演示 22 例5 7在有序数组a中插入数值x 代码说明 23 程序如下 SubButton1 Click HandlesButton1 ClickDima 1 4 7 9 12 23 56 Dimi k x n n UBound a 获得数组的上界x 14Fork 0Ton 查找插入数x在数组中的位置Ifx a k ThenExitFor 找到插入的位置下标为kNextkReDimPreservea n 1 数组增加一个元素Fori nTokStep 1 从最后元素开始往后移a i 1 a i Nextia k x 数插入在对应的位置TextBox1 Text Fori 0Ton 1 显示插入后的各数组元素TextBox1 Text a i NextiEndSub 24 5 4 6删除数据 删除操作首先也是要找到欲删除的元素的位置k 然后从k 1到n个位置开始向前移动 最后将数组元素减1 本章目录 数据删除演示 例5 8要将值为13的元素删除 25 SubButton1 Click HandlesButton1 ClickDima 1 4 7 9 12 14 23 56 Dimi k x n n UBound a 获得数组的上界x 14Fork 0Ton 查找欲删除的元素位置Ifx a k ThenExitForNextkIfk nThenMsgBox 找不到此数据 ExitSubFori k 1Ton 将x后的元素左移a i 1 a i Nextin n 1ReDimPreservea n 数组元素减少一个TextBox1 Text Fori 0Ton 显示插入后的各数组元素TextBox1 Text a i NextiEndSub 26 5 5结构类型及其数组 数组存放性质相同的数据集合 若不同类型信息作为一个整体来描述 例如姓名 性别 出生年月等 通过 Structure 结构类型来解决 1 结构类型定义 Structure结构类型名成员名声明EndStructure 本章目录 27 结构类型 例如 定义一个有关学生信息的结构类型 StructurestudType studType为类型名DimNameAsString 姓名DimSexAsChar 性别DimTelephoneAsLong 电话DimSchoolAsString 学校EndStructure结构类型不能在过程内部定义 必须显式声明结构的每一数据成员 用Dim语句声明的成员默认为Public 否则可用Private声明 本章目录 28 2 结构变量的声明 定义了结构类型 就可在变量的声明时使用 Dim变量名As结构类型名例如 如下语句 DimStudent MyStudAsStudType声明Student MyStud为两个同种类型的变量 本章目录 29 2 结构变量的声明 注意 不要混淆StudType和Student 前者如同Integer等的类型名 后者根据该类型分配所需的内存空间 存储各成员数据 2 类型变量和数组相同之处它们都是由若干个成员 元素 组成 不同之处 前者的成员代表不同性质 不同类型的数据 以各个不同的成员名表示 而数组一般存放的是同种性质 同种类型的数据 以下标表示不同的元素 本章目录 30 结构变量成员的引用 引用结构类型变量中的某个成员 形式如下 结构类型变量名 成员名例如 Student NameStudent变量中的姓名Student Sex性别可利用With语句简化成员引用 With结构变量对象名语句块EndWith Withstudent Name 张华 Sex 男 School 同济大学 EndWith 本章目录 31 4 结构数组及应用 例5 9利用结构类型 声明一个结构数组 输入不超过100个个学生的信息 显示全部信息和查询某学校的学生情况 分析 自定义一个记录类型 由姓名 组成 声明一个存放最多100个记录的数组 在标准模块自定义类型如下 本章目录 代码说明 32 在窗体模块的声明的结构数组和n变量如下 Dimstud 99 AsstudTypeDimn 存放当前已输人的学生人数输入学生的各项信息SubButton1 Click HandlesButton1 ClickIfn 100Then 最多可接受100个人数MsgBox 输入人数超过数组声明的个数 ElseWithstud n Name Trim TextBox1 Text Sex CChar TextBox2 Text Telephone CLng TextBox3 Text School TextBox4 TextEndWithTextBox1 Text TextBox2 Text TextBox3 Text TextBox4 Text n n 1EndIfEndSub 33 显示已输入学生的各项信息SubButton2 Click HandlesButton2 ClickDimi Label5 Text 姓名性别电话学校 vbCrLfLabel5 Text vbCrLfFori 1TonWithstud i Label5 Text Name Sex Telephone School vbCrLfEndWithNextiEndSub 34 查询某学校的学生SubButton3 Click HandlesButton3 ClickDimTSchoolAsString i TSchool InputBox 请输入欲查询的学生 Label6 Text 姓名学校 vbCrLfFori 1TonIfstud i School TSchoolThenLabel6 Text stud i Name stud i School vbCrLfEndIfNextiEndSub 35 5 6综合应用 分类统计 1 分类统计将一批数据按条件统计每一类中包含的个数 例如 统计学生成绩优 良 中 及格 不及格人数 这类问题要掌握分类条件表达式的书写和使用计数变量保存相应的计数 本章目录 36 综合应用 分类统计 例5 10输入一串字符 统计各字母出现的次数统计26个字母出现的个数 必须声明一个具有26个元素的数组A 25 每个元素的下标表示对应的字母 元素的值表示对应字母出现的次数 从输入的字符串中逐一取出字符C 转换成大写字符 不区分大小写 再求得其在数组中的下标 关键表达式 j Asc UCase c 65A j A j 1 本章目录 37 综合应用 数据输入 2 大量数据的输入和编辑在财务 工程计算中 经常需要对大量的数据进行输入和编辑 可利用文本框通过编程来实现 例5 11输入一系列的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论