第二讲 C#程序设计基础(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编 课程网站:http://www.zjcourse.com/csharp 第二讲 C#程序设计基础(一) 《C#程序设计》
目录 CONTENTS 学习目标 学习内容 课堂实践
本讲学习目标 AIMS 1 知识目标 理解常量和变量的含义 掌握数据的基本类型及转换 熟练掌握条件判断语句的使用 能力目标 能够应用控制语句进行简单编程 2
本讲学习目标 AIMS 1 掌握常量与变量的定义方法 2 掌握常用的数据类型及其转换 3 掌握运算符和表达式的使用 4 掌握条件判断语句的使用方法
变量与常量 CONTENT 变量 常量 double x, y; const double PI = 3.14159;
数据类型 整数类型 实数类型 字符类型 布尔类型 CONTENT int a=10; float x = 20.5f; decimal y = 205.25m; 字符类型 char ch1='a'; 布尔类型 x=true 或x=false
数据类型的转换—隐式转换 CONTENT 数据转换分为隐式转换和显示转换两种。隐式转换就是系统默认的、不需要加以声明也不需要编写代码就可以进行的转换。 如: int i=10; long x=i;
数据类型的转换—显式转换 CONTENT 显式类型转换,又叫强制类型转换。如: int i=(int)s;
Convert 类的使用 CONTENT Convert类位于命名空间System,它提供了一整套方法用于将一个基本数据类型转换为另一个基本数据类型,返回与指定类型的值等效的类型。 int x; string s = "123"; x = Convert.ToInt32(s);
Parse方法的使用 CONTENT Parse方法可以将特定格式的String转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string。Parse方法的使用格式为: 数值类型名称.Parse(字符串型表达式) 例如: int x=int.Parse("123");
ToString方法的使用 CONTENT ToString方法可将其他数据类型的变量值转换为字符串类型。ToString方法的使用格式为: 例如: int x=123; string s=x.ToString( );
学习任务:路程计算程序设计 CONTENT v = Convert.ToSingle(txtVelocity.Text); 拓展:如何将速度文 本框和时间文本框中 值转换为double型。 关键代码 float s, v, t; v = Convert.ToSingle(txtVelocity.Text); t = Convert.ToSingle(txtTime.Text); s = v * t; txtDisplacement.Text = s.ToString();
运算符 与表达式 CONTENT (1)程序设计语言中的运算符是指数据间进行运算的符号。 (2)参与运算的数据称为操作数。 (3)把运算符和操作数按照一定规则连接起来就构成了表达式。 (4)操作符指明作用于操作数的操作方式,操作数可以是一个常量、变量,或者是另一个表达式。
运算符 CONTENT 根据所作用的操作数个数,运算符可以分为3类。 (1)一元运算符:仅作用于一个操作数的运算符,如++运算符,一元运算符又可分为前缀运算符和后缀运算符。例如,++i 、i++。 (2)二元运算符:作用于两个操作数之间的运算符,例如“a+b” 。 (3)三元运算符:作用于三个操作数的运算符。C#中仅有一个三元运算符,即“? :”。 根据运算类型,常用的运算符可以分为算术运算符、赋值运算符、关系运算符、逻辑运算符。
运算符 CONTENT 根据所作用的操作数个数,运算符可以分为3类。 (1)一元运算符:仅作用于一个操作数的运算符,如++运算符,一元运算符又可分为前缀运算符和后缀运算符。例如,++i 、i++。 (2)二元运算符:作用于两个操作数之间的运算符,例如“a+b” 。 (3)三元运算符:作用于三个操作数的运算符。C#中仅有一个三元运算符,即“? :”。 根据运算类型,常用的运算符可以分为算术运算符、赋值运算符、关系运算符、逻辑运算符。
运算符 CONTENT 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 +、-、*、/、%、++、-- =、+=、-=、*=、/=、%= 关系运算符 >、<、>=、<=、==、!= 逻辑运算符 &&、||、! 条件运算符 max =a>b?a:b;
运算符 CONTENT
表达式 CONTENT (1)表达式是由运算符和运算对象(操作数)组成的有意义的运算式子,其中的运算符就是具有运算功能的符号,运算对象是指常量、变量和函数等操作数。 (2)C#语言中有多种表达式和前述的运算符相对应,包括赋值表达式、算术表达式、关系表达式、逻辑表达式和条件表达式等;也可以通过使用多个运算符、方法调用以及类型转换等建立复杂的表达式。
学习任务:时间转换程序设计 CONTENT 时间转换程序的设计思想是输入以秒为单位的整数时间后将其转换为小时、分钟和秒的形式。转换过程如下:秒数除以3600后的整数商为小时数,其余数除以60后的整数商为分钟数,最后的余数则为秒数。
学习任务:时间转换程序设计 CONTENT 关键代码 int totalTime, hourNumber, minNumber, secNumber; totalTime = Convert.ToInt32(txtTotalTime.Text); hourNumber = totalTime / 3600; //计算小时数 minNumber = (totalTime % 3600) / 60; //计算分钟数 secNumber = (totalTime % 3600) % 60; //计算秒数 txtHour.Text = hourNumber.ToString(); txtMinute.Text = minNumber.ToString(); txtSecond.Text = secNumber.ToString(); 课堂拓展 建立一个时间转换程序,以小时、分钟和 秒的方式输入,然后将其转换为以秒为单 位的时间。
条件判断语句 CONTENT (1)if语句 if (a==b) { b=a++; } if (a > b) { c = a; } 表达式 语 句 false true if (a > b) { c = a; } else c = b; (2)if…else 语句
条件判断语句 CONTENT (3)if…else if…语句
条件判断语句 CONTENT (4)switch语句
学习任务:数字排序程序设计 CONTENT
学习任务:数字排序程序设计 CONTENT 关键代码 double number1, number2, number3; number1 = double.Parse(txtNumber1.Text); number2 = double.Parse(txtNumber2.Text); number3 = double.Parse(txtNumber3.Text); if(number1>number2) { if(number2>number3) //此时关系为number3<number2<number1 txtResult.Text = number3.ToString() + "," + number2.ToString() + "," + number1.ToString();
学习任务:数字排序程序设计 CONTENT 关键代码 } else //此时关系为number2<number1,number2<number1 { if(number1 >number3) txtResult.Text = number2.ToString() + "," + number3.ToString() + "," + number1.ToString(); else txtResult.Text = number2.ToString() + "," + number1.ToString() + "," + number3.ToString();
学习任务:数字排序程序设计 CONTENT 关键代码 } else //此时关系为number1<number2 { if (number2 < number3) txtResult.Text = number1.ToString() + "," + number2.ToString() + "," + number3.ToString(); else //此时关系为number1<number2,number3<number2
学习任务:数字排序程序设计 CONTENT 关键代码 拓展:分别采用if语句和if…else if…语句完成本学习任务 { if (number1 > number3) txtResult.Text = number3.ToString() + "," + number1.ToString() + "," + number2.ToString(); } else txtResult.Text = number1.ToString() + "," + number3.ToString() + "," + number2.ToString(); 拓展:分别采用if语句和if…else if…语句完成本学习任务
学习任务:学生成绩评定程序设计 CONTENT
学习任务:学生成绩评定程序设计 CONTENT 关键代码 string result; //用于存放评定结果 float score = float.Parse(txtMark.Text); int iscore = (int)score; iscore = iscore / 10; switch (iscore) { case 10: case 9: result = "优秀"; break; case 8: result = "良好"; case 7: result = "中等"; break; case 6: result = "及格"; default: result = "不及格"; } txtResult.Text = result; 拓展:对于输入的成绩大于100分或小于0分的情况进行判断并给出提示信息“输入错误”。
课堂实践 PRACTICE 题目一:设计一个Windows窗体应用程序,要求将一个圆的半径作为输入项,单击【提交】按钮后在两个文本框中分别显示这个圆的周长和面积。 题目二:设计一个Windows窗体应用程序,用三元运算符(? :)把最大数找出来。 题目三:设计一个Windows窗体应用程序,计算电路图中的电流I,已知电路图中电阻R1=200 Q、R2=300Q、R3=600Q。R2与R3并联后,再与R1串联。 根据欧姆定律:R=Rl+R3*R2/(R3+R2),I=U/R。 通过文本框txtInput输入电压U,单击按钮(cmdStart)开始运算,在文本框txtOutput中输出计算的电流I。
课堂实践 PRACTICE 题目四:设计一个Windows窗体应用程序,通过在文本框中输入年后,单击【提交】按钮显示该年是否为闰年。 判断某一年是否为闰年的条件是符合下面的二者之一: (1)能被4整除,但不能被100整除 (2)能被400整除 题目五:设计一个Windows窗体应用程序,求方程ax2+bx+c=0的根,要求分别从三个文本框中输入a、b、c的值,单击【提交】按钮后显示方程的解。 求解方程的根分以下几种情况进行讨论: (1)b2-4ac>0,有两个不相等的实根。 (2)b2-4ac=0,有两个相等的实根。 (3)b2-4ac<0,没有实根。 (4)a=0,不是二次方程。
课堂实践 PRACTICE 题目六:设计一个Windows窗体应用程序,要求输入成绩计算某个学生奖学金的等级,以三门功课成绩为评奖依据。符合条件者只能获得高的那一项奖学金。标准如下: 符合下列条件之一的可获一等奖: (1) 平均分不低于90分者。 (2) 有两门成绩不低于95分,且第三门功课成绩不低于70分者。 符合下列条件之一的可获二等奖: (1) 平均分大于85分者。 (2) 有一门成绩不低于95分,且另两门功课成绩不低于78分者。 各门功课成绩不低于80分者可获三等奖学金。
THANK YOU 更多资源,请访问课程网站:http://www.zjcourse.com/csharp