C#程序设计项目化教程-电子教案-郑广成 ch04

上传人:E**** 文档编号:89386343 上传时间:2019-05-24 格式:PPT 页数:22 大小:1.01MB
返回 下载 相关 举报
C#程序设计项目化教程-电子教案-郑广成 ch04_第1页
第1页 / 共22页
C#程序设计项目化教程-电子教案-郑广成 ch04_第2页
第2页 / 共22页
C#程序设计项目化教程-电子教案-郑广成 ch04_第3页
第3页 / 共22页
C#程序设计项目化教程-电子教案-郑广成 ch04_第4页
第4页 / 共22页
C#程序设计项目化教程-电子教案-郑广成 ch04_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《C#程序设计项目化教程-电子教案-郑广成 ch04》由会员分享,可在线阅读,更多相关《C#程序设计项目化教程-电子教案-郑广成 ch04(22页珍藏版)》请在金锄头文库上搜索。

1、C#程序设计 单元4使用方法、数组与String类,主讲教师:C#课程组 授课专业:软件技术,单元4使用方法、数组与String类,本,章,要,点,方法的定义及使用 方法中参数的传递 数组的定义及使用 冒泡排序法 String类,技,能,目,标,会定义和使用方法 能实现方法中参数的不同传递形式 会使用一维数组 能使用二重循环实现冒泡排序 会使用string类,单元4使用方法、数组与String类,单元4使用方法、数组与String类,4.2 技术与知识准备 4.2.1方法 在C语言中,我们自己写过方法,那么使用方法有什么好处呢?方法是类的一种行为,方法会使我们的代码容易修改、方便阅读、实现封装

2、和重用。比如我们以前用过好多.NET定义好的类的方法,例如:Console.ReadLine(),ReadLine()就是系统定义好的方法。除了使用.NET提供的类的方法,我们也可以自己来定义方法。,单元4使用方法、数组与String类,4.2.1.1 定义方法,方法定义: 访问修饰符 方法名() ; 说明: 1什么是访问修饰符呢?就是可访问的级别,public是公共的,private是私有的。在程序中,如果将方法声明为public,就表示可以在其他类中使用,如果声明为private,那么就只能在该类中使用。 2返回类型是必选项,它指定了方法返回值的数据类型,可以指定为任何的数据类型,如int

3、、double等。如果方法没有返回值,那么必须使用void关键字来指定。 3方法名为方法的名称,它的取名遵循C#的合法标识符规则,并且方法的命名应当采用Pascal风格,就是组成方法名的单词直接相连,每个单词的首字母大写,例如ReadLine()。 4参数列表是可选的,在调用方法时,它用来给方法传递信息。声明方法时,如果有参数,则必须写在方法名后面的小括号中,并且必须指定它的类型和名称;若有多个参数,需要用逗号(,)隔开,例如:”int n1,int n2”,声明方法时的参数,称为形式参数,简称形参。 5语句组即方法体,是调用方法时执行的代码块。它是可选项,但一般都会有方法体。 6return

4、为可选项,用于给方法返回一个指定数据类型的值。,单元4使用方法、数组与String类,4.2.1.2 向方法中传递参数,1值传递 我们要定义一个方法来计算累加,方法的名字取名为Fact,我们将n的值作为方法的参数传入,将计算结果作为方法的返回值,修改代码如下。 static void Main(string args) Console.WriteLine(“input number:“); int t; t = int.Parse(Console.ReadLine(); Console.WriteLine(“sum=“+Fact(t); private static long Fact(int

5、 n) long sum = 0; for (int i = 1; i = n; i+) sum = sum + i;图4.2 运行结果 return sum; ,单元4使用方法、数组与String类,2按引用传递参数 除了上面的值传递参数外,我们还可以按引用传递参数,这样可以在方法调用之后,仍然保留对参数值的修改。按引用传递参数,需要ref关键字修饰参数,代码如下。 class Program static void Main(string args) Console.Write(“input n=“); int n = int.Parse(Console.ReadLine(); Add(r

6、ef n); Console.WriteLine(“n=“+n); private static void Add(ref int n) n=n+10; ,单元4使用方法、数组与String类,1声明 语法 数据类型 数组名; 例如: int a; 2指定数组大小 要使用new关键字指定大小 例如: int a; a=new int5; 可合并两步为: int a=new int5; 3初始化 方法一: int a=new int51,2,3,4,5; 方法二: int a=new int 1,2,3,4,5; 方法三: int a=1,2,3,4,5;,4.2.3 数组,单元4使用方法、数组

7、与String类,一般形式: foreach( in ) 循环体 说明: 1是与数组的元素相匹配的数据类型。 2是一个普通的变量,一般用来表示数组中的元素 例如: int a=new int51,2,3,4,5; int f=1; foreach(int i in a) f=f*i; 上述代码执行后,f的值为数组中所有元素的积,即120。,4.2.4 foreach语句,单元4使用方法、数组与String类,字符串是我们在程序当中非常常用的一种类型,在C#中有一个String类,它位于System命名空间中,属于.NET Framework类库,而我们以前一直在用的string只不过是Stri

8、ng类在C#中的一个别名。现在就让我们一起来认识一下强大的String类。 我们常常使用格式字符串和参数列表的形式输出数据,如: string address=”江苏苏州”; Console.WriteLine(“我的籍贯是0”,address); 其中的” 我的籍贯是0”叫做格式字符串,格式字符串后面的部分叫做格式列表,格式字符串中的x叫做占位符。其实,String类提供了一个很强大的Format()方法来格式化字符串。Format()方法允许把字符串、数字或布尔类型的变量插入到格式字符串中,它的语法如下: string str=string.Format(“格式字符串”,参数列表); 例如

9、: string str= string.Format(“0+1=2”,2,3,2+3); 其中,“0+1=2”就是一个格式字符串,0、1、2分别对应于后面的2、3、2+3,占位符中的数字0、1、2分别对应于参数列表中的第1、2、3个参数,这条语句的运行结果为:2+3=5。,4.2.5 C#中的String类,单元4使用方法、数组与String类,排序采用的是冒泡排序法。假定有一组数据:8,3,5,1,9,6,它们第一轮冒泡排序的过程如图4.5所示,你能看出排序的规律吗?,4.2.6 冒泡排序,如图4.5所示,你能看出排序的规律吗?最大值到最后。冒泡排序就是从第一个元素开始,用它和它紧挨着的后

10、一个元素比较,如果后面的元素小于前面的元素,就交换它们,否则保持原样,然后转移到后一个位置,重复以上过程,最后,最大的元素已经定位,即最后位置。,单元4使用方法、数组与String类,第二轮比较如图4.6所示。,4.2.6 冒泡排序,第二轮下来,大家发现什么规律了吗?次大值到最后第二的位置,并且第二轮的比较次数比上一轮减少了一次。依次类推,最终完成排序任务。,单元4使用方法、数组与String类,通过对以上小节内容的学习,我们了解了方法的定义、值传递、引用传递以及数组的定义使用等,现在是时候回到我们4.1节工作场景的任务中来了。 分析:分别定义数组的输入、输出、排序、求平均值、求最大值最小值五

11、个方法。其中前三个方法无返回值,第四个方法返回值为平均值,第五个方法有两个返回值,但只能运用一个return语句,所以用return语句返回最大值,最小值采用引用传递。,4.3 回到工作场景,1输入方法代码如下。 private static void InputSZ(int a1) for (int i = 0; i a1.Length;i+ ) int x = int.Parse(Console.ReadLine(); a1i = x; 说明:a1.Length求出数组a1的长度,即数组的元素个数。,单元4使用方法、数组与String类,4.3 回到工作场景,2输出方法代码如下。 priv

12、ate static void OutputSZ(int a) for (int i = 0; i a2j+1) temp = a2j; a2j = a2j+1; a2j+1 = temp; ,单元4使用方法、数组与String类,4.3 回到工作场景,4求平均值方法代码如下。 private static double Avg(int a) int sum = 0; foreach(int i in a) sum = sum + i; double average = (1.0*sum )/ a.Length; return average; 说明:求平均值用总成绩除以数组的长度,为什么要乘

13、以1.0呢?因为在C#中,整数除以整数,结果为整数,例如:100/21=4,与实际结果4.76相差甚远,1.0*sum结果是实数,实数/整数,结果也为实数。,单元4使用方法、数组与String类,4.3 回到工作场景,5求最大值最小值方法如下。 private static int MaxMin(int a,ref int min) int max = 0; for (int i = 0; i ai) min = ai; return max; 说明:因为要返回两个值(最大值和最小值),而只能运用一个return,因此最大值是通过return语句返回到主函数中,而最小值是通过引用传递将值传递到

14、主函数中。,单元4使用方法、数组与String类,4.3 回到工作场景,6主体函数 static void Main(string args) int a=new int10; Console.WriteLine(“please input 10 numbers:“); InputSZ(a); Console.WriteLine(“oriented:“); OutputSZ(a); Sort(a); Console.WriteLine(“after sorted:“); OutputSZ(a); int min=a0; int max = MaxMin(a, ref min); double

15、avg = Avg(a); Console.WriteLine(“max=0,min=1,avg=2“,max,min,avg); 说明:引用传递的话,形参和实参前一定都要加上ref关键字,否则编译出错。,单元4使用方法、数组与String类,4.4工作训练营,4.4.1项目训练 1、训练内容 小陈去一软件公司面试,主管要求小陈设计一个“数据排序”的程序项目,使用组数实现数据从大到小排序,例如:一组数据:5 2 9 7 6,输出后是9 7 6 5 2 2、训练目的 掌握数组的初始化及冒泡排序法。 3、训练过程 仔细理清题目要求,选择合适的初始化方法,设计出程序的答题步骤和具体的代码处理过程,最后编写出完整的C#语言源程序。 分析:根据题目要求理清处理步骤,单元4使用方法、数组与String类,【步骤1】数组的初始化 【步骤2】冒泡排序法:定义方法Sort,无返回值 【步骤3】数组的输出:定义方法OutPutSZ,无返回值,单元4使用方法、数组与String类,【关键代码】 static void Main(string args) int a = new int5 5,2,9,7,6 ; Console.WriteLine(“yuan shuzu wei:“); OutPutSZ(a); Sort(a); Console.WriteLine(“paixuhou s

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号