信息工程系罗明刚.ppt_第1页
信息工程系罗明刚.ppt_第2页
信息工程系罗明刚.ppt_第3页
信息工程系罗明刚.ppt_第4页
信息工程系罗明刚.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.NET平台和C#编程,信息工程系:罗明刚,第三章,C#基础知识,3,回顾,VisualStudio.NET2003是用于创建、编写、运行和调试程序的集成开发环境用户使用VS.NET中的“起始页”可以自定义IDE。IDE还包含许多有用的链接,如最近的项目、下载和联机新闻组等VS.NET中的程序组成项目和解决方案。项目是一组相关的文件,解决方案则是一组相关的项目VisualStudio.NET为用户提供了用于浏览文件的各种窗口“动态帮助”窗口为用户提供了与当前光标所在位置相关的文章,4,目标,在C#中定义变量和常量使用C#中的基本数据类型理解装箱和拆箱的概念使用C#中的运算符,选择结构和循环结构定义和使用数组,了解结构和枚举,5,C#数据类型,6,变量2-1,语法:访问修饰符数据类型变量名,Public,Private,Protected,int,string,float,糖,盐,胡椒粉,盐,胡椒粉,糖,int,float,string,2,5.4,“Test”,变量用于存储特定数据类型的值,7,变量2-2,staticvoidMain(stringargs)/声明布尔型、字符串型、整型、短整型和浮点型变量booltest=true;shortnum1=19;intnum2=14000;stringval=Jamie;floatnum3=14.5f;/显示变量值Console.WriteLine(布尔值=+test);Console.WriteLine(短整型值=+num1);Console.WriteLine(整型值=+num2);Console.WriteLine(字符串值=+val);Console.WriteLine(浮点值=+num3);,变量中存储的值取决于该变量的类型,8,常量2-1,语法:const数据类型常量名=常量值;,Public,Private,Protected,常量用于在整个程序中将数据保持同一个值,9,常量2-2,staticvoidMain(stringargs)/PI常量PIconstfloat_pi=3.14F;/由地球引力引起的加速度常量,单位为cm/s*sconstfloat_gravity=980;/钟摆的长度intlength=40;/钟摆的周期doubleperiod=0;/钟摆周期的计算公式period=2*_pi*Math.Sqrt(length/_gravity);Console.WriteLine(钟摆的周期为0秒,period);,声明常量,在表达式中使用常量,const关键字用于声明常量,10,C#的基本数据类型3-1,C#中的数据类型分为两个基本类别值类型表示实际数据只是将值存放在内存中值类型都存储在堆栈中int、char、结构引用类型表示指向数据的指针或引用包含内存堆中对象的地址为null,则表示未引用任何对象类、接口、数组、字符串,11,C#的基本数据类型3-2,staticvoidMain(stringargs)/声明一个值类型的整型数据类型intval=100;Console.WriteLine(该变量的初始值为0,val);Test(val);/由于该数据类型属于值类型,所以将恢复其初始值Console.WriteLine(该变量的值此时为0,val);staticvoidTest(intgetVal)inttemp=10;getVal=temp*20;,将val的初始值传递给Test()方法,被传递的val在Test()方法内被改变,不反映已经改变的val值,而保留原始值,12,C#的基本数据类型3-3,staticvoidMain(stringargs)DataTypeTestobjTest=newDataTypeTest();objTest.Val=100;/传递属于引用类型的对象Test(objTest);/由于该数据类型属于引用类型,所以会考虑新处理的值Console.WriteLine(变量的值为0,objTest.Val);staticvoidTest(DataTypeTestdataTest)inttemp=10;dataTest.Val=temp*20;,将DataTypeTest的引用传递给Test(),被传递的val在Test()中改变,不反映已经改变的val值,而保留原始值,classDataTypeTestpublicintVal;,13,装箱和拆箱2-1,装箱是将值类型转换为引用类型拆箱是将引用类型转换为值类型利用装箱和拆箱功能,可通过允许值类型的任何值与Object类型的值相互转换,将值类型与引用类型链接起来,14,装箱和拆箱2-2,intval=100;objectobj=val;Console.WriteLine(“对象的值=0,obj);,intval=100;objectobj=val;intnum=(int)obj;Console.WriteLine(num:0,num);,值类型,引用类型,拆箱,装箱,值类型,引用类型,值类型,被装过箱的对象才能被拆箱,15,运算符和表达式9-1,运算符和表达式,Result,=,number,*,100,变量,变量,常量,操作数,表达式,操作数和运算符的组合,运算符,16,运算符和表达式9-2,17,运算符和表达式9-3,18,问题,下面的运算结果是什么?1、27%5=2、11=,2,-12,为什么?,19,运算符和表达式9-4,20,运算符和表达式9-5,21,运算符和表达式9-6,赋值运算符(=),变量=表达式;例如:身高=177.5;体重=78;性别=“m”;,22,运算符和表达式9-7,一元运算符(+/-),Variable+;相当于Variable=Variable+1;Variable-;相当于Variable=Variable-1;,23,运算符和表达式9-8,24,运算符和表达式9-9,C#运算符的优先级,25,前置和后置自加/自减运算符,26,问题,计算结果:1、inti=0;boolresult=falseresult=(+i)+i=2?true:false;result=,true,27,算术运算符,staticvoidMain(stringargs)/x2的系数intcoefficient1=2;/x的系数intcoefficient2=-7;/二次方程的常数值intconstant=3;/存放表达式b2-4ac的值doubleexpression=0;doublex1=0;doublex2=0;Console.WriteLine(二次方程为:0x2+1x+2,coefficient1,coefficient2,constant);expression=Math.Sqrt(coefficient2*coefficient2-(4*coefficient1*constant);x1=(-coefficient2)+expression)/(2*coefficient1);x2=(-coefficient2)-expression)/(2*coefficient1);Console.Write(x=0:F2,x1);Console.Write(或);Console.WriteLine(x=0:F2,x2);,将值赋给变量,在表达式中使用的算术运算符,28,选择结构3-1,语法:if()else,选择结构用于根据表达式的值执行语句,ifelse,29,选择结构3-2,语法:switch(选择变量)case值1:break;case值2:break;case值3:break;.default:,switchcase,30,switchcase的其他特性,选择结构3-3,各个case标签不必连续,也不必按特定顺序排列default标签可位于switchcase结构中的任意位置default标签不是必选的,但使用default标签是一个良好的编程习惯每两个case标签之间的语句数不限,31,循环结构,循环结构用于对一组命令执行一定的次数或反复执行一组命令,直到指定的条件为真。循环结构的类型while循环do循环for循环foreach循环,32,while循环2-1,停车!,车上有几个座位?,检查!,是!,否!,while(seat=25),33,while循环反复执行指定的语句,直到指定的条件为真语法:while(条件)/语句break语句可用于退出循环continue语句可用于跳过当前循环并开始下一循环,while循环2-2,34,dowhile循环2-1,停车!,车上有几个座位?,检查!,是!,否!,while(seat=25),do,35,dowhile循环2-2,dowhile循环与while循环类似,二者区别在于dowhile循环中即使条件为假时也至少执行一次该循环体中的语句。语法:do/语句while(条件),36,for循环,for循环要求只有在对特定条件进行判断后才允许执行循环这种循环用于将某个语句或语句块重复执行预定次数的情形语法:for(初始值;条件;增/减)/语句,37,foreach循环,计算总分,计算分数,对班上的每一个学生,教室,38,foreach循环2-1,foreach循环用于遍历整个集合或数组语法:foreach(数据类型元素(变量)in集合或者数组)/语句,39,foreach循环,staticvoidMain(stringargs)/存放字母的个数intcountLetters=0;/存放数字的个数intcountDigits=0;/存放标点符号的个数intcountPunctuations=0;/用户提供的输入stringinput;Console.WriteLine(请输入一个字符串);input=Console.ReadLine();/声明foreach循环以遍历输入的字符串中的每个字符。foreach(charchrininput)/检查字母if(char.IsLetter(chr)countLetters+;/检查数字if(char.IsDigit(chr)countDigits+;/检查标点符号if(char.IsPunctuation(chr)countPunctuations+;Console.WriteLine(“字母的个数为:0,countLetters);Console.WriteLine(“数字的个数为:0,countDigits);Console.WriteLine(“标点符号的个数为:0,countPunctuations);,为所有计数器设置初始值,接受输入,对输入的每一个字符都进行循环,使用了所有输入的字符之后,循环自动终止,40,数组3-1,数组是同一数据类型的一组值数组属于引用类型,因此存储在堆内存中数组元素初始化或给数组元素赋值都可以在声明数组时或在程序的后面阶段中进行语法:数据类型元素个数数组名称;int6arrayHere;,41,数组3-2,学生分数的整数数组,职员姓名的字符串数组,室温的浮点数组,数组位置,42,数组3-3,staticvoidMain(stringargs)intcount;Console.WriteLine(请输入您要登记的学生人数);count=int.Parse(Console.ReadLine();/声明一个存放姓名的字符串数组,其长度等于提供的学生人数stringnames=newstringcount;/用一个for循环来接受姓名for(inti=0;icount;i+)Console.WriteLine(“请输入学生0的姓名,i+1);namesi=Console.ReadLine();Console.WriteLine(已登记的学生如下:);/用foreach循环显示姓名foreach(stringdispinnames)Console.WriteLine(0,disp);,数组声明,初始化数组元素的循环,显示输出的循环,43,structstructExpublicintstructDataMember;publicvoidstructMethod1()/structMethod1实现,自定义数据类型可以在其内部定义方法无法实现继承属于值类型主要结构:,structstudentpublicintstud_id;publicstringstud_name;publicfloatstud_marks;publicvoidshow_details()/显示学生详细信息,结构,数据成员,方法,所有与Student关联的详细信息都可以作为一个整体进行存储和访问,44,枚举,publicclassHolidaypublicenumWeekDaysMonday,Tuesday,Wednesday,Thursday,FridaypublicvoidGetWeekDays(StringEmpName,WeekDaysDayOff)/处理工作日staticvoidMain()HolidaymyHoliday=newHoliday();myHoliday.GetWeekDays(Richie,Holiday.WeekDays.Wednesday);,枚举(Enum,Enumerator的缩写)是一组已命名的数值常量用于定义具有一组特定值的数据类型枚举以enum关键字声明,Wednesday=2,45,枚举(续),C#中的枚举包含与值关联的数字默认情况下,将0值赋给枚举的第一个元素,然后对每个后续的枚举元素按1递增在初始化过程中可重写默认值,publicenumW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论