《C#程序设计及基于工作过程的项目开发》课件第2章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《C#程序设计及基于工作过程的项目开发》课件第2章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C#程序设计及基于工作过程的项目开发 C# 程序设计 基于 工作 过程 项目 开发 课件
- 资源描述:
-
1、学习情境二 面向对象编程2.1 任务一:学会使用已有资源任务一:学会使用已有资源 2.2 任务二:学生类的初步设计任务二:学生类的初步设计 2.3 任务三:学生类的进阶设计任务三:学生类的进阶设计 2.4 举一反三举一反三 2.1 任务一:学会使用已有资源任务一:学会使用已有资源2.1.1 功能描述功能描述本任务通过一个控制台应用程序,演示了C#.NET框架类中的几个常用的类,包括System.String、System.StringBuilder、System.Math和System.Random类。2.1.2 代码展示代码展示1 using System;2 using System.Te
2、xt;3 namespace useClassPro4 5 class Program6 7 static void Main(string args)8 9 StringBuilder former=new StringBuilder(原始字符串为:);10 StringBuilder total;11 string mutation1,mutation2,mutation3;12 int a,b,c;13 double discriminant,root1,root2,test;14 Console.WriteLine(原始字符串为:+former+);15 Console.WriteLi
3、ne(字符串长度为:+former.Length);16 total=former.Append(ax2+bx+c);17 mutation1=total.ToString().ToUpper();18 mutation2=mutation1.Replace(X,y);19 mutation3=mutation2.Substring(21,9);20 Console.WriteLine(连接后的字符串为:+total);21 Console.WriteLine(mutation1-调用大写函数后:+mutation1);22 Console.WriteLine(mutation2-调用替代函数
4、将X替代为y后:+mutation2);23 Console.WriteLine(mutation3-mutation2的子串:+mutation3);24 Console.WriteLine();25 Console.WriteLine(请输入x2的参数A:);26 a=int.Parse(Console.ReadLine();27 Console.Write(请输入x的参数B:);28 b=int.Parse(Console.ReadLine();29 Console.WriteLine(请输入方程的常数C:);30 c=int.Parse(Console.ReadLine();31 di
5、scriminant=Math.Pow(b,2)-(4*a*c);32 root1=(-1*b)+Math.Sqrt(discriminant)/(2*a);33 root2=(-1*b)-Math.Sqrt(discriminant)/(2*a);34 Console.WriteLine(Root1:+root1);35 Console.WriteLine(Root2:+root2);36 Console.WriteLine();37 Console.WriteLine(让我们尝试随机生成方程:);38 System.Random generator=new Random(DateTime.
6、Now.Millisecond);39 a=generator.Next(100)-50;40 b=generator.Next(35);41 c=generator.Next();42 Console.WriteLine(随机生成的方程是:+a+x2+b+x+c);43 Console.WriteLine();44 test=generator.NextDouble();45 Console.WriteLine(test:0.01.0:+test);46 test=generator.NextDouble()*10;47 Console.WriteLine(test:0.010.0:+tes
7、t);48 Console.ReadLine();49 50 51 代码分析:2 该例中使用了StringBuilder类,由于该类在名称空间System.text中,因此using语句导入该名称空间。9 新建StringBuilder类的实例对象former,初始值为“原始字符串为:”。10 定义StringBuilder类的对象total,未对其进行初始化。11 定义string类型变量3个:mutation1、mutation2和mutation3,用于进行字符串数据的处理。12 定义int类型变量3个:a、b、c,用于进行整数数据的处理。13 定义double类型变量3个:root1、
8、root2、test,用于进行小数数据的处理。1415 输出StringBuilder的实例对象former的内容和长度。16 在StringBuilder的实例former的末尾连接上字符串“ax2+bx+c”,将连接后的字符串赋值到StringBuilder的实例对象total中。17 将StringBuilder的实例total通过ToString()方法转换为字符串,并通过ToUpper()方法转换为大写,并赋值到字符串变量mutation1中。18将字符串变量mutation1中的X替换为y,并将替换后的结果赋值到字符串变量mutation2中。19 取字符串变量mutation2中
9、从第22个字符开始的9个字符,作为子串赋值到字符串变量mutation3中。注意:字符串的索引是从0开始的,所以第1个字符的索引是0,第22个字符的索引是21。2024将处理后的数值输出。2530在用户屏幕上输入3个整数,每个数以一个回车结束。这3个数值被赋值到a、b、c 3个变量中。注意:ReadLine()函数接收以回车结束的一行数据。3133用来求方程的根。31 求判别式“b2-4ac”的值,这里用到数学函数Math.Pow(b,2),表示b的平方。Pow函数用来求数的n次方。3233用公式求方程的两个根。数学函数Math.Sqrt()用来求函数所带参数的平方根。38 生成随机类的实例对
10、象generator,使用当前系统时间DateTime.Now.Millisecond作为种子值,这样可以增加随机性。39 生成一个-5049之间的随机数,赋值给a。40 生成一个034之间的随机数,赋值给b。41生成一个整数int范围内的随机数,赋值给c。42 输出生成的随机方程。4447 生成随机小数,调整范围并输出。2.1.3 知识点知识点1.NET框架类之框架类之Math类类C#标准类库的System命名空间中定义了大量的常用类。其中Math类中提供了大量的基本数学函数,用来帮助我们执行数学计算。该类主要为三角函数、对数函数和其它通用数学函数提供常数和静态方法。表2.1列出了Math类
11、的一些方法和说明,由于数量较多、用法较简单,这里不一一详解。要查找如何使用每个方法的其它信息,可以搜索帮助文件的“Math Member”。表 2.1 Math 类 方 法 说 明 E 代表自然对数基(e),通过常量指定 PI 代表圆周率(),圆周和直径的比,通过常量指定 Abs 返回指定数字的绝对值 Acos 为指定数字的角度返回余弦值 Asin 为指定数字的角度返回正弦值 Atan 为指定数字的角度返回正切值 Atan2 为两个指定数字的商的角度返回正切值 BigMul 生成两个 32位数字的完整乘积 Ceiling 返回大于或等于指定数字的最小整数 Cos 返回指定角度的余弦值 Cosh
12、 返回指定角度的双曲余弦值 DivRem 计算两个数字的商,并在输出参数中返回余数 Exp 返回 e 的指定次幂 Floor 返回小于或等于指定数字的最大整数 IEEERemainder 返回一指定数字被另一指定数字相除的余数 Log 返回指定数字的对数 Log10 返回指定数字以10 为底的对数 Max 返回两个指定数字中较大的一个 Min 返回两个数字中较小的一个 Pow 返回指定数字的指定次幂 Round 将值舍入到最接近的整数或指定的小数位数 Sign 返回表示数字符号的值 Sin 返回指定角度的正弦值 Sinh 返回指定角度的双曲正弦值 Sqrt 返回指定数字的平方根 Tan 返回指
13、定角度的正切值 Tanh 返回指定角度的双曲正切值 Truncate 计算一个数字的整数部分 Math类中的所有方法都是静态方法(static methods),也称为类方法(class methods)。静态方法可以通过定义它们的类名来触发,不需要首先实例化一个类的对象。Math类的方法用于进行数学运算,它们的返回值就是运算结果,可以根据需要用于表达式。例如,下面语句计算变量price的绝对值,将它加上变量aigo的值的3次方,然后将结果存储到变量total中:total=Math.abs(price)+Math.pow(aigo,3);2.1.4 知识点知识点2.NET框架类之框架类之Ra
14、ndom类类我们在编写实际应用软件的时候,经常需要用到随机数。如游戏中经常要用随机数来表示掷骰子和扑克发牌,网络考试系统中用随机数来从题库中抽取考题,飞行模拟也可以使用随机数来模拟飞机引擎发生故障的几率等。Random类是System命名空间的一部分,表示伪随机数生成器(pseudo random number generator)。它是一种能够产生满足某些随机性统计要求的数字序列的设备。随机数生成器从一个程序员指定的范围内提取一个值。由于这是用一种确定的数学算法选择的,是以相同的概率从一组有限的数字中选取的,因此所选数字并不具有完全的随机性。但是从实用的角度而言,其随机程度已足够了。表2.2
15、中列出了Random类的一些常用方法。其中,Next方法用来产生随机整数。它可以不带参数,这样表示产生一个整个int范围内的随机值,包括负数。但是,实际问题中通常需要更具体的范围,可以使用带参数的Next方法返回一个从0到比给定参数(maxValue)小1的范围内的整数值。表 2.2 Random 类 方 法 说 明 构造函数:public Random();public Random(int Seed);用于初始化 Random 类的一个新实例,如果有种子值(Seed),则使用指定的种子值 建议:可以使用 DateTime.Now.millisecend 作为种子值,这是基于程序开始运行的时
16、间的随机数 public virtual int Next(int maxValue);返回一个比指定最大值maxValue 小的非负的数 public virtual double NextDouble();返回一个介于 0.0 和 1.0 之间的随机数 protected virtual double Sample();返回一个介于 0.0 和 1.0 之间的随机数 例如模拟筛子时,需要一个16之间的随机整数值。就可以调用Next(6)来得到一个05之间的随机数,然后加上1,即Next(6)+1。可以看出,传递给Next方法的值也就是可能得到的随机数的数量。可以根据实际情况增加或减去适当的
17、数量来改变随机数范围。同样的道理,NextDouble方法返回的是0.01.0之间的浮点数。如果需要,可以通过乘法来调节结果。2.1.5 知识点知识点3.NET框架类之框架类之String类类在学习情境一中,我们已经知道了C#支持的基本数据类型。其中,有用来存放单个字符的char 类型,它们用单引号表示。那么,由多个字符组成、用双引号表示的字符串该如何表示呢?在C#中,string作为一种内在的或者原始的数据类型来使用。它可以用简单的变量初始化来创建。实际上,在C#中也包含了一个类名称为String,它是string关键字的一个别名,二者可以互换使用。在我们的实例代码中使用关键字string,
18、但是如果在联机帮助文档中查找 string,则指向的是String类。这并不矛盾,因为在内部,C#将所有原始类型均表示为类。表 2.3 String 类 方 法 说 明 公共字段 Empty 表示空字符串。此字段为只读 公共属性 Length 获取此实例中的字符数 公共方法 Compare 比较两个指定的 String 对象 Concat 连接 String 的一个或多个实例,或是 Object 的一个或多个实例的值的 String 表示形式 Copy 创建一个与指定的 String 具有相同值的 String 的新实例 Equals 确定两个 String 对象是否具有相同的值 Format
19、 将指定的 String 中的每个格式项替换为相应对象的值的文本等效项 IndexOf 报告 String 的一个或多个字符在此字符串中的第一个匹配项的索引 Insert 在此实例中的指定索引位置插入一个指定的 String 实例 Join 在指定 String 数组的每个元素之间串联指定的分隔符 String,从而产生单个串联的字符串 LastIndexOf 报告指定的 Unicode 字符或 String 在此实例中的最后一个匹配项的索引位置。PadLeft 右对齐此字符串中的字符,在左边用空格或指定的 Unicode 字符填充以达到指定的总长度 PadRight 左对齐此字符串中的字符,
20、在右边用空格或指定的 Unicode 字符填充以达到指定的总长度 Remove 从此实例中删除指定个数的字符 Replace 将此实例中的指定 Unicode 字符或 String 的所有匹配项替换为其它指定的Unicode 字符或 String Split 返回包含此实例中的子字符串(由指定Char或String数组的元素分隔)的String数组 Substring 从此实例检索子字符串 ToLower 返回此 String转换为小写形式的副本 ToString 将此实例的值转换为 String ToUpper 返回此 String转换为大写形式的副本 公共操作和索引=如果运算符两边的字符串
21、有相同的值(内容),则返回 true,反之返回false!=如果运算符两边的字符串有不同的值(内容),则返回 true,反之返回false 返回指定索引(中的数字)处的字符,索引从 0 开始 让我们来看看String数据类型的基本操作:string s1=orange;string s2=red;s1+=s2;System.Console.WriteLine(s1);/输出 orangereds1=s1.Substring(2,5);System.Console.WriteLine(s1);/输出 angers1=s1.ToUpper();System.Console.WriteLine(s1
22、);/输出 ANGER在C#中,字符串对象是“不可变的”,任何对String的修改都会创建一个新String对象。在前面的示例中,语句“s1+=s2;”将s1和s2的内容连接起来以构成一个字符串,+=运算符会创建一个包含内容为“orangered”的新字符串,由s1引用。包含orange和red的两个字符串均保持不变。而原来由s1引用的包含orange的字符串仍然存在,但将不再被引用。同理,“s1=s1.Substring(2,5);”、“s1=s1.ToUpper();”也分别创建了新字符串给s1引用。大量的类似字符串相加操作的时候,就会有很多字符串像s1一样不再被引用,从而造成内存资源的极
23、大浪费。当我们需要对字符串执行重复修改的情况下,例如在一个循环中将许多字符串连接在一起时,使用String类,系统开销可能会非常大。如果要修改字符串而不创建新的对象,则C#中还有另外一种创建和使用字符串的格式,即System.Text.StringBuilder类。解决这种问题时使用StringBuilder类可以提升性能。StringBuilder类必须使用new运算符来创建对象。以下语句声明了一个StringBuilder类的对象MyStringBuilder,并将其初始化为Hello World!:StringBuilder MyStringBuilder=new StringBuild
24、er(Hello World!);StringBuilder类支持很多和String类中一样的属性和方法,并且在很多情况下,它们在代码中的用法是类似的。表2.4中列出了StringBuilder类的一些构造函数和常用成员。表2.4 StringBuilder 类 公共构造函数(public)StringBuilder()构造默认容量的 StringBuilder 类的新实例 StringBuilder(Int32)构造指定容量的 StringBuilder 类的新实例 StringBuilder(String)使用指定的字符串初始化StringBuilder 类的新实例 StringBuild
25、er(Int32,Int32)构造有指定容量并且可增长到指定最大容量的StringBuilder类的新实例 StringBuilder(String,Int32)使用指定的字符串和容量初始化 StringBuilder 类的新实例 公共属性 Capacity 获取或设置可包含在当前实例所分配的内存中的最大字符数 Length 获取或设置当前 StringBuilder 对象的长度 MaxCapacity 获取此实例的最大容量 续表 方 法 说 明 公共方法 Append 在此实例的结尾追加指定对象的字符串表示形式 AppendFormat 向此实例追加包含 0 个或更多格式规范的格式化字符串。
展开阅读全文