《C#概述数据类型与程序流程控制.ppt》由会员分享,可在线阅读,更多相关《C#概述数据类型与程序流程控制.ppt(81页珍藏版)》请在三一办公上搜索。
1、第一部分 C#程序设计基础,第1章 概述,1.NET和.NET框架,.NET平台微软首席执行官鲍尔默:“Microsoft.NET代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程框架。”这里可以理解为一种进行各种应用程序开发的集成开发和执行环境。,1.NET和.NET框架,.NET平台.NET平台提供了多种核心的技术和服务,运用这些技术和服务能够简化基于Web的应用程序开发。,1.NET和.NET框架,.NET平台可开发的主要项目类型控制台应用程序Windows窗体应用程序(单机或C/S程序)ASP.NET应用程序(B/S程序)Windows控件XML Web Se
2、rvice手持设备应用程序等,1.NET和.NET框架,.NET框架.NET框架类库提供了一个可以由所有Web应用程序、Windows应用程序以及XML Web Service应用程序访问的类库公共语言运行库(CLR)负责管理和执行.NET框架类库开发的所有应用程序。在Visual Studio.NET中集成的所有编程语言编写的应用程序均需通过公共语言运行库才能运行。,1.NET和.NET框架,Microsoft中间语言MSILVisual Studio.NET在编译应用程序时,会将其翻译为运行时环境通用语言MSIL。当编译完成后,CLR将管理该程序的执行。,1.NET和.NET框架,即时(J
3、IT)编译当应用程序需要在某个系统上运行时,此功能可以将应用程序的MSIL代码翻译为该系统的机器语言。当.NET平台上的客户端设备启动某个基于.NET的应用程序时,该程序将会以客户端系统上的机器语言来运行。无论该程序是用什么语言开发的,它都可以完全地与其他基于.NET的应用程序和服务进行集成和交互。,类加载器,JIT 即时编译器,执行,类库(中间码),Runtime Engine,机器码(目标码),编译器,源代码文件,EXE/DLL(中间码文件),.NET程序执行过程,2.C#,C#是一种简单、现代、面向对象和类型安全的编程语言。C#由C和C+发展而来,是Microsoft专门为使用.NET平
4、台而创建的。,2.C#,C#特点简单 现代性 面向对象 类型安全性,C#语言是完全面向对象的编程语言,是.NET平台的主流开发语言。,VS.NET2008系统要求,支持的操作系统:Windows Server 2003;Windows Vista;Windows XP最低配置:1.6 GHz CPU,384 MB 内存,1024x768 显示分辨率,5400 RPM 硬盘建议配置:2.2 GHz 或更快的 CPU,1024 MB 或更大的内存,1280 x1024 显示分辨率,7200 RPM 或更快的硬盘在 Windows Vista 上运行的配置要求:2.4 GHz CPU,768 MB
5、内存,VS.NET2012系统要求,支持的操作系统:Windows 7 SP1(x86 和 x64)Windows 8(x86 和 x64)Windows Server 2008 R2 SP1(x64)Windows Server 2012(x64)硬件要求:1.6 GHz 或更快的处理器1 GB RAM(如果在虚拟机上运行,则为 1.5 GB)10 GB 的可用硬盘空间5400 RPM 硬盘驱动器以 1024 x 768 或更高的显示分辨率运行的支持 DirectX 9 的视频卡,第2章 数据类型与表达式第3章 程序流程控制第4章 面向对象程序设计基础第5章 常用数据类型的使用,C#程序结构
6、,第一部分各章节的学习以创建控制台程序为主提示:控制台应用程序(consol applications)是C#可以创建的几种类型的项目中最基本的类型之一。控制台应用程序的文本输出是在控制台窗口中显示的。在WindowsNT/2000/XP/Windows7/Windows8下,该控制台窗口称为命令提示符。,创建控制台应用程序的步骤打开VS.2012文件新建项目在“新建项目”窗体中创建程序,如下图,创建控制台应用程序的步骤创建新程序后,VS.2012会出现如下图的界面,创建控制台应用程序的步骤将默认生成的程序改为,/A first program in C#using System;namesp
7、ace _0201Hello class Program static void Main(string args)Console.WriteLine(Hello World!);Console.ReadLine();,注释单行注释:/多行注释:/*/,using System;using关键字可以引用Microsoft.NET框架类库中的现有资源。通常,在程序文件的开头使用using提示:C#的优势之一就是使程序员能使用由.NET架构提供的丰富的命名空间(namespace)。这些命名空间包含了程序员预先存储的代码,命名空间将这些代码按相关类别分组。Console就是命名空间System中的
8、代码。,System命名空间System命名空间提供了对构建应用程序所需的所有系统功能的访问,类(class)在C#或其他任何面向对象语言的编程过程中,都需要编写类,并用类来创建对象。,Main方法(函数)Main方法用来描述类的行为,它指示编译器从该处开始执行应用程序。每个C#应用程序都必须在组成程序的某一个类中包含Main方法。,语句语句就是C#应用程序中执行操作的指令。语句之间用分号分隔,编译器通过分号来区分它们。,代码格式代码格式也是编程的组成要素,它有助于良好而清晰的组织代码。推荐使用约定的格式以改进代码的结构,并能够提高代码的可读性。缩进区分大小写空白区注释,控制台应用程序的输入输
9、出,Console类位于System命名空间下,该类可以将数值、字符数组以及对象集自动转换为格式化或未格式化的字符串,然后将该字符串输出。,控制台应用程序的输入输出,WriteLine方法将各种值类型数据或对象转换为字符串输出。,boolean flag=false;int age=18;string str=“abc”;Console.Write(flag);Console.WriteLine(18);Console.WriteLine(str);,控制台应用程序的输入输出,ReadLine方法用于从标准输入流读取一行字符。该方法在用户按下回车键之前不会返回,直到用户按下回车键为止。,str
10、ing str=“abc”;str=Console.ReadLine();,int price;price=Convert.ToDecimal(Console.ReadLine();,第2章 数据类型与表达式,C#基本数据类型变量和常量类型转换运算符和表达式,1.C#基本数据类型,C#中的数据类型,值类型,简单类型:整数类型;浮点数类型;字符类型:decimal类型;布尔类型,枚举类型,结构类型,引用类型,类类型,接口类型,委托类型,数组类型,指针类型(仅用于安全代码中),数值类型,byte 8位无符号整数;sbyte 8位有符号整数;short 16位有符号整数;ushort 16位无符号整
11、数;int 32位有符号整数;uint 32位无符号整数;long 64位有符号整数;ulong 64位无符号整数;,数值类型,float 32位单精度浮点数;double 64位双精度浮点数;decimal128位高精度十进制数;,字符类型,char 单字符(2字节)string 字符串,布尔类型,boolean 布尔类型(true和false)布尔类型适用于逻辑运算,一般用于流程控制。布尔类型数据不可以用0或非0替代true和false。,数值类型,常使用的数据类型包括string,int和decimal 如果数据用于计算,则必须是数值(通常是int或decimal)如果数据不用于计算,则
12、应选择string类型 float,double通常用于科学应用程序 decimal 通常用于商业应用程序中,作为任何小数的数据类型,数据类型的选择,数值类型,数据类型的选择示例,string,decimal,decimal,string,int,2.变量和常量 变量,变量声明;示例:string nameString=“software”;示例:int counterInt;变量赋值变量的命名规则变量名的第一个字符可以是字母或下划线其后字符可以是字母、数字或下划线不可以使用关键字区分大小写,变量的命名约定变量名(或常量名)必须有意义变量名含有变量的数据类型(可选,在VS中,将鼠标指针停留在变
13、量上一会儿,即可出现数据类型的提示)Camelcase:以小写字母开始,然后使每个后继单词的首字母大写,如phoneNumberPascalcase:每个单词的首字母均大写,如PhoneNumber,2.变量和常量 变量,2.变量和常量常量,(1)直接常量:,整型常量(八进制、十进制、十六进制);实型常量;字符常量(转义符号);字符串常量。,2.变量和常量常量,(1)直接常量:,C#语言的整型常量默认为int类型;C#语言的浮点型常量默认为double类型。,示例:int i=3;long l=3L;double d=3.14;float f=3.14f;,对于数值常量,通过附加一个类型声明字
14、符,可以声明数值常量的数据类型。如果没有给数值常量附加类型声明字符,则任何整数都会被假定为int类型,任何小数都会被假定为double类型,2.变量和常量常量,(1)直接常量:,(2)符号常量:,使用const关键字声明示例:const string COMPANYNAME=“CNC”;示例:const decimal SALESTAXRATE=0.08m;符号常量的优势代码更易阅读若需修改常量值,仅需修改一次常量声明语句即可,不必在全部代码中修改对常量的每一处引用,2.变量和常量常量,3.类型转换,(1)隐式转换(自动转换),(2)显示转换(强制类型转换),(3)使用方法(函数)实现数据类型
15、的转换,(4)拆箱与装箱,3.类型转换,(1)隐式转换(自动转换),允许数值范围小的类型向数值范围大的类型转换;允许无符号数向有符号数转换。,格式:,(数据类型名称)(表达式),(2)显示转换(强制类型转换),示例:,int x=500;short z=(short)x;/z值为500,3.类型转换,Parse方法 将特定格式的字符串转换为数值.,格式:数值类型名称.Parse(字符串型表达式),示例:int m=int.Parse(1234);decimal x=decimal.Parse(“3.14”);,3.类型转换,(3)使用方法实现数据类型的转换,格式:变量名称.ToString()
16、;,示例:int m=234;string str1=m.ToString();,ToString方法 将其他类型的变量转换为字符串。,System.Convert类将一个基本数据类型转换为另一个基本数据类型。Convert类拥有针对每种数据类型的以To开始的方法。,3.类型转换,(3)使用方法实现数据类型的转换,3.类型转换,3.类型转换,System.Convert类,3.类型转换,(3)使用方法实现数据类型的转换,示例:decimal price;string str=“23.43”;price=Convert.ToDecimal(str);,4.运算符和表达式,5.结构类型,结构是将多
17、个相关的数据字段合并在一起而创建的一种新的结构。,public|private struct 结构名 public 数据类型 字段名;public 数据类型 字段名;;,5.结构类型,示例,public struct Product public string description;public string ID;public int quantity;public decimal price;,5.结构类型,结构声明不能放入方法内部。通常应把struct块与类声明一起放在文件顶部,也可以将struct块放到类的内部或外部。,5.结构类型,示例,public struct OrderIte
18、m public string size;public string drink;public int quantity;public decimal price;OrderItem drinkOrder;,6.枚举,枚举类型用于声明一组命名的常数。每种枚举类型均有一种基础类型,此基础类型可以是除char类型以外的任何整型。,enum WeekDaySun,Mon,Tue,Wed,Thu,Fri,Sat;WeekDay theDay;,枚举元素的默认基础类型为int。默认情况下,第一个枚举元素值为0,后面的每个枚举元素的值一次递增1。,例2-2:编程,输入年利率(例如2.5%)和存款总数(例如
19、30000元),计算一年后的本息合计并输出。输出本息之和deposit输入年利率rate和存款本金capital,deposit=capital*(1+rate),static void Main(string args)decimal rate,capital,depoist;Console.Write(请输入年利率:);rate=Convert.ToDecimal(Console.ReadLine();Console.Write(请输入本金:);capital=Convert.ToDecimal(Console.ReadLine();depoist=capital*(1+rate);Con
20、sole.Write(一年后本利之和:);Console.WriteLine(depoist);Console.ReadLine();,第3章 程序流程控制,顺序结构选择结构循环结构,3.1 选择结构简介,3.1.1 单分支选择结构,if(条件表达式)语句1;else 语句2;,3.1.2 多分支选择结构,ifelse if语句 switch语句,(1)ifelse if语句,if(条件表达式1)语句1;else if(条件表达式2)语句2;:else if 语句 n;else 语句 n+1;,例3-1:体型判断。按“体指数”对肥胖程度进行划分:体指数t=体重w/(身高h)2(w 单位为公斤,
21、h单位为米)当t=27时,为肥胖。编程从键盘输入你的身高h和体重w,根据给定公式计算体指数t,然后判断你的体重属于何种类型。,t18?,真,假,t25?,t27?,真,真,假,假,输入身高h和体重w,计算体指数t,显示”低体重”,显示”正常”,显示”超重”,显示”肥胖”,decimal h,w,t;Console.Write(Please enter h:);h=Convert.ToDecimal(Console.ReadLine();Console.Write(Please enter w:);w=Convert.ToDecimal(Console.ReadLine();t=w/(h*h);
22、Console.WriteLine(t);if(t 18)Console.WriteLine(低体重);else if(t 25)Console.WriteLine(正常体重);else if(t 27)Console.WriteLine(超重体重);else Console.WriteLine(肥胖体重);Console.ReadLine();,switch(变量或表达式)case c1:语句1;break;case c2:语句2;break;:case cn:语句n;break;default:语句n+1;break;,(2)switch语句,整型字符类型字符串等,执行流程图(设:变量或表
23、达式的值 为 e),switch语句的注意事项:Switch不能将控制从一个case标签贯穿到另一个case标签(不能省略break)如果一个case子句为空,可以从这个case跳到下一个case。,例3-3:根据输入的百分制成绩,输出相应等级。,int score;Console.Write(请输入成绩:);score=Convert.ToInt32(Console.ReadLine();switch(score/10)case 10:case 9:Console.Write(A);break;case 8:Console.Write(B);break;case 7:Console.Writ
24、e(C);break;case 6:Console.Write(D);break;case 5:case 4:case 3:case 2:case 1:case 0:Console.Write(E);break;default:Console.Write(ERROR);break;,3.2 循环结构程序设计,3.2.1 for循环语句,for(表达式1;表达式2;表达式3)语句;,循环体,例:s=0;p=1;for(i=1;i=5;i+)s+=i;p*=i;,for 循环执行流程图,3.2.2 while 循环语句,1.一般格式,2.执行流程图,while(表达式)语句;,循环体,3.2.3 do while 循环语句,1.一般格式,do 语句;while(表达式);,2.执行流程图,例3-2:编程求,for(i=1;i=100;i+)sum+=i;,i=1;while(i=100)sum+=i;i+;,i=1;do sum+=i;i+;while(i=100);,3.2.4 跳转语句,goto语句break语句continue语句,