c#pp第四章结构化程序设计.ppt
《c#pp第四章结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《c#pp第四章结构化程序设计.ppt(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章结构化程序设计结构化程序设计内容提要:内容提要:结构化程序的三种基本结构结构化程序的三种基本结构算法、流程图、算法、流程图、if语句、语句、分支语句分支语句循环语句、跳转语句循环语句、跳转语句异常处理的概念异常处理的概念try/catch语句、语句、throw语句和语句和finally语句语句目的要求:目的要求:理解算法的概念理解算法的概念掌握掌握if语句、语句、switch分支语句、循环语句和异常处理语分支语句、循环语句和异常处理语句的含义句的含义重点难点:重点难点:if语句、循环语句和异常处理语句语句、循环语句和异常处理语句4.1结构化程序设计的概念结构化程序设计的概念结构化程序
2、设计的概念及算法的概念结构化程序设计的概念及算法的概念结构化程序设计方法,是比较广泛使用的程序设计方结构化程序设计方法,是比较广泛使用的程序设计方法。法。用这种方法编制的程序具有结构清晰,可读性强,易用这种方法编制的程序具有结构清晰,可读性强,易查错等特点。查错等特点。结构化程序设计有三种基本结构,即:结构化程序设计有三种基本结构,即:顺序结构、选择顺序结构、选择结构、循环结构结构、循环结构。每种基本结构可以包含若干条语句。每种基本结构可以包含若干条语句。程序设计的主要步骤:程序设计的主要步骤:(1)分析问题。分析问题。(2)确定算法。确定算法。(3)画出程序流程图。画出程序流程图。(4)编写
3、程序。编写程序。(5)调试程序。调试程序。(6)建立健全的文档资料。建立健全的文档资料。最关键的是第最关键的是第2个步骤,即个步骤,即“算法设计算法设计”。所谓所谓“算法算法”,粗略地讲,是为解决一个特定问题而采取的确定的有,粗略地讲,是为解决一个特定问题而采取的确定的有限限的步骤。的步骤。4.1.2流程图流程图流流程程图图(Flowchart),亦亦称称框框图图,它它是是用用一一些些几几何何框图、流向线和文字说明表示各种类型的操作。框图、流向线和文字说明表示各种类型的操作。计算机算法可以用流程图来表示。计算机算法可以用流程图来表示。图图2-2-1程序控制结构的流程图程序控制结构的流程图4.2
4、顺序结构顺序结构4.2.1顺序结构的概念:顺序结构的概念:有有些些简简单单的的程程序序是是按按程程序序语语句句的的编编写写顺顺序序依依次次执执行行的,这种结构称为顺序结构。的,这种结构称为顺序结构。例:编写程序计算圆的周长和面积。例:编写程序计算圆的周长和面积。using System;class Circle static void Main()const double PI=3.141;double R,L,S;Console.Write(请输入圆的半径值:请输入圆的半径值:);R=double.Parse(Console.ReadLine();L=2*PI*R;S=PI*R*R;Cons
5、ole.WriteLine(圆的周长为:圆的周长为:0,L);Console.WriteLine(圆的面积为:圆的面积为:0,S);4.2.2顺序结构的实例顺序结构的实例Parse()方法方法:主要用于将主要用于将数字的字符串数字的字符串表示形式转换为它的表示形式转换为它的等效等效的其他基本数字类型。的其他基本数字类型。例:例:strings=“18”;inta=int.Parse(s)-10;/a=8intb=a+int.Parse(Console.ReadLine();4.3选择结构选择结构4.3.1选择结构的概念选择结构的概念选选择择结结构构,是是一一种种常常用用的的主主要要基基本本结结
6、构构,是是计计算算机机根根据据所所给给定定选选择择条条件件为为真真与与否否,而而决决定定从从各各实实际际可可能能的的不同操作分支中执行某一分支的相应操作。不同操作分支中执行某一分支的相应操作。n n 【案例【案例5】计算方程的根】计算方程的根n n 本例将实现通过输入一元二次方程本例将实现通过输入一元二次方程的系数,计算方程的根的程序,效果如的系数,计算方程的根的程序,效果如图图2-2-8所示。所示。图图2-2-8计算方程的根计算方程的根 n n 在本例的实现过程中,将学习使用在本例的实现过程中,将学习使用if语句的应用。案例的实现方法如下。语句的应用。案例的实现方法如下。n n 1 1创建项
7、目创建项目创建项目创建项目n n 2 2界面设计界面设计界面设计界面设计n n 3 3代码编辑代码编辑代码编辑代码编辑n n(1 1)算法流程分析)算法流程分析)算法流程分析)算法流程分析n n(2 2)算法代码实现)算法代码实现)算法代码实现)算法代码实现 n n 【案例【案例6】用户登录】用户登录n n 本例将实现一个可以验证用户登录的本例将实现一个可以验证用户登录的程序,效果如图程序,效果如图2-2-11所示。所示。图图2-2-11用户登录用户登录 n n 在本例的实现过程中,将学习使用在本例的实现过程中,将学习使用if语句的应用。案例的实现方法如下。语句的应用。案例的实现方法如下。n
8、n 1 1创建项目创建项目创建项目创建项目n n 2 2界面设计界面设计界面设计界面设计n n 3 3代码编辑代码编辑代码编辑代码编辑n n(1 1)算法流程分析)算法流程分析)算法流程分析)算法流程分析n n(2 2)算法代码实现)算法代码实现)算法代码实现)算法代码实现4.3.2条件语句条件语句1if语句语句语法形式:语法形式:if(表达式表达式)语句;语句;说说明明:如如果果表表达达式式的的值值为为true,则则执执行行后后面面if语语句句所所控控制制的的语语句句;如如果果表表达达式式的的值值为为false,则则不不执执行行if语语句句控控制制的的语语句句,而直接跳转执行后面的语句。而直
9、接跳转执行后面的语句。注注意意:如如果果if语语句句块块中中只只有有一一条条语语句句,则则大大括括号号“”可可以以省略。省略。编程:计算下面公式中的编程:计算下面公式中的b的值。的值。2a+1(a100)b=a(a100)usingSystem;classvaluestaticvoidMain()Console.Write(请输入请输入a的值:的值:);inta=int.Parse(Console.ReadLine();intb=a;if(a=100)b=2*a+1;Console.WriteLine(b=0,b);编程编程编程编程:输入三个数,将它们从大到小排序输入三个数,将它们从大到小排序
10、输入三个数,将它们从大到小排序输入三个数,将它们从大到小排序 int a,b,c,t=0;int a,b,c,t=0;Console.Write(“Console.Write(“请输入第一个数请输入第一个数请输入第一个数请输入第一个数:”);:”);a=int.Parse(Console.ReadLine();a=int.Parse(Console.ReadLine();Console.Write(“Console.Write(“请输入第二个数请输入第二个数请输入第二个数请输入第二个数:”);:”);b=int.Parse(Console.ReadLine();b=int.Parse(Cons
11、ole.ReadLine();Console.Write(“Console.Write(“请输入第三个数请输入第三个数请输入第三个数请输入第三个数:”);:”);c=int.Parse(Console.ReadLine();c=int.Parse(Console.ReadLine();if(a b)if(a=ba=b t=a;a=b;b=t;t=a;a=b;b=t;if (a c)if (a=ca=c t=a;a=c;c=t;t=a;a=c;c=t;if (b c)if (b=cb=c t=b;b=c;c=t;t=b;b=c;c=t;Console.WriteLine(“Console.Wri
12、teLine(“排序结果为排序结果为排序结果为排序结果为:0,1,2”,a,b,c);0,1,2”,a,b,c);2ifelse语句语句语法:语法:if(表达式表达式)语句块语句块1;else语句块语句块2;说说明明:如如果果表表达达式式的的值值为为true,则则执执行行if语语句句所所控控制制的的语语句句块块1;如如果果表表达达式式的的值值为为false,则则执执行行else语语句句所所控控制制的的语句块语句块2。例:输入一个数,对该数进行四舍五入。例:输入一个数,对该数进行四舍五入。usingSystem;classValuestaticvoidMain()Console.WriteLin
13、e(“请输入请输入a的值:的值:”);doublea=double.Parse(Console.ReadLine();intb;if(a-(int)a=0.5)b=(int)a+1;elseb=(int)a;Console.WriteLine(0进进行行四四舍舍五五入入后后的的值值为为:1,a,b);在在ifelse语句中可以语句中可以嵌套嵌套使用多层使用多层ifelse语句,如:语句,如:if(表达式表达式1)if(表达式表达式2)if(表达式表达式3)语句语句1;else语句语句2;else语句语句3;else语句语句4;在在使使用用这这种种结结构构时时,要要注注意意else和和if的的配
14、配对对关关系系,其其原原则则是是:从从第第1个个else开开始始,一一个个else总总和和它它上上面面离离它它最最近近的的可可配配对对的的if配对。配对。例:例:inta=int.Parse(Console.ReadLine();if(a0)if(a100)a=a-50;elsea=a+10;/这个这个else与与if(a100)相配相配elsea=-a;/这个这个else与与if(a0)相配相配Console.WriteLine(“a=”,a);练习:练习:1.若若intm,n,r;则以下正确的是(则以下正确的是()Aif(mn)r-;Bif(m=n)r-;Cif(!m)r-;Dif(m=n
15、)r-;2.程序改错。程序改错。if(x=1)y+=5;else;y+=10;思考与练习思考与练习 1.1.为铁路编写计算运费的程序。假设铁路托运行李,规定每张为铁路编写计算运费的程序。假设铁路托运行李,规定每张客票托运费的计算方法是:客票托运费的计算方法是:行李重量不超过行李重量不超过 50 kg 50 kg时,每千克时,每千克0.250.25元;超过元;超过 50 kg 50 kg而不超而不超过过 100 kg 100 kg时,其超过部分每千克时,其超过部分每千克0.350.35元;超过元;超过 100 kg 100 kg时,其超过时,其超过部分每千克部分每千克0.450.45元。元。(编
16、写完整的程序,上机实现)(编写完整的程序,上机实现)分析:托运费的分段函数是什么?分析:托运费的分段函数是什么?答:设行李重量为答:设行李重量为w公斤,应付托运费为公斤,应付托运费为x元,则托运费的分段函数元,则托运费的分段函数是:是:(1)w=50时,时,x=0.25*w(2)50w100时,时,x=0.25*50+0.35*50+0.45*(w-100)double w,x=0;double w,x=0;Console.Write(“Console.Write(“请输入重量请输入重量”);”);w=double.Parse(Console.ReadLine()w=double.Parse(
17、Console.ReadLine()ifif(w=50)(w 50&w 50&w 100)if(w100)x=0.25*50+0.35*50+0.45*(w-100)x=0.25*50+0.35*50+0.45*(w-100)Console.WriteLine(“Console.WriteLine(“运费为运费为0”,x);0”,x);/不能写成:不能写成:50w=1003elseif语句语句elseif语句是语句是if语句和语句和ifelse语句的组合,其一般形式如下:语句的组合,其一般形式如下:if(表达式表达式1)语句语句1;elseif(表达式表达式2)语句语句2;elseif(表达式
18、表达式n-1)语句语句n-1;else语句语句n;例:编写一个实现如下函数值的程序例:编写一个实现如下函数值的程序-1,x0usingSystem;classTeststaticvoidMain()Console.Write(“请输入请输入x的值的值:);doublex=double.Parse(Console.ReadLine();inty;if(x0)y=1;elseif(x=0)y=0;elsey=-1;Console.WrteLine(“Y=0“,y);n n 【案例【案例7】计算运费】计算运费n n 在进行货物托运时,按货物重量的在进行货物托运时,按货物重量的不同有不同的计费方式,其
19、计费公式如不同有不同的计费方式,其计费公式如下:下:n n 其中,其中,n为货物重量(单位为公斤),为货物重量(单位为公斤),y为应付的运费(单位为元为应付的运费(单位为元/公斤)。本案例公斤)。本案例中将实现对运费的计算,效果如图中将实现对运费的计算,效果如图2-2-13所所示。示。n n 在本例的实现过程中,将学习使用在本例的实现过程中,将学习使用switch语语句的应用。案例的实现方法如下。句的应用。案例的实现方法如下。n n 1 1创建项目创建项目创建项目创建项目n n 2 2界面设计界面设计界面设计界面设计n n 3 3代码编辑代码编辑代码编辑代码编辑n n(1 1)算法流程分析)算
20、法流程分析)算法流程分析)算法流程分析n n(2 2)算法代码实现)算法代码实现)算法代码实现)算法代码实现4.3.3 4.3.3 分支语句分支语句格式:格式:switch(表达式)表达式)case常量表达式常量表达式1:语句语句1;break;case常量表达式常量表达式2:语句语句2;break;default:语句语句n;break;注意:注意:C#要求每个要求每个case后使用后使用break语句或跳转语句语句或跳转语句goto。所有。所有常量表达式的值不能相同。常量表达式的值不能相同。编编程程:查查询询学学生生姓姓名名,输输入入一一个个字字符符,如如输输入入“k”时时,显显示示Kat
21、e;输输入入“m”时时,显显示示Mary;输输入入“r”时时,显显示示Rose;输输入入“T”时时,显显示示Tom;输入其他字符时,显示输入其他字符时,显示OtherStudents。Console.Write(“Enteracharacter:);charName=(char)Console.Read();switch(Name)casek:Console.WriteLine(Kate.);break;casem:Console.WriteLine(Mary.);break;caser:Console.WriteLine(Rose.);break;caseT:Console.WriteLin
22、e(Tom.);break;default:Console.WriteLine(Otherstudents.);break;例:例:usingSystem;classDemopublicstaticvoidMain()Console.Write(enteri=);inti=int.Parse(Console.ReadLine();switch(i)case1:case2:case3:Console.WriteLine(“iis1,2or3.);break;case4:Console.WriteLine(iis4.);break;注意:在注意:在C#中,两个或更多的中,两个或更多的case语句可
23、以共用同一程序代码语句可以共用同一程序代码:4.4循环结构循环结构循环循环是指在指定的条件下多次是指在指定的条件下多次重复执行重复执行一组语句。被重复一组语句。被重复执行的一组语句称为执行的一组语句称为循环体循环体。采用循环结构可以解决一些按一定规则重复执行的问题。采用循环结构可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等。绩,如求平均分、不及格人数等。4.4.1循环结构的概念循环结构的概念循环结构按其循环体是否嵌套从属的子循环结构,可分为循环结构按其循环体是否嵌套从
24、属的子循环结构,可分为单循环结构单循环结构和和多重循环结构多重循环结构。n n 【案例【案例8】成绩统计】成绩统计n n 本例将编写一个控制台程序,程序本例将编写一个控制台程序,程序运行时提示输入学生成绩,能够对多个运行时提示输入学生成绩,能够对多个学生的成绩进行统计分析,计算各个等学生的成绩进行统计分析,计算各个等级的人数。程序效果如图级的人数。程序效果如图2-3-2所示。所示。图图2-3-2成绩统计成绩统计 n n 在本例的实现过程中,将学习在本例的实现过程中,将学习While循环语句的应用。循环语句的应用。n n 1 1创建项目创建项目创建项目创建项目n n 2 2代码编辑代码编辑代码编
25、辑代码编辑n n(1 1)算法流程分析)算法流程分析)算法流程分析)算法流程分析n n(2 2)算法代码实现)算法代码实现)算法代码实现)算法代码实现4.4.2while语句和语句和dowhile语句语句1while语句语句语法格式:语法格式:while(条件表达式条件表达式)循环体循环体usingSystem;classSumwstaticvoidMain()intn=1;while(n6)Console.WriteLine(“n=0”,n);n+;例例:写出下列程序的运行结果。写出下列程序的运行结果。结果结果:例例:使用使用while语句,编程计算语句,编程计算1+2+1000。using
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pp 第四 结构 程序设计
限制150内