《C#程序设计》讲稿2008级联合办学本科2010-2011-1软件理论教研室邵国强2010.09.08序序言言1内容与目标意义正确的学习观技能储备要求最终目标2意义提高编程动手能力为实训课做好基础促进就业3正确的学习观主人翁精神克服外界困难4技能储备C#语言的基本语法运算符、表达式、逻辑控制结构、数组C#中的组件编程属性、结构、枚举、索引器、委托、事件C#中的面向对象编程类、对象、接口、静态类、封装、多态、继承.NETFramework基础知识字符串处理、集合(ArrayList)、异常处理、基本的文件处理.NET中的数据访问技术--ADO.NETConnection、Command、Parameter、DataAdapterDataSet、DataTable、DataView、DataRow、DataColumn数据库知识SqlServer数据库的基本操作、表的创建、基本SQL命令(SELECT、INSERT、UPDATE、DELETE等)的使用、存储过程的创建和调用5要求上课认真听讲,切忌交头接耳认真思考,完成布置作业独立思考,课下多翻相关书籍6最终目标独立开发小项目,包括数据库的设计建立,以及利用.NET完成网页制作。项目样例:客户资源管理系统人事管理系统第第一一章章..NNEETT集集成成开开发发环环境境介介绍绍1.1.NET平台介绍微软版的Java&J2EE平台功能强大的类库同时支持Windows程序设计和Web程序设计多语言的环境方便、快捷、容易入门1.2C#语言特点类似C语言类似C++不含有指针不含有多继承增强的安全性1.3开发环境和运行环境1.3.1IIS的安装控制面板添加或删除程序添加/删除Windows组件选中程序列表中的Internet信息服务器(IIS),下一步,然后插入Windows系统安装盘即可。IIS安装后不需要重启计算机1.3.2SQLServer与VisualStudio安装1.3.3开发环境测试IIS测试1.3.4开发环境测试SQLServer测试1.3.5VisualStudio2005测试1.4运行环境1.5三种应用程序举例控制台应用程序Windows应用程序Web应用程序(俗称网站)1.5.1控制台应用程序文件新建控制台应用程序,输入名称和位置编写代码并运行系统自动提供一个Main函数Main函数中写代码如下:Console.WriteLine(ThisismyfirstConsoleApplication);点击工具栏上的按钮(或按F5),系统编译并运行。屏幕上显示提示信息。上一个例子中的代码弹出提示信息后一闪就过去了,如何能让它静态显示呢?参考答案:再加一行代码:Console.ReadLine();1.5.2Windows应用程序文件新建Windows应用程序,输入名称和位置编写代码并运行系统自动提供一个窗体工具公共控件,选择Button,在窗体上划动鼠标,按钮就在窗体之上。双击按钮,写代码如下:MessageBox.Show(hello,Word);点击工具栏上的按钮(或按F5),系统编译并运行。点击按钮,则弹出提示信息对话框。参考答案:MessageBox.Show(hello,Word,提示信息);程序中添加文本框1.5.3Web应用程序文件新建网站,输入名称和位置运行Response.writelin(“…”);第第二二章章CC##基基本本语语法法2.0内容和目标1.C#基本语法要求2.C#中的基本数据类型3.定义变量和常量4.控制台的基本输入输出5.C#中的控制结构6.异常处理7.函数2.1C#的基本语法要求1.C#是面向对象的编程语言,在C#中没有全局变量和全局函数,所有元素必须包含在类中2.C#代码区分大小写3.C#中以;作为代码行的结束符4.C#中以一对大括号{}来标记代码块5.C#的源代码文件的扩展名为.cs,文件名可以是操作系统支持的任意名称6.一个源文件中可以包含一个或多个类,一个应用程序可以由一个或多个源文件组成7.注释:单行注释://多行注释:/*…*/XML注释:///采用VisualStudio注释工具2.2变量和常量的定义变量定义变量用于在程序运行过程中临时存储特定类型的可变数据数据类型变量名[=初值];inta=10;inta,b=10,c;stringxy=“hello”;floatff=20.33f;boolisStudent;常量定义常量用于在程序运行时存储不可变的数据使用const关键字声明时必须为其赋值constinta=10;conststringxy=“good”;变量和常量的定义变量的命名规则变量名只能由字母、数字和下划线组成变量名不能以数字开头变量名不能与C#的关键字相同如:int,bool,try,null,for,finally,as……例1:变量的使用inta=10;intb=20;intc=a+b;Response.Write(c);常用数据类型:2.3统一类型系统CTS1.在C#中,数据类型分为两种基本类型值类型值类型变量中存储实际数据在栈中为变量分配内存空间int、char、结构、枚举引用类型引用类型变量存储的是实际数据的地址或指针在堆中为数据分配内存空间如为null,则表示未引用任何对象类、接口、委托、数组、字符串2.在C#中,值类型或引用类型都是object类型实例1:计算路程有一辆汽车一小时可以行驶X公里,欲计算Y小时能行驶多少公里?假定X,Y均为整型。给定初始值1:v=150,t=2;给定初始值2:v=120,t=10;运行结果如下:2.4运算符和表达式类别运算符说明表达式算术运算符+执行加法运算(如果两个操作数是字符串,则该运算符用作字符串连接运算符,将一个字符串添加到另一个字符串的末尾)操作数1+操作数2-执行减法运算操作数1-操作数2值类型引用类型内置类型自定义类型intfloatcharstruct(结构)enum(枚举)classinterfacedelegatestring数组object*执行乘法运算操作数1*操作数2/执行除法运算操作数1/操作数2%获得进行除法运算后的余数操作数1%操作数2++将操作数加1操作数++或++操作数--将操作数减1操作数--或--操作数~将一个数按位取反~操作数运算符说明表达式?:检查给出的第一个表达式expression是否为真。如果为真,则计算operand1,否则计算operand2。这是唯一带有三个操作数的运算符表达式?操作数1:操作数2运算符说明表达式检查一个数是否大于另一个数操作数1操作数2检查一个数是否小于另一个数操作数1操作数2=检查一个数是否大于或等于另一个数操作数1=操作数2=检查一个数是否小于或等于另一个数操作数1=操作数2==检查两个值是否相等操作数1==操作数2!=检查两个值是否不相等操作数1!=操作数2运算符说明表达式.用于访问数据结构的成员数据结构.成员=给变量赋值操作数1=操作数2&&对两个表达式执行逻辑“与”运算操作数1&&操作数2||对两个表达式执行逻辑“或”运算操作数1||操作数2!对两个表达式执行逻辑“非”运算!操作数()将操作数强制转换为给定的数据类型(数据类型)操作数2.5数据类型转换1隐式转换inti=10;floatf=i;2显式转换floatf=3.4f;inti=(int)f;3使用Convert类Convert类包含若干静态方法用于数据类型转换4使用类型的Parse方法如:intx=int.Parse(“234”);5其他类型到字符串的转换ToString()方法。inta=100;ToString();6装箱和拆箱装箱是将值类型转换为引用类型拆箱是将引用类型转换为值类型利用装箱和拆箱功能,可通过允许值类型的任何值与Object类型的值相互转换,将值类型与引用类型链接起来控制台基本输入输出操作Console.ReadLine()读取用户输入的一行数据,返回一个字符串Console.Read()读取用户输入的一行数据的第一个字符,返回该字符对应的ASCII码值,int类型Console.Write()向控制台输出字符串,不换行Console.WriteLine()向控制台输出一行字符串数据(换行)类型转换练习1.文本框的Text属性赋值为一个浮点数,将其转换为浮点数用变量f接收,然后将其转换为整型用变量i接收并输出变量f的10倍的值。2.如:文本框的Text属性为108.77,应输出10802.6控制语句1.顺序2.选择(分支)3.循环(重复)4.其中:5.顺序语句主要是赋值语句;6.选择语句为if语句和switch语句7.循环语句为while循环、do循环、for循环、foreach循环8.各个case标签不必连续,也不必按特定顺序排列9.default标签可位于switch…case结构中的任意位置10.default标签不是必选的,但使用default标签是一个良好的编程习惯11.每两个case标签之间的语句数不限2.6.1循环结构1.循环结构用于对一组命令执行一定的次数或反复执行一组命令,直到指定的条件为真。2.循环结构的类型while循环do循环for循环foreach循环3.while循环反复执行指定的语句,直到指定的条件为假4.语法:while(条件){//语句}5.break语句可用于退出循环6.continue语句可用于跳过当前循环并开始下一循环do…while循环与while循环类似,二者区别在于do…while循环中即使条件为假时也至少执行一次该循环体中的语句。语法:do{//语句}while(条件)计算复利存款某人新开一个帐户,输入开始存入的金额(本金)、年利率以及存款周期(年)。假定所有的利息收入都重新存入帐户,请编写程序,计算并输出在存款周期中每年年终的帐面金额,如下图所示,其金额计算公式为:a=p*(1+r)n车上有几个座位?是是!!否!while(seat=25)for循环1.for循环要求只有在对特定条件进行判断后才允许执行循环2.这种循环用于将某个语句或语句块重复执行预定次数的情形语法:for(初始值;条件;增/减){//语句}习题实例6:打印字母表及对应的ASCII码值。foreach循环用于遍历整个集合或数组语法:foreach(数据类型元素(变量)in集合或者数组){//语句}foreach循环2.7异常处理1.Try{}2.Catch{}3.Finally{}4.其中:Try后要执行的语句;Catch后为出错的处理语句;Finally后为必须执行的语句例1trycatch语句protectedvoidPage_Load(objectsender,EventArgse){strings=200.e2;try{Convert.ToInt32(s);Response.Write(转换成功。);}catch{Response.Write(br+转换失败。);}}例2trycatchfinally语句做一件事,不论成功还是失败,我们都应该总结经验教训。stringa=TextBox1.Text;try{Convert.ToInt32(a);Response.Write(转换成功。);}catch{Response.Write(br+转换失败。);}finally{Response.Write(任务结束。);}实例2:整数相乘计算总分计算分数对班上的每一个学生用户从键盘输入整数,之后单击相乘按钮时,将计算它们的乘积,并显示结果。2.8函数1.函数的三个要素:2.函数名,参数,返回值3.用return返回值例子判断奇偶数–if语句1.用文本框输入一个数存入number中,判断number是奇数还是偶数,输