已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大理学院课程教案(理论教学)课程名称:C#面向对象程序设计 课程类型:( 1 )1、必修;2、选修;3、其它授课对象:计算机科学与技术 专业(本科) 2010 级 1 班授课时间: 2011 至 2012 学年 三 学期 计划学时: 72学时(其中:理论 36 ,实验:36 )任课教师: 杜英国 所属学院: 数计学院 课程管理部门(教研室): 软件教研室 课程名称:C#面向对象程序设计教 材:C#程序设计实用教程 清华大学出版社 ,黄兴荣 编著,2009年第1版讲 授 人:杜英国 专业技术职务:讲师学 历:研究生 学 位:硕士讲授题目:C#程序设计基础所属章节:第三章 计划学时:2教学目的和要求:本章将介绍C#的基本语法,包括词法结构、数据类型、变量与常量、运算符和表达式等编程的基础知识。教学重点:1. 了解了C# 的变量,简单数据类型教学难点:类型转换教学方法:课堂讲授使用教具:多媒体系统思 考 题:1、各种整型的长度参考资料:1 C#编程思想,嘉木工作室,机械工业出版社,20032 VISUAL C# 2005从入门到精通:(英)JOHN SHARP著,清华大学版社3.1 词法结构n 词法是构成程序设计语言的最基本单位。n 程序是由若干个语句构成,而语句是由若干个具有特殊含义的单词和运算符构成的。n 所以学习一门编程语言,首先应该从词法入手。3.2 数据类型n 数据类型是用来定义现实生活中各种数据形式的标识符及其存储形式。n C#中数据类型主要分为两大类:值类型和引用类型。C# 中的数据类型分为两个基本类别 1)值类型 n 表示实际数据 n 只是将值存放在内存中 n 值类型都存储在堆栈中 n int、char、结构2)引用类型 n 表示指向数据的指针或引用 n 包含内存堆中对象的地址 n 为 null,则表示未引用任何对象 n 类、接口、数组、字符串3.2.1 值类型 值类型通常用来表示基本类型、简单类型。 C#的值类型包括3种:简单类型、结构类型和枚举类型。 简单类型包括整数类型、浮点类型、小数类型、字符类型和布尔类型等。 1. 整数类型 整数类型的数据值只能是整数。数学上的整数可以从负无穷大到正无穷大,由于计算机存储单元的限制,程序语言提供的整数类型的值总是在一定的范围内。 C#定义了8种整数类型,划分的根据是这些类型所占存储器的位数。例如,一个8位的整数类型可以表示28=256个数值。 2. 浮点类型 实数在C#中采用浮点类型的数据来表示。 浮点类型的数据包括两种:单精度浮点型(float)和双精度浮点型(double),其区别在于取值范围和精度不同。 3. 小数类型 小数类型(decimal)数据是高精度的类型数据,占用16个字节,主要是为了满足需要高精度的财务和金融方面的计算。 小数类型数据的取值范围和精度如下: 小数类型:取值范围在1.0 x 10-287.9 x 1028之间,精度为29位数。 要注意的是,小数类型数据的后面必须跟m或者M后缀来表示它是decimal类型的,如3.15m,0.35m等,否则就会被视为标准的浮点类型数据,导致数据类型不匹配。 4. 字符类型 C#中的字符类型数据采用Unicode字符集。字符类型的类型标识符是char,因此也可称为char类型。 凡是在单引号中的一个字符,就构成一个字符常数,如下所示: a、o、*、 9、 国 5. 布尔类型 布尔类型数据用于表示逻辑真和逻辑假,布尔类型的类型标识符是bool。 布尔类型常数只有两种值:true(代表“真”)和false(代表“假”)。3.2.2 引用类型 在C#中,引用类型的引入主要是因为值类型比较简单,不能描述结构复杂、抽象能力比较强的数据。 引用类型,其含义是该类型的变量不直接存储所包含的值,而是存储当前引用值的地址,因此引用类型数据的值会随所指向的值的不同而变化,同一个数据也可以有多个引用。C#的引用引用类型有4种:类类型、数组类型、接口类型和委托类型。3.2.3 类型转换1. 隐式转换l 隐式转换是系统默认的,不需要加以声明就可以进行自动转换l 只要满足以下条件,就会发生自动类型转换: 两种类型兼容; 目标类型大于源类型;int a=10; /a为整型数据long b=a; /b为长整型数据double c=a; /c为双精度浮点型数据double f=1.2;2. 显式转换l 显式转换又称为强制类型转换,与隐式转换相反,显式转换需要用户明确地指定转换类型。l 显式转换可以将一数值类型强制转换成另一种数据类型,其格式如下:(类型标识符) 表达式上式的含义为:将表达式的值的类型转换为类型标识符的类型。例:(int)5.17/把double类型的5.17转换成int类型(int) 7.18m/deimal类型的数值7.18转换为int类型的数值73. string类型转换为其他类型l 整型、浮点型、字符型和布尔类型都对应有一个结构类型,该结构类型中提供parse方法,可以把string类型转换成相应的类型。例如,要把string类型转换成int类型,则有相应的int.parse(string)方法,如:string str = 123;int i = int.Parse(str);则i的值为123。4. 其他类型转换为string类型l 计算后的数据如果要以文本的方式输出,如在文本框中显示计算后的数据,则需要将数值数据转换成string类型,转换方法是执行ToString方法。例如:int j = 5 * 8;string str = 5 * 8的积是: + j.ToString();3.2.4 装箱与拆箱l 装箱(boxing)和拆箱(unboxing)是C#类型系统中重要的概念。l 它允许将任何类型的数据转换为对象,同时也允许任何类型的对象转换到与之兼容的数据类型。l 经过装箱操作,使得任何类型的数据都可以看做是对象的类型系统。反之,拆箱是装箱的逆过程。必须注意的是:装箱转换和拆箱转换过程中必须遵循类型兼容的原则,否则转换会失败。1装箱转换l 装箱转换是指将一个值类型的数据隐式地转换成一个对象类型(object)的数据,或者把这个值类型数据隐式转换成一个被该值类型数据对应的接口类型数据。把一个值类型装箱,就是创建一个object类型的实例,并把该值类型的值复制给该object。例如,下面的语句就执行了装箱转换:int i=108;object obj=i;上面的语句中,第1条语句先声明一个整型变量i并对其赋值,第2条语句则先创建一个object类型的实例obj,然后将i的值复制给obj2拆箱转换l 和装箱相反,拆箱转换是指将一个对象类型的数据显式地转换成一个值类型数据,或者将一个接口类型显式地转换成一个执行该接口的值类型数据。l 拆箱操作包括两步,首先检查对象实例,确保其是给定值类型的一个装箱值,然后把实例的值复制到值类型数据中。3.4 C#运算符与表达式3.4.1概述分类运算符结合性初级(x) x.y f(x) ax x+ x- new typeof sizeof checked unchecked左单目+ - ! +x -x (T)x左乘法等* / %左加法等+ -左移位左关系 = is左相等= !=右逻辑与&左逻辑异或左逻辑或|左条件与&左条件或|左条件?:右赋值等= *= /= %= += -= = &= = |=右左结合意味着运算符是从左到右进行运算的。右结合意味着所有的运算是从右到左进行的,如赋值运算符,要等到其右边的计算出来之后,才把结果放到左边的变量中。2. 1-2. 单目运算符: Unary.csusing System;class Unary public static void Main() int unary = 0;int preIncrement;int preDecrement;int postIncrement;int postDecrement;int positive;int negative;sbyte bitNot;bool logNot;preIncrement = +unary;Console.WriteLine(Pre-Increment: 0, preIncrement);preDecrement = -unary;Console.WriteLine(Pre-Decrement: 0, preDecrement);postDecrement = unary-;Console.WriteLine(Post-Decrement: 0, postDecrement);postIncrement = unary+;Console.WriteLine(Post-Increment: 0, postIncrement);Console.WriteLine(Final Value of Unary: 0, unary);positive = -postIncrement;Console.WriteLine(Positive: 0, positive);negative = +postIncrement;Console.WriteLine(Negative: 0, negative);bitNot = 0;bitNot = (sbyte)(bitNot);Console.WriteLine(Bitwise Not: 0, bitNot);logNot = false;logNot = !logNot;Console.WriteLine(Logical Not: 0, logNot);说明1.当计算表达式的时候,在后置增一和后置减一运算符进行运算时,先返回其值,再进行增一或者减一运算。当使用前置加号和减号运算符进行运算时,是先进行增一或者减一的运算,然后再返回其结果值。2.在 1-2中, 变量unary初始化为0,进行+x 运算时,unary的值加1,再把其值1赋给preIncrement变量。在进行-x运算时,先把unary的值减到0, 再把值0赋给preDecrement变量。3.进行x-运算时,先把unary的值0赋给postDecrement 变量,之后再把unary减到-1。进行x+运算时,先把unary的值-1赋给postIncrement变量,之后再对unary加1,使得unary变量现在的值为0。4.变量bitNot初始值为0,进行按位取反运算,本例中,数0表示为二进制00000000,按位取反之后变为-1,其二进制表示为11111111。5.了解一下表达式(sbyte)(bitNot), 任何对类型sbyte, byte, short 或者 ushort 类型数据的运算,返回结果都是整数。要把值赋给bitNot变量,我们必须使用cast (类型)运算符(强制类型转换),其中Type表示你希望转换成的类型(本例中为sbyte)。 Cast运算符把大范围类型的数据转换为小范围类型的数据时,须特别谨慎,因为此时有丢失数据的危险。一般来说,把小类型的数据赋给大类型变量,并没有问题, 因为大范围数据类型的变量具有足够的空间存放小类型数据。 注意在signed 和unsigned类型之间进行Cast运算时,也存在此类危险。 许多初级程序设计教程对变量的位表示作出了很好的讲解,同时也介绍了直接进行Cast运算的危险。逻辑非(!)运算符可以处理布尔变量值。本例中,logNot变量从false 变为true。上述程序的输出结果如下:Pre-Increment: 1Pre-Decrement 0Post-Decrement: 0Post-Increment -1Final Value of Unary: 0Positive: 1Netative: -1Bitwise Not: -1Logical Not: True3. 1-3. 二元运算符 Binary.csusing System;class Binary public static void Main() int x, y, result;float floatResult;x = 7;y = 5;result = x+y;Console.WriteLine(x+y: 0, result);result = x-y;Console.WriteLine(x-y: 0, result);result = x*y;Console.WriteLine(x*y: 0, result);result = x/y;Console.WriteLine(x/y: 0, result);floatResult = (float)x/(float)y;Console.WriteLine(x/y: 0, floatResult);result = x%y;Console.WriteLine(x%y: 0, result);result += x;Console.WriteLine(result+=x: 0, result);说明 1-3 演示了二元操作符的几个例子。加法(+),减法(-),乘法(*)和除法(/)的运算结果,就是我们通常进行的的四则运算的结果。因为floatResult变量是浮点运算类型,所以整型变量x和y 被强制转换成浮点类型来计算FloatResult。3.4.2算术运算符类别运算符说明表达式算术运算符+执行加法运算(如果两个操作数是字符串,则该运算符用作字符串连接运算符,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025东风越野车有限公司民品及海外营销岗位招聘16人笔试历年难易错考点试卷带答案解析
- 高中化学教学中纳米技术与材料实验法的融合研究课题报告教学研究课题报告
- 2026安徽合肥市发展和改革委员会上半年招聘事业单位工作人员20人笔试参考题库及答案解析
- 公司员工培训与职业发展规划方案
- 公司外部沟通机制完善方案
- 2026天津津旅泊泰投资发展有限公司招聘6人笔试参考题库及答案解析
- 2026萍乡市某国企招聘选拔2名专业技术人才考试备考试题及答案解析
- 2026平安人寿春季校园招聘考试参考题库及答案解析
- 烹饪责任制度
- 煤矿培训员岗位责任制度
- GB/T 16938-2008紧固件螺栓、螺钉、螺柱和螺母通用技术条件
- GB/T 15812.1-2005非血管内导管第1部分:一般性能试验方法
- 2023年毕节地区毕节市广播电视台(融媒体中心)招聘笔试题库及答案解析
- 毕业证明书申请表(模板)
- 第5章护际关系伦理第6章课件讲义
- 城市供热工程系统规划-课件
- 新人教版三年级下册语文全册课件(新教材)
- 代维人员技能认证方案
- 特种设备安全培训课件
- 部编人教版九年级历史下册全册知识点总结
- 新版北师大版小学3三年级数学下册全册教案完整(新教材)
评论
0/150
提交评论