《C#NET程序设计》教学案Word下载.docx
《《C#NET程序设计》教学案Word下载.docx》由会员分享,可在线阅读,更多相关《《C#NET程序设计》教学案Word下载.docx(60页珍藏版)》请在冰豆网上搜索。
Master的品味更高。
(4)易读性。
大师并非如我们所想的那么难以接近,相反,大师的作品有时更细致,写的更准确,文笔也更好,更有条理,我们理解的更顺利。
●要求记笔记,学期中进行检查。
为什么要记笔记?
在整个大学学习阶段,乃至于以后的学习工作中,我们要善于积累、收集。
好的方法、思路、算法、文章等都是收集的对象,收集得越多,“财富”就越多,如果大学期间没有收集到这些东东,那就入宝山而空回。
做笔记,是我们积累的一种方式,应该养成这样的习惯。
●多练习,多实践。
“纸上得来终觉浅,绝知此事要躬行”。
没有练习和实践,对很多知识点的理解都是肤浅甚至等于无。
注意我们课本有“习题”和“实验”。
●写Email的基本要求!
2.C#概述:
课本P1-P2。
3..NET平台概述。
课本P2-P7。
.NET框架组成图(课本P3)非常重要。
平台的几个重要的部件如下。
(1)公共语言运行库(CLR)。
(2)基本类库。
(3)ADO.NET。
(4)WindowsForms。
(5)WebForms/WebService。
4..NET程序的编译过程。
课本P5-P6。
5.开发环境VisualStudio.NET的安装和简介。
6.C#程序:
控制台程序,例2.1。
课本P25-P27。
学生自行输入。
简单介绍控制台应用程序构成。
课本P27-P29。
7.输入和输出。
P30。
8.C#程序:
Window程序,例2.2。
对话框HelloWorld。
简单介绍Windows程序构成。
课本P34-P35。
讨论、思考题、作业:
课后作业:
安装MicrosoftVisualStudio.NET,并写下安装过程中碰到的一些问题和解决方法。
参考资料(含参考书、文献等):
李春葆等,C#程序设计教程,清华大学出版社,2009
万科,覃剑,VisualC#.NET程序设计基础与上机指导,清华大学出版社,2007
邵鹏鸣,VisualC#程序设计基础教程,清华大学出版社,2005.4
BurtonHarvey等著,康博译,C#程序设计教程,清华大学出版社,2001.10
JohnSharp著,周靖译,VisualC#2005从入门到精通,清华大学出版社,2006.6
KarliWatson,MarcoBellinaso等著,康博译C#入门经典,清华大学出版社,2003.12
实施情况及分析
教学过程设计:
复习_____分钟,授新课_70__分钟,安排讨论__20_分钟,布置作业____分钟
授课类型(请打√):
理论课√讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授√讨论□指导□其他□
教学资源(请打√):
多媒体√模型□实物□挂图□音像□其他□
填表说明:
1.每项页面大小可自行添减;
2.教学内容与讨论、思考题、作业部分可合二为一。
第2次课的教学整体安排
第1周第3-4节
数据类型,常量和变量,表达式和练习。
掌握C#的数据类型。
理解C#的变量、常量。
掌握C#的运算符和表达式。
1.标识符。
P37-P38。
只能含有数字,字母和下划线,并且不能以数字开头。
严格区分大小写。
不能与C#关键字同名。
C#关键字P38,每一个人应该保留一份!
2.数据类型:
首先,C#的数据类型实际上不单单是C#的数据类型值,它们首先是.NET的数据类型。
这里展示了微软.NET设计一统江湖的雄心。
3.数据类型的分类:
从存储的角度分:
值类型和引用类型。
从使用的角度分:
简单类型和复合类型。
●值类型:
示意图3-1。
简单类型:
整数类型,字符类型,布尔类型,实数类型。
注意每一个类型的名字,对应的.NET公用类型系统名,所占用内存空间,以及取值范围。
思考:
C#的类型跟C的类型有什么不同?
程序设计语言的整数类型跟数学里面的整数集合有什么不同?
实数类型跟实数集合呢?
关于类型的存储空间大小和精度:
用尺子来做比喻。
为什么decimal的位数更多,但是表示范围却小很多?
枚举类型:
仅要求了解。
结构类型:
仅要求知道。
●引用类型:
数组,字符串,类,接口…
4.变量和常量。
直接常量或字面常量:
直接写出值来的量。
注意
(1)整数和浮点数直接常量后缀的使用;
(2)字符常量的转移字符;
(3)字符串常量的转义字符和逐字字符串。
符号常量:
用符号表示一个常量,其值定义以后不能再改变。
变量:
是一个程序运行过程中可以改变的值。
已命名的存储单元。
必须先声明后使用。
注意变量的有效范围是在定义它的模块里面。
而模块是通过“{”和“}”界定的。
5.类型转换:
隐式转换和显式转换。
课本P48-P49。
6.表达式。
操作数+运算符构成表达式,表达式构成语句。
程序就是这样搭建出来的!
所以,首先我们关心运算符!
7.堂上练习。
实验3-4。
课本P69。
复习_____分钟,授新课_60__分钟,安排讨论__30_分钟,布置作业____分钟
第3次课的教学整体安排
第2周第1-2节
运算符和表达式;
C#的控制语句。
1.掌握C#的各种运算符。
2.理解运算符优先级。
1.运算符
●算术运算符。
跟普通的数学运算类似。
注意
(1)运算数的类型,尤其是“/”号和“%”号;
(2)递增和递减符号。
●字符串运算符。
●赋值运算符。
简单赋值就是等于号,把右边的表达式运算所得的值赋给左边。
复合赋值,把x=x+3写成x+=3。
●关系运算符。
其实是所谓的“序”关系。
即一个集合里面的元素有一个排序,两两之间可以比较。
对于数而言,就是大于,小于和等于,还有它们的组合,否定。
关系运算符作用于数值类型,结果是布尔类型。
●逻辑运算符。
对布尔类型进行运算,得布尔类型。
与、或、非操作。
注意“&
”和“&
&
”的区别,所谓短路特征。
●位运算符。
例3.4。
应用例子:
(1)按位异或可用于加密;
(2)移位运算等于乘以或除以2的整次幂。
●条件运算符。
唯一一个三元运算符。
跟C语言的一样。
●其他运算符。
●运算符的优先级与结合顺序。
什么叫优先级?
参看表2-9。
我们从小所学的先乘除,再加减就是优先级的一个例子。
一个例子可以简单说明算术运算,关系运算和逻辑运算的优先级:
。
结合顺序。
比较古文和现代文的书写方向!
注意那些从右到左结合的运算符!
典型的例子就是
●表达式中的类型转换。
与前面所说的运算符要考虑运算数相结合。
2.常用类和结构。
●String类:
详细讲。
●Math类:
略讲。
●Convert类:
●DateTime结构:
3.堂上练习:
把例子2-1用if-elseif的形式重写一遍。
第4次课的教学整体安排
第2周第3-4节
C#的控制语句(2.6);
数组。
掌握C#分支(选择,条件判断)语句。
掌握C#的循环语句while,do…while和for。
掌握C#的break和continue跳转语句。
理解数组的定义,存储。
1.选择语句。
●If语句。
(1)if;
(2)if-else;
(3)if-elseif;
(4)嵌套的if,这里要讲一下就近原则和“{}”的使用,以例4.4的代码为例子。
●Switch语句。
注意
(1)break语句;
(2)default语句;
(3)case后面的表达式。
2.循环控制语句。
●While语句,例4.6。
●Do-while语句,例4.7。
●For语句,例4.8。
3.跳转语句。
Break,continue和return语句。
●Break。
用于循环语句或者switch语句。
直接跳出本循环,到循环语句的下一条语句。
例如,找出一个愿意帮我忙的学生。
●Continue。
只能用于循环语句。
跳出本轮循环。
例如,找出所有愿意帮我忙的学生,并给每一个愿意帮忙的学生分配任务。
●Return。
用于结束一个方法。
观察例子2-10。
4.Goto语句。
不建议使用。
5.一维数组。
不需要在声明的时候指定大小。
用new运算符来创建数组实例。
(跟C语言对比)
数组的初始化。
注意四种不同的形式!
(1)全部写全;
(2)省略数组大小;
(3)右边集合形式;
(4)声明和初始化分开写。
访问:
数组名[下标]。
例2-14。
第5次课的教学整体安排
第3周第1-2节
数组:
一维数组,二维数组和交叉数组。
(5.1-5.3)
1.掌握一维数组的定义、初始化和访问。
2.掌握二维和多维数组数组的定义,二维数组的初始化和访问。
3.了解交叉数组的定义,初始化和访问。
4.理解Array类的概念。
5.了解Array类的Length属性和GetLength方法。
6.初步掌握前面所学知识的应用。
1.一维数组
●定义(声明):
数据类型[]数组名;
●初始化:
课本P86。
注意多种初始化方式。
(1)动态初始化:
使用new关键字;
(2)静态初始化:
直接用等号。
●访问:
下标访问,注意越界问题。
●Foreach语句。
2.二维数组——矩阵
●声明与数组对象创建。
数据类型[,]数组名;
比较多种初始化方式:
(1)动态初始化;
(2)静态初始化。
●访问。
3.多维数组与交错数组
(1)多维数组声明:
type[,,,]数组名;
(2)交错数组则是:
(P91,注意多种初始化方法)
type[][][]数组名;
(3)多维数组的创建:
数组名=newtype[s1,s2,s3];
(4)不规则数组的创建:
数组名=newtype[3][];
数组名[0]=newtype[4];
数组名[1]=newtype[2];
数组名[2]=newtype[5];
●初始化。
多维数组同样有四种形式的初始化。
不规则数组的初始化通常是分步进行的。
●引用。
跟声明的形式对应,引用的形式多维数组和不规则数组也有不同。
多维数组:
数组名[i1,i2,i3…]。
不规则数组:
数组名[i1][i2][i3]…
4.System.Array。
(略讲)
学生自己调试例5.3。
以例5.3说明几个特点。
(1)随机数。
(2)排序方法。
第6次课的教学整体安排
第3周第3-4节
C#基础练习,程序的编译与调试。
(12.1-12.2)
1.理解面向对象程序设计的思想。
2.理解对象的概念。
3.理解类的概念。
4.理解字段和属性。
1.错误分类(P294)。
(1)语法错误;
(2)执行错误——通常导致“异常”;
(3)逻辑错误。
2.程序调试(P298)。
●开始调试
●断点
●定位错误
●调试过程
●单步跟踪
3.练习。
第7次课的教学整体安排
第4周第1-2节
面向对象程序设计基础:
基本概念,类。
(6.1-6.2)
1.本节课先讲思想以及以实际程序为例子说明问题。
但是关于编程的细节和具体的语法在下一节课作详细说明。
以3.5节的综合应用例子为贯穿几节课的例子。
2.面向对象的思想。
面向对象首先是一种思想。
对象,是现实世界的事物,或者是它们的抽象。
例子
(1)汽车的例子;
(2)iPhonev.s.Samsung;
(3)学生成绩管理程序。
面向对象程序设计是一种基于结构分析的、以数据为中心的程序设计方法。
其总体思路是:
将数据以及处理这些数据的操作封装到一个称为类的数据结构中;
在程序中使用的是类的实例,即对象。
3.过程性思想v.s.面向对象思想。
在程序设计中,为了共享,把某些常用功能设计成一个模块,比如说,一个函数,一个.h文件,一个dll文件。
在面向对象程序设计中,把这种思路贯彻到底,整个程序就由一个个称为类的功能模块构成。
4.对象的概念。
万物皆对象!
程序设计的对象,必然是现实世界的对象的抽象。
比如说一个学生,我们编写学生成绩管理程序的时候,只关心学生的姓名,性别,年龄…等。
如果我们要抽调这个学生进学校田径队,那么我们关心他的百米跑速度,摸高等等。
不同的应用,关心的属性不同。
对象由状态和操作来描述。
还是以
(1)汽车为例子。
汽车状态由各种属性来描述:
熄火状态,点火状态;
车灯开,车灯关;
倒车档,前进挡,停泊挡;
目前的时速。
汽车的操作有:
踩油门,刹车,开灯,关灯。
操作会改变状态。
(2)学生成绩管理程序。
学生对象的状态和操作。
5.类的概念。
类,是对象的模板。
对象是生产出来的产品。
例如,汽车厂的设计图和具体生产出来的汽车。
又例如,学生成绩管理程序中,学生和课程类分别定义学生和课程,运用这些类我们可以具体定义学生对象和课程对象。
以学生成绩管理程序为例。
6.类的声明。
P104
访问修饰符:
表6.1。
注意此处有误!
类的修饰符不能够是protected和private。
缺省的类修饰符为internal。
7.类的成员。
字段:
字段是用来描述对象状态的。
属性。
方法:
方法是类的动作和功能。
成员的修饰符:
表6.3。
8.对象。
对象是基于类的具体实体。
也称为类的实例。
对象的声明和初始化。
P106。
访问对象的字段和方法。
P107。
例6.1,学生自行输入。