面向对象程序设计(C#)第06章 数组与自定义类型.ppt_第1页
面向对象程序设计(C#)第06章 数组与自定义类型.ppt_第2页
面向对象程序设计(C#)第06章 数组与自定义类型.ppt_第3页
面向对象程序设计(C#)第06章 数组与自定义类型.ppt_第4页
面向对象程序设计(C#)第06章 数组与自定义类型.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

第6章数组与自定义类型 李晓勇lxyonghn1 数组 2 数组属于引用类型 数组变量中存放的是数组的引用 1 一维数组声明与访问一维数组声明格式 类修饰符 类型名称 数组名称 例如 int a float fs 数组变量是引用 需要实例化才能使用 实例化一维数组的格式 数组名称 new类型名称 无符号整形表达式 例如 int vals newint 20 float valfs newint 20 double valds valds newdouble 5 数组可以初始化动态初始化格式为 数组名称 new类型名称 无符号整形表达式 数值1 数值2 例如 int valis newint 5 3 5 7 float valfs valfs newfloat 3 3 2f 2 3f 8 9f 静态初始化格式为 类修饰符 类型名称 数组名称 数值1 数值2 例如 double valds 2 3 5 8 7 9 在C 中 数组名是一个引用变量 可以和另一个类型相同的数组名相互赋值 如下列代码所示 int grade newint 50 60 70 80 90 创建一维整型数组gradeint score grade 此时score与grade代表的是同一个数组 usingSystem namespaceSample01 classProgram staticvoidMain string args stringstrInput Console WriteLine 请输入十个整数 strInput Console ReadLine string strValues strInput Split int intValues newint strValues Length for inti 0 i strValues Length i intValues i int Parse strValues i 4 2 一维数组应用举例例 从键盘输入十个整数存放到数组中 然后按由小到大的顺序排序 最后在屏幕上输出 排序for inti 0 iintValues j 1 inttemp intValues j intValues j intValues j 1 intValues j 1 temp for inti 0 i intValues Length i Console Write 0 5 intValues i 练习 从键盘输入 个实数存放到数组中 然后按由大到小的顺序排序 在屏幕上输出 从键盘输入一个实数 如果该数在数组中存在则删除并输出删除后的结果 foreach访问数组元素语法格式 foreach 类型名称变量名in数组名称 循环体 例 输出数组中的所有元素值usingSystem namespaceSample01 classProgram staticvoidMain string args int valis newint 3 5 7 9 10 8 22 12 90 33 foreach intainvalis Console Write 0 8 a 二维数组声明与访问二维数组声明的语法格式如下 类修饰符 类型名称 数组名 数组的两个维之间用逗号隔开 也就是说一个逗号表示两个维 依次类推 如果有n个逗号 则表示n 1维 例如 int score 一个存放多名学生多门课程的成绩的二维数组string book 一个存放多层书架上的多本书籍名称的二维数组创建二维数组的语法格式如下 二维数组名 new数据类型 数组长度1 数组长度2 这里的数组长度1和数组长度2分别表示二维数组第一维和第二维的长度 它们必须是常量或常量表达式 或者是已经赋值的变量 例如 int score newint 5 3 string book newstring 5 10 二维数组初始化在声明二维数组的同时创建数组 并用指定的值初始化数组元素 为每行指定的值放在花括号 中 而所有行的值再放在外围的一个花括号 中 以下代码是创建一个二维数组score 来存放三个学生的四门课程的成绩 int score newint 3 4 93 78 83 90 92 73 63 82 53 83 93 60 内部三个大括号中的数据分别为三行的数组元素赋初值 3个内部大括号内的元素的个数必须相同 int score newint 3 4 93 78 90 92 73 63 82 53 83 93 60 下列代码是创建一个二维数组book 来保存两层书架上放置的书名 string book newstring 2 3 C语言程序设计 VB编程基础 Delphi编程基础 政治经济学 货币银行学 市场经济学 new运算符后可以不指定行和列的长度 但如果要指定长度 则必须与花括号 中用作初始化的数据的行数和列数保持一致 如下列代码所示 string book C语言程序设计 VB编程基础 Delphi编程基础 政治经济学 货币银行学 市场经济学 book数组表示的元素可以用表6 1来表示 例如 实现 乘法表 usingSystem namespaceSample02 classProgram staticvoidMain int x newint 9 9 for inti 0 i 9 i for intj 0 j 9 j x i j i 1 j 1 for inti 0 i 9 i for intj 0 j 9 j Console Write 0 5 d x i j Console WriteLine Console ReadLine 4 二维数组应用举例 练习6 2 求5 6矩阵中的最大值及其所在的位置 4 数组为参数由于数组为引用类型 当整个数组作为参数时 按引用传递 数组作为方法形参时的定义格式 public返回类型方法名称 元素类型 数组名称 方法体 调用时 方法名称 数组名 例如 定义一个方法把双精度一维数组中所有元素按由小到大的顺序排序 在主程序中接收数据和输出排序后的结果 usingSystem namespaceSample01 classProgram staticvoidOrder double vals 排序for inti 0 ivals j 1 doubletemp vals j vals j vals j 1 vals j 1 temp staticvoidMain string args stringstrInput Console WriteLine 请输入十个实数 strInput Console ReadLine string strValues strInput Split double vals newdouble strValues Length for inti 0 i strValues Length i vals i double Parse strValues i Order vals for inti 0 i vals Length i Console Write 0 5 vals i 5 params关键字在数组做方法形参定义时 加上params关键字修饰 使调用的时候 实参为数组名称 或者直接提供一组数据 例如 定义一个方法求双精度数组中所有元素的和 在程序中求已存在的5个双精度浮点数的和值 usingSystem namespaceSample01 classProgram staticdoubleSum paramsdouble vals doublesum 0 foreach doubledinvals sum d returnsum staticvoidMain string args doubledsum Sum 2 3 8 7 98 2 82 3 7 2 Console WriteLine sum 0 dsum 2 自定义数据类型 15 自定义数据类型主要指结构体和枚举类型 1 结构体结构体是一种构造数据类型用途 把不同类型的数据组合成一个整体 自定义数据类型结构体类型定义格式 struct 结构体类型名 public类型标识符成员名 public类型标识符成员名 例 structstudent publicintnum publicstringname publiccharsex publicintage publicfloatscore publicstringaddr 结构体可嵌套例 structdate publicintmonth publicintday publicintyear structstudent publicintnum publicstringname publicdatebirthday 结构体变量的使用变量定义格式 结构体类型名变量名1 变量名2 例如 studentstu1 stu2 结构体变量不能整体引用 只能引用变量成员 其规则是 结构体变量名 成员名例如 stu1 num 10 stu1 name 王华 stu1 birthday year 2010 结构体数组的使用student stu newstudent 5 Stu 1 name 李俊 例统计候选人选票 usingSystem namespaceSample01 structperson publicstringname publicintcount classProgram staticvoidMain string args person leader newperson 3 leader 0 name Li leader 1 name Zhang leader 2 name Wang inti j stringleader name for i 1 i 4 i leader name Console ReadLine for j 0 j 3 j if leader name Equals leader j name leader j count for i 0 i 3 i Console WriteLine 0 8 1 leader i name leader i count 练习6 4 建立10名学生的信息表 每个学生的数据包括学号 姓名和三门课的成绩 求出每个学生的总分和平均分 在屏幕上把学生信息 总分和平均分输出出来 2 枚举类型枚举类型 也称为枚举 为定义一组可以赋给变量的命名整数常量提供了一种有效的方法 枚举的声明格式 访问修辞符enum枚举名 基础类型 枚举成员 例如 假设定义一个变量 该变量的值表示一周中的一天 enumDays Sunday Monday Tuesday Wednesday Thursday Friday Saturday 枚举成员枚举成员是该枚举类型的命名常数 任意两个枚举成员不能具有相同的名称 示例 publicenumTimeofDay uint Morning Afternoon Morning Evening 默认情况下 枚举中每个元素的基础类型是int 第一个枚举数的值为0 后面每个枚举数的值依次递增1 例如 enumDays Sat Sun Mon Tue Wed Thu Fri 默认的值就是为enumDays 0 1 2 3 4 5 想指定默认的值为1开始 就必须enumDays Stat 1 Sun 2 例如 阅读下面程序usingSystem publicenumTimeofDay Morning Afternoon Evening classTest staticvoidWriteGreeting TimeofDaytimeofDay switch timeofDay caseTimeofDay Morning Console Write

温馨提示

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

评论

0/150

提交评论