欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第4章Visual C#NET案例教程(翁健红.ppt

    • 资源ID:70022805       资源大小:1.06MB        全文页数:56页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章Visual C#NET案例教程(翁健红.ppt

    第4章 数组 第第4 4章章 数组数组 4.1 任务描述 4.2 一维数组 4.3 二维数组 4.4 学生信息的数据存储与处理 4.5 习题 第4章 数组 在学生成绩管理系统中,我们要录入许多学生的信息,包括学号、姓名、语文成绩与英语成绩,如表4-1所示。如果所有这些数据,都分别用一个单独的变量来存储,那么,需要定义的变量非常多,不利于处理。我们可以利用C#语言提供的数组这种数据类型,来解决学生数据的存储问题。数组可以是一维数组,也可以是多维数组。存储二维表格的学生数据需要使用二维数组,下面先介绍一维数组的使用,在此基础上再介绍二维数组。4.1 4.1 任任 务务 描描 述述第4章 数组 表表4-1 成成 绩绩 信信 息息第4章 数组 4.2.1 一维数组的定义一维数组的定义定义一维数组的格式如下:数据类型 数组名;其中:数据类型可以是C#语言中的各种数据类型,包括数值类型和引用类型。方括号“”在这里表示是定义一个数组。4.2 4.2 一一 维维 数数 组组第4章 数组 例如:int arr;/定义了一个名为arr的整型数组double area;/定义了一个名为area的数组,该数组可用来存放多个double型数string arr2;/声明了一个字符串型的一维数组第4章 数组 4.2.2 初始化一维数组初始化一维数组定义数组后只有对其进行初始化(为数组分配内存空间)后才能使用。初始化数组有两种方法:静态初始化和动态初始化。1.静态初始化静态初始化如果数组中包含的元素不多,且初始元素值是已知的,则可以采用静态初始化方法。静态初始化数组时,必须与数组定义结合在一起,否则会出错。静态初始化格式如下:数据类型 数组名=元素1,元素2,元素n;第4章 数组 用这种方法对数组进行初始化,无需说明数组元素的个数,只需按顺序列出数组中全部元素即可,系统会自动计算并分配数组所需的内存空间。例如:int arry=1,2,3,4;string str=优,良,差;第4章 数组 2.动态初始化动态初始化动态初始化需用new关键字将数组实例化为一个对象,再为该数组对象分配内存空间 并为数组元素赋初值,动态初始化数组的格式如下。用两条语句实现:数据类型 数组名;/数组定义数组名=new 数据类型表达式;/动态初始化或用一条语句实现:数据类型数组名=new数据类型表达式;/将数组定义和动态初始化结合在一起第4章 数组 new运算符用来为数组对象在内存中分配一定的空间。数组占据的内存空间由数组的数据类型和表达式的数值共同决定。例如:/定义了一个名为arr的整型数组,只进行声明,需要时再实例化intarr;/进行实例化,为arrv数组在内存中分配410个字节的存储空间,元素值均为0arry=new int10;如果需要,也可以在初始化的同时为其赋其他初始值。程序代码如下:int arry=new int 1,2,3,4,5,6,7,8,9,10;第4章 数组 说明:(1)静态初始化数组必须与数组定义结合在一条语句中,否则程序会出错。(2)在数组初始化语句中,如大括号中已明确列出了数组中的元素值,即确定了数组元素的个数,则数组元素的个数(方括号中的数值)必须是常量,并且该数值必须与数组元素的个数一致。例如:int i=4;int x=new int41,2,3,4;/正确int y=new intil,2,3,4;/错误,i不是一个常量int z=new int3 1,2,3,4;/错误,数组元素个数与方括号中数值不一致第4章 数组 4.2.3 引用一维数组元素引用一维数组元素当定义完一个数组并对其初始化后,就可以引用数组中的元素了。可通过数组名和元素的下标来引用数组元素。一维数组的引用方式是:数组名下标;第4章 数组 数组的下标是元素的索引值,代表了要被访问的数组元素在内存中的相对位置,就是从数组的第1个元素到某个数组元素的偏移量。数组元素的索引是从0而不是1开始的,如数组arr的第1个元素是arr 0,第2个元素是arr 1,依次类推,第n个元素是arr n-l。在访问数组元素时,要注意不要使下标越界,例如:int A=new int5;A5=15;/错误,下标越界第4章 数组【例4-1】遍历输出数组中的元素。using System;class Program public static void Main(String args)int a=new int 3,8,9,23,4;for(int i=0;i a.Length;i+)/Length返回数组元素的个数 Console.WriteLine(ai);运行结果如图4-1所示。第4章 数组 图4-1 例4-1运行结果第4章 数组【例4-2】输入几位学生的成绩,输出最高成绩。using System;class Program static void Main(string args)int grades=new int5;for(int j=0;j 5;j+)gradesj=int.Parse(Console.ReadLine();int max=grades0;/max变量用于存放最大数 int i=0;第4章 数组 while(i grades.Length)if(max gradesi)/如果当前元素ai比max大 max=gradesi;/把当前元素ai的值赋给max i+;Console.WriteLine(最高分为:+max);Console.ReadLine();运行结果如图4-2所示。第4章 数组 图4-2 例4-2运行结果第4章 数组【例4-3】使用“冒泡”法进行排序(由小到大)。冒泡排序又称简单交换排序。其基本思想是对存放原始数据的数组,按从后往前的方向进行多次扫描,每次扫描称为一趟排序,当发现相邻两个数据的次序与排序要求不符时,将这两个数据交换。这样,较小的数据就会逐单元往前移动,好象气泡往上浮一样。第4章 数组 如图4-3所示。现有5个数,第1趟将9和7对调,然后将 9和4对调,得到38749的顺序,可以看出:最大的数9已“沉底”,成为最下面一个数;而小的数“上升”,如4向上“浮起”一个位置,所以这种排序方法叫“冒泡”法。经过一趟得到最大的数,然后进行第二趟比较,对余下的4个数再按上述方法进行比较,依次类推,直到最后得到一个有序的序列。“冒泡”的过程如下:第4章 数组 原顺序:3 8 9 7 4第1趟:3 8 7 4 9第2趟:3 7 4 8 9第3趟:3 4 7 8 9第4趟:3 4 7 8 9第4章 数组 算法代码如下:using System;class Program public static void Main(String args)int a=new int 3,8,9,7,4;int n=a.Length;Console.WriteLine(-排序排序前的数据-);for(int j=0;j n;j+)/显示排序前的数据 Console.Write(0t,aj);第4章 数组 Console.WriteLine(n-排序过程-);for(int i=1;i n;i+)/进行n-1趟排序 for(int j=0;j aj+1)/前大后小,交换 /交换元素 int temp;temp=aj;aj=aj+1;aj+1=temp;第4章 数组 for(int j=0;j n;j+)/显示排序后的结果 Console.Write(0t,aj);Console.WriteLine();Console.WriteLine(-排序后的结果-);for(int j=0;j n;j+)/显示排序后的结果 Console.Write(0t,aj);Console.Read();运行结果如图4-3所示。第4章 数组 图4-3 例4-3运行结果第4章 数组 4.2.4 使用foreach遍历数组foreach语句列举出一个集合(collection)中的所有元素,并执行关于集合中每个元素的嵌套语句。foreach语句的格式如下:foreach(变量类型 迭代变量 in 集合表达式)循环体语句块第4章 数组 语句中的“迭代变量”是一个循环变量,在循环中,该变量依次获取数组中各元素的值。因此,对于依次获取数组中各元素值的操作,使用这种循环语句就很方便。要注意,“迭代变量”的类型必须与数组的类型一致。foreach语句遍历数组虽然很方便,但其功能受一定的限制。例如,如果想为数组各元素依次有规律地赋值,foreach循环将无能为力。第4章 数组【例4-4】计算一维整型数组中奇数和偶数的个数。using System;class Program public static void Main(String args)int odd=0,even=0;int array=new int 0,4,7,8,9,10,14,17,19,24,56;foreach(int i in array)if(i%2=0)even+;第4章 数组 else odd+;Console.WriteLine(0个奇数,1个偶数,odd,even);运行结果如图4-4所示。第4章 数组 图4-4 例4-4运行结果第4章 数组 4.3.1 二维数组的定义二维数组的定义二维数组的定义格式为:数据类型,数组名;其中:“数据类型”为数组中元素的数据类型,可以是C#语言中的各种数据类型。“数组名”的命名规则同变量的命名规则相同。数组的每一维都用逗号隔开。4.3 4.3 二二 维维 数数 组组第4章 数组 例如:int,a;/定义了名为a的整型二维数组string,str;/定义了名为str的字符串型二维数组 float,arr2;/声明一个浮点型的二维数组string,arr3;/声明一个字符串型的二维数组与一维数组一样,以上定义的二维数组并不为数组元素分配内存空间。第4章 数组 4.3.2 初始化二维数组初始化二维数组1.静态初始化静态初始化二维数组静态初始化格式与一维数组一样。静态二维数组的格式为:数据类型,数组名=元素0,0,元素0,1,元素0,n-1元素1,0,元素1,1,元素1,n-1,元素n-1,0,元素n-1,1,元素n-1,n-1;第4章 数组 静态初始化数组时可以不指出数组的行数和列数,在最外一层“”内,每一个“”对应一行数组元素,所以最外层“”内的“”个数决定了行数,而每一行的数据个数决定了多维数组的列数。例如:/定义一个3行2列的整型二维数组并对其静态初始化int,a=1,3,7,4,10,21;/定义一个2行2列的字符串二维数组并对其静态初始化string,arr2=甲,乙,冠军,亚军 ;静态初始化二维数组时,也必须与数组定义结合在一条语句中,否则会出错。第4章 数组 2.动态初始化动态初始化动态初始化数组也需要使用new关键字为数组元素分配内存空间,并为数组元素赋初值。动态初始化格式如下:数组名=new数据类型数组长度1,数组长度2;其中“数组长度1”和“数组长度2”可以是整型的常量或变量,分别表示数组的第一维和第二维的长度。new关键字仍然是以默认值0来初始化数组元素的。在程序设计中,通常也将数组定义与动态初始化合并在一条语句中,格式为:数据类型,数组名=new数据类型数组长度1,数组长度2;第4章 数组 例如:int,a=new int2,3;/定义了一个2行3列的二维数组在动态初始化二维数组时,也可直接为其赋不同的初始值。例如:int,a=new int,1,2,3,3,2,5 ;int,arr1=new int2,4 1,2,3,4,5,6,7,8 ;string,arr2=new string2,2 某甲,某乙,冠军,亚军 ;第4章 数组 4.3.3 引用二维数组元素引用二维数组元素与一维数组类似,二维数组也是通过数组名和下标值来访问数组元素的。唯一与一维数组不同的是,二维数组需由两个下标来标识一个数组元素,二维数组的引用形式为:数组名下标1,下标2其中:“下标1”表示元素所在的行,“下标2”表示元素所在的列,两个下标都应是整数或整数类型的变量、表达式。二维数组的下标也是从0开始算起的。例如:a2,3表示是a数组的第3行、第4个元素。第4章 数组 通常,ai,j表示是数组的第i+1行、j+l列元素(因为下标从0算起)。数组的下标使用范围不要超过数组定义的相应维长度,否则程序编译会出现异常,所以在编程时一定要严格区分多维数组每一维的长度和相应每一维最后一个元素的下标之间的关系,系统默认它们的关系是:某一维的最后一个元素的下标为这一维的长度减1。根据二维数组的特点,访问二维数组中的元素需要通过二重循环。第4章 数组【例4-5】求一个33矩阵的对角线元素之和。using System;class Program public static void Main(String args)int,A=1,2,3,4,5,6,7,8,9 ;int sum=0;/输出数组所有元素 for(int i=0;i 3;i+)for(int j=0;j 3;j+)第4章 数组 Console.Write(0t,Ai,j);Console.WriteLine();/求对角线元素之和 for(int i=0;i 3;i+)sum=sum+Ai,i;Console.WriteLine(对角线和为0,sum);Console.ReadLine();运行结果如图4-5所示。第4章 数组 图4-5 例4-5运行结果第4章 数组【例4-6】用二维数组存放表4-1的学生成绩信息并输出。采用二维数组来存储学生信息,其中第一维表示学生的个数,因此第一维的长度为3;第二维的长度与每个学生的信息数相对应,这里为学号、姓名、语文成绩与英语成绩,因此第二维的长度为4。第4章 数组 using System;class Program static void Main(string args)string,student=new string3,4 1,李明,77,78,2,刘勇,82,89,3,张三,80,88 ;Console.WriteLine(学号t姓名t语文t英语);for(int i=0;i=COUNT)break;第4章 数组 Console.Write(是否继续输入?(y/n);while(char.Parse(Console.ReadLine()=y);break;case 2:Console.WriteLine(显示学生成绩:);Console.WriteLine(学号t姓名t语文t英语);for(int i=0;i pos;i+)Console.WriteLine(0t1t2t3,studenti,0,studenti,1,studenti,2,studenti,3);第4章 数组 break;case 3:bool find=false;Console.WriteLine(请输入姓名:);string name=Console.ReadLine();for(int i=0;i pos;i+)if(name=studenti,1)Console.WriteLine(学号t姓名t语文t英语);Console.WriteLine(0t1t2t3,studenti,0,studenti,1,studenti,2,studenti,3);第4章 数组 find=true;break;if(!find)Console.WriteLine(没找到名为+name+的学生信息);break;case 4:return;while(true);第4章 数组 代码说明:语句const int COUNT=100;中,const用于声明常量,常量声明的格式如下:访问修饰符 Const 数据类型 常量名 =常量表达式;常量代表的是一个不变的值,所以符号常量不能出现在赋值号的左边。为使常量易于识别,通常将常量名全部大写。使用符号常量能够极大地提高代码的可读性和可维护性,比如,当要修改某个在程序中多次出现的特定值时,不需要对该值出现的每一个地方逐个进行修改。第4章 数组 1.从键盘上输入10个实型数并存入数组,然后按输入顺序的逆序输出这10个数。2.有一个已经排好序的数组1,4,6,9,13,16,19,28,40,100。输入一个数,要求按原来的规律将其插入数组中。3.编写程序,接受一个数组的大小和各元素值,输出其中最大和最小的值。4.使用数组保存“九九乘法表”,然后输出。5.用数组来处理求斐波那契数列:1,1,2,3,5,8,的前20个数。数学表示:f(0)=f(1)=1,f(n)=f(n2)+f(n1)6.上机调试本章例子。4.5 4.5 习习 题题

    注意事项

    本文(第4章Visual C#NET案例教程(翁健红.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开