




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C#程序设计第1章认识Visual C#本章任务了解Microsoft Visual Studio2008;能编写简单控制台应用程序;能编写简单Windows应用程序 ;任务 1.1 Microsoft Visual tudio2008的安装安装Microsoft Visual Studio2008软件。任务 1.1 Microsoft Visual tudio2008的安装(1)将Microsoft Visual Studio2008软件安装光盘放入光驱,系统将自动启动安装程序(2)单击“安装Visual Studio2008” 任务 1.1 Microsoft Visual tudio20
2、08的安装(3)加载组件完成后,单击对话框中的“下一步”按钮 任务 1.1 Microsoft Visual tudio2008的安装(4)选择“我已阅读并接受许可条款”单选按钮,并在“名称”文本框中输入用户姓名,然后单击“下一步”按钮 任务 1.1 Microsoft Visual tudio2008的安装(5)选择需要安装的功能单选按钮,并且确定安装目标文件夹 任务 1.1 Microsoft Visual tudio2008的安装(6)单击“安装”按钮,进入了安装程序的安装页 任务 1.1 Microsoft Visual tudio2008的安装(7)安装完成后,打开对话框,单击“完成
3、”按钮,弹出“安装程序”对话框 任务 1.1 Microsoft Visual tudio2008的安装第一次启动Visual Studio2008,选择“Visual C#开发设置”后单击“启动Visual Studio” 1.1.1 Microsoft Visual Studio2008集成开发环境 1什么是.NET2Microsoft Visual Studio2008的安装环境3Microsoft Visual Studio2008集成开发环境介绍4使用Microsoft Visual Studio2008集成开发环境开发WinForm应用程序1什么是.NET(1).NET平台(2)V
4、isualC#.NET的特点语法更简单;保留了C+的强大功能;快速应用开发功能;语言的自由性;强大的Web服务器控件;支持跨平台;与XML相融合。 2Microsoft Visual Studio2008的安装环境(1)支持的操作系统Microsoft Windows XPMicrosoft Windows Server 2003Windows Vista(2)硬件要求最低要求:1.6 G Hz CPU、384 MB RAM、1024x768 显示器、5400 RPM(转/分钟)硬盘。建议配置:2.2 GHz 或更快的 CPU、1024 MB 或更大容量的 RAM、1280 x1024 显示器
5、、7200 RPM或更高转速的硬盘Windows Vista 上要求:2.4 GHz CPU、768 MB RAM硬盘的空间至少4G 。 3Microsoft Visual Studio2008集成开发环境介绍(1)启动C#在“起始页”对话框选中“创建:项目” 在弹出的“新建项目”对话框的“项目类型”框中选择“Visual C#”下Windows项在“模板”框中选择“Windows窗体应用程序” 在“名称”中输入要新建的项目文件名称在“位置”处通过“浏览”按钮设置文件存放位置单击“确定” 3Microsoft Visual Studio2008集成开发环境介绍(2)VisualStudio.N
6、ET开发环境菜单栏 工具栏 “工具箱”面板“属性”面板 解决方案资源管理器 4使用Microsoft Visual Studio2008集成开发环境开发WinForm应用程序学生信息管理系统 任务1.2 编写简单的控制台输出程序利用控制台输出“C_SHARP欢迎你!”任务解决方案 (1)选择“开始”“程序”“Microsoft Visual Studio 2008”“Microsoft Visual Studio 2008”命令 (2)启动Visual Studio2008开发环境之后,在菜单栏中选择“文件”“新建”“项目”命令 (3)选择“控制台应用程序”,在名称框中输入“Welcome”,
7、然后单击“确定”按钮,完成控制台应用程序的创建 (4)输入代码(5)单击“调试”|“启动调试”,或按F5键运行输入代码using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Welcome class Program static void Main(string args) Console.WriteLine(C_SHARP欢迎你!); Console.ReadKey(); 输出C_SHARP欢迎你!语句等待用户用键盘输入任何语句,退出程序 C#工程项目的创建、编译
8、和执行1C#工程项目的创建2编写代码3项目编译和运行程序(1)编译程序(2)运行程序编写代码注意以下几点 (1)C#源文件#源文件以.cs作为扩展名 ,可执行文件(.exe文件)后可以脱离VisualStudio.NET环境直接运行 (2)C#基本语法语句以一个分号“;”结尾 ,结构语句用花括号“.”组合为语句块 (3)注释行注释行用于帮助源程序的阅读,计算机在程序运行时不执行注释行,以“/”开始的注释叫“单行注释” ,多行注释以“/*”开始至“*/”结束 (4)Main()方法Main()方法是程序的入口点,也是出口点。 输入和输出该语句是一句输出语句,其目的是要将字符串“C_SHARP欢迎
9、你!”显示到屏幕上 Console是程序集System命名空间下的一个类 WriteLine()则是Console类的一个用于将字符串信息显示到屏幕上的方法 Console.WriteLine(C_SHARP欢迎你!);类的常用方法名称接受参数返回值类型用途Read无int从输入流读入下一个字符,至换行符结束。ReadKey无ConsoleKeyInfo从输入流读入一个字符。ReadLine无string从输入流读入一行文本,至换行符结束。Writestringvoid输出一行文本。WriteLinestringvoid输出一行文本,并在结尾处自动换行。Write和WriteLine的常用参数
10、 Write和WriteLine可以接受多种类型的参数,包括字符串、字符、整数、浮点数等Write和WriteLine也可以对输入的参数进行格式化输出 Console.Write(123); /输出整数Console.WriteLine(123); /输出整数并换行Console.WriteLine(15.25); /输出浮点数并换行格式化输出 将形如0、1的指代标记包含在方法的参数中,其后的变量列表则分别用以取代这些标记格式化时最多只能接受4个参数(即指代标记最大为3) string s=MikeConsole.Write(Hello,0,s);Console.WriteLine(Proje
11、ct:0,Language:1,Version:2,Console,C#,2008);输出为:Hello,Mike输出为:Project:Console,Language:C#,Version:2008Console.Read()方法 Read方法可以从标准输入流中读取下一个字符,且只能读取一个字符如果输入的是数字字符时,要注意输入的是数字字符的ASCII码值 static void Main(string args) int i; i = System.Console.Read(); System.Console.WriteLine(i); 当输入“1”时,输出的值是49 Console.R
12、eadLine()方法 ReadLine方法可以从标准输入流读取下一行字符 static void Main(string args) string s; System.Console.WriteLine(请输入姓名:); s =System.Console.ReadLine(); System.Console.WriteLine(您的输入的姓名是:0,s); Console.ReadKey()方法 ReadKey方法可以获取用户按下的下一个字符或功能键在程序的最后加上调用该方法的语句,使程序执行到该语句时暂停 static void Main(string args) Console.Wri
13、teLine(C_SHARP欢迎你!); Console.ReadKey(); 当用户从键盘上输入字符时退出任务1.3 制作一个欢迎界面在文本框中输入姓名单击“确定”命令按钮在文本框中显示欢迎语句任务解决方案 (1)选择“文件”“新建”“项目”命令(2)选择Windows项目类型,选择Windows应用程序,输入项目的名称“Welcom_w”后,点击“确定”按钮(3)选择Label控件、TextBox控件和Button控件并将其放置在窗体Form1上(4)修改Label1控件和Button1控件的属性值(5)双击按钮Button1,编辑代码(6)运行程序代码分析 private void bu
14、tton1_Click(object sender, EventArgs e) textBox2.Text = C#世界欢迎你-“ + textBox1.Text; 使用文本框Text属性输出“+”作用将两个字符串连接起来。using语句using语句用于导入命名空间 ,“using System;”语句表示可以直接使用System命名空间内的资源注意不能写成“using System.Console;” Console是命名空间System下的类,不是命名空间 若不用using System语句,任务1.2中的输出语句则不能省略System ,应修改为 static void Main(st
15、ring args) System . Console.WriteLine(C_SHARP欢迎你!);System . Console.ReadKey(); 控件、事件的使用 窗体及控件都是对象,因此可以直接定义其外观属性、行为方法以及编写与用户交互的事件代码,以满足不同需求当用户单击鼠标或按下按键,程序可以被激活并且做一些事情 例如:程序员只需要对用户单击“确定”命令按钮定义执行的操作,即为Button按钮定义了一个Click事件的响应方法button1_Click()。总结什么是.NET ?控制台程序与Windows应用程序如何创建 ?谢 谢!C#程序设计第2章C#编程基础本章任务能正确使
16、用C#的常量与变量能正确读取数据能正确格式化输出数据能正确使用算术运算符及表达式能正确使用逻辑运算符及表达式能按照程序编写规范书写程序代码任务 2.1 制作简单加法计算器在文本框中输入加数和被加数单击“计算”按钮后显示加法运算结果 单击“关闭”按钮后退出任务 2.1 制作简单加法计算器处理“计算”按钮的 Click 事件处理“关闭”按钮的 Click 事件分四步实现:任务解决方案 1.创建名为summator的Windows项目2.选择Label、Textbox和Button等控件放到窗体的适当位置,并设置控件属性3.编写应用程序代码4.测试程序表2.1 属性表控件属性设置控件属性设置Form
17、1NamefrmsumLabel4NamelblResult2TextText简单的加法计算器Textbox1NametxtSum1Label1NamelblSum1Textbox2NametxtSum2Text被加数:Label2NamelblSum2Button1NamebtncalcText加数:Text计算Label3NamelblResult1Button2NamebtnCloseText相加结果为:Text关闭代码双击“计算”按钮,在其Click事件的响应方法btncalc _Click()中,插入下列代码:private void btncalc _Click(object se
18、nder, EventArgs e) int op1; int op2; int result; op1 = Int32.Parse(txtSum1.Text); op2 = Int32.Parse(txtSum2.Text); result = op1 + op2; lblResult2.Text = result.ToString();定义3个整型变量op1,op2和result 将字符型的文本框的值转换为32位整数后赋给整型变量将结果result的值转换为字符型后赋值给标签控件Text属性代码双击“关闭”按钮,在其Click事件的响应方法btnClose _Click()中,插入下列代码
19、:private void btnClose _Click(object sender, EventArgs e) this.Close();关闭窗体 1.变量的定义用户的角度在程序执行过程中值会发生改变的数据当需要保存特定的值或计算结果时,需要用到变量计算机的角度变量代表存储地址变量的类型决定了存储在变量中的数值的类型变量有3个属性存储变量值的存储位置存储位置中数据的数据类型用来引用该存储位置的名称(1)变量x=100 x=50 (3)变量的命名规范有利于程序的设计和维护使名称具有一定的意义,避免冗长 Pascal表示法Camal表示法匈牙利表示法等对类名、类的属性、类的方法采用Pascal
20、命名法,Pascal表示法将标识符的首字母和后面连接的每个单词的首字母都大写 例如:BackColor 、ForeColor对变量、对象采用Camal命名法,也叫驼峰命名法,Camal表示法以小写字母开头,以后的单词都以大写字母开头。例如:redValue、myBook、sizeOfChar匈牙利表示法中变量名由变量的属性、类型及对象的描述三部分组成。例如:iMyCar、cMyCar2.变量的声明由于变量表示一个值在内存中的存储地址,因此在使用变量前必须先声明变量名和数据类型声明变量的一般格式为:数据类型 变量名表;例如:在任务2.1中使用的语句。int op1;int op2;int res
21、ult;3.变量的赋值变量在使用前必须赋值,赋值运算符“=”可以将运算符右侧的值赋予左侧的变量赋值运算要求赋值号“=”右边和左边的数据类型完全一致,否则会编译出错。还可以在变量声明的同时给变量赋初值 S=100; op1 = Int32.Parse(txtSum1.Text);int b=100;string c1=abc;4.变量的作用域变量的作用域,也叫变量的生命周期变量只有在它的生命周期内才可以被访问,超过生命周期,任何对它的访问和使用都会产生编译错误变量的作用域一般由变量声明的位置决定,在作用域内声明的变量对于作用域外的代码是不可见的。变量的作用域大致包括以下几种:静态变量作用域实例变
22、量作用域方法参数作用域局部变量作用域异常处理作用域public class DomainTest private int a; static int b; public int GetA() return a; public void SetA( int c ) int d; public void TryFunction() try catch (Exception e) 变量a的作用域为实例变量作用域变量b的作用域为静态变量作用域 变量c的作用域为方法参数作用域变量d的作用域为局部变量作用域变量e的作用域为异常处理作用域 静态变量作用域:静态变量使用static修饰符声明,它的生存期为整个
23、源程序。实例变量作用域:当一个类的实例被创建时,其实例成员变量的生命周期开始,当该实例不再被使用,实例所占内存空间将被释放时,实例成员变量的生命周期结束。方法参数作用域:方法参数变量的其作用域仅限于该方法内,方法被调用时,它的生命周期开始,方法执行完毕,它的生命周期结束。局部变量作用域:局部变量作用域仅限于它被定义的语句块内,当该语句块结束后,其生命周期结束。异常处理参数作用域:异常处理参数变量的生命周期只在错误处理语句块内(即catch语块内)存在。注意:变量只有在被声明后才有效,如果在代码块的结尾处声明了一个变量,由于没有任何代码可以访问它,它将没有任何作用。常量 (1)常量的定义:常量即
24、值不会发生改变的量 常量分为直接常量和符号常量直接常量是指在程序中直接给出数值或字符串的常量,例如:12345、“name”。符号常量是经过声明的常量,包括常量的名称和它的值。声明常量的一般格式如下:const 数据类型 表达式例如:const int yearmonth=12;const double conpi=3.1415926;声明了int型常量yarmonth声明了double型常量conpi注意常量不能像变量一样更改它的值或给它们赋新值。 const int yearmonth=12;yearmonth=22; /错误const double conpi=3.1415926;con
25、pi=3.14; /错误但是利用表达式形式声明常量是允许的。 const int c1=10;const int c2=c1+100;与变量的声明语句类似还可以在const前加上访问标识符,用于规定常量的作用域,格式如下:访问标识符 const 数据类型 表达式 private const int WordDays=200; /私有常量 public const int DaysInYear=365; /公有常量(2)使用常量的优点常量用易于理解的名称替代了含义不明确的数字或字符串,使程序更易于阅读常量使程序更易于修改常量更易于避免程序出现错误。如果要给程序中的常量再次赋值,编译器立刻就会报告
26、错误2.1.2基本数据类型1.值类型值类型主要由简单类型、枚举类型和结构类型这三类组成 种类描述值类型简单类型(Simple types)有符号整数:sbyte, short, int, long无符号整数:byte, ushort, uint, ulongUnicode 字符:charIEEE 浮点数:float, double十进制数:decimal布尔值:bool枚举类型(Enum type)enum E .结构类型(Struct type)struct S .(1)整型类型描述位数数据类型取值范围有符号整数8sbyte12812716short32 76832 76732int2 14
27、7 483 6482 147 483 64764long9 223 372 036 854 775 8089 223 372 036 854 775 807无符号整数8byte025516ushort065 53532uint04 294 967 29564ulong018 446 744 073 709 551 615C#定义了8种整型变量不同整型类型数据在内存中占用的内存位数各不相同 对所有整型类型变量赋值都默认是十进制数要使用十六进制的值,则需要添加0 x前缀 一个整数没有任何显示的声明,则该变量默认为int类型若将数据指定为其他整数类型,则必须加上后缀 (2)浮点类型描述位数数据类型取
28、值范围单精度浮点型32float1.51045 到3.41038, 7位精度双精度浮点型64double5.010324 1.710308,15位精度C#支持2种浮点类型:单精度(float)和双精度(double),它们的差别在于取值范围和精度不同 用F表示float,M表示decimal,D表示double,如果没有标志字符则默认为double类型例2.1浮点数相加。在任务2.1的基础上,将操作数的数据类型由整型改为浮点型,实现浮点数相加将op1、op2、result三个变量改为单精度浮点型将txtSum1.Text数据类型转为单精度浮点型修改应用程序代码在窗体设计器中双击“计算”按钮,将
29、其Click事件处理程序修改如下:private void btncalc _Click(object sender, EventArgs e) float op1,op2, result; op1 = Single.Parse(txtSum1.Text); op2 = Single.Parse(txtSum2.Text); result = op1 + op2; lblResult2.Text = result.ToString();测试程序定义浮点型变量将文本框Text属性转换成浮点型将浮点型转换成字符串(3)小数类型描述位数数据类型取值范围小数类型128decimal1.0 10287.
30、9 1028, 29位有效位数据类型不仅可以是浮点类型,还可以是小数类型 decimal decimal类型适合金融和货币方面的运算decimal是一种高精度、128位数据类型它所表示的范围从大约1.010287.91028的28位至29位有效数字,运算结果准确到28个小数位 Decimal类型的取值范围比double类型的范围要小的多,但它更精确,十进制小数数字可以用decimal类型来表示。例2.2 修改数据类型为decimal型将上例程序中的数据类型由float型修改为decimal型。修改应用程序代码在窗体设计器中双击“计算”按钮,将其Click事件处理程序修改如下:private v
31、oid btncalc _Click(object sender, EventArgs e) decimal op1,op2, result; op1 = decimal.Parse(txtSum1.Text); op2 = decimal.Parse(txtSum2.Text); result = op1 + op2; lblResult2.Text = result.ToString();测试程序定义decimal型变量将文本框Text属性转换成decimal型将 decimal型转换成字符串(4)字符类型字符类型按照国际上公认的标准,采用Unicode字符集 Unicode 是一种国际字
32、符集,可表示多个国家的字符 字符变量以无符号16位(2个字节)数字的形式存储,取值范围为0到65535 在 C# 中可以直接在一个字符型变量中存储一个汉字。给字符变量赋值可以使用单引号,也可以使用字符的ASCII码 例如:char c= A ;或char c= (char)65;字符类型描述位数数据类型取值范围字符类型16char在065535范围内以双字节编码的任意符号转义符转义序列字符名称Unicode 编码单引号0 x0027双引号0 x0022反斜杠0 x005C0空0 x0000a警报0 x0007b退格符0 x0008f换页符0 x000Cn换行符0 x000Ar回车0 x000D
33、t水平制表符0 x0009v垂直制表符0 x000B例如:向控制台输出一个单引号字符。char c=;Console.WriteLine(0,c);或char c=x0027;Console.WriteLine(0,c);通过转义符或Unicode表示法指代特殊的控制字符(5)布尔型布尔型用来表示“真”或“假”这两个概念真”和“假”分别采用true和false两个值来表示默认值是false,布尔型和其他类型之间不能互相转换。例如:bool x=1 /错误。只能写成x=true或x=false(6)结构类型在程序执行过程中,往往需要使用更为复杂的数据结构。编写“学生信息管理系统”,需要对学生信息
34、处理,学生信息包括学号、姓名、性别、年龄等C#中提供了结构类型以解决这个问题结构类型一般定义形式为:struct Student public int Id; public string Name; public char Sex; public int Age; public int Score; public string Address;struct 结构名结构值表;例如结构类型可以由不同类型的数据组成Student结构体包含了6个简单数据类型变量这6个变量称为结构的成员 访问成员需要使用成员访问运算符“.” 格式如下:结构类型变量. 成员变量例如Student std; std.Id=
35、20081215;std.Nmae=王华;std.Sex=女;std.Age=21;std.Score=435;std.Address=合肥;Console.WriteLine(学号:+std.Id);结构类型的成员数据类型没有限制,它可以是简单数据类型、复杂数据类型,甚至是结构类型。Student结构类型嵌套一个结构类型的Address成员。struct Studentpublic int ID;public string Name;public string Address public string city; public string street; public int no; 2
36、.引用类型C#中的另一类数据类型是引用类型引用类型存储的是数据的地址,而不是具体的数据C#提供了类类型、字符串类型、数组类型、接口类型、委托类型等几种引用类型字符串是由作为一个整体处理的一系列字符组成,字符串可以包含英文字母、汉字、数字及符号等,定界符用双引号表示C#中字符串可分为规则字符串和逐字字符串规则字符串它可以包括简单转义序列、十六进制转义序列和 Unicode 转义序列。定义规则字符串:String a=hello,world; / hello,world使用转义符:String b = hello t world; / hello world声明字符串:String c=hello
37、,world; /hello,world 2.1.3数据类型转换1.隐式数据转换隐式数据转换就是系统默认的、不需要加以声明在隐式转换过程中,编译器无需对转换进行详细检查就能够安全地执行转换,转换过程中数据一般不会丢失。C#中可以进行的隐式数值转换见下表 隐式数值转换 转换前数据类型转换后前数据类型sbyteshort、int、long、float、double 或 decimalbyteshort、ushort、int、uint、long、ulong、float、double 或 decimalshortint、long、float、double 或 decimalushortint、uint
38、、long、ulong、float、double 或 decimalintlong、float、double 或 decimaluintlong、ulong、float、double 或 decimallongfloat、double 或 decimalulongfloat、double 或 decimalcharushort、int、uint、long、ulong、float、double 或 decimalfloatdouble例2.3 编写一个简单的控制台程序,实现隐式数据转换并输出。 class Program static void Main(string args) char a
39、= A; float b = 99.9F; int c; c = a; Console.WriteLine(c); float d = b+c; Console.WriteLine(d); 2. 显式数据转换转换前数据类型转换后前数据类型sbytebyte、ushort、uint、ulong或charbytesbyte或charshortsbyte、byte、ushort、uint、ulong或charushortsbyte、byte、short或char(续表) 转换前数据类型转换后前数据类型intsbyte、byte、short、ushort、uint、ulong或charuintsbyt
40、e、byte、short、ushort、int或charlongsbyte、byte、short、ushort、int、uint、ulong或charulongsbyte、byte、short、ushort、int、uint、long或charcharsbyte、byte或shortfloatsbyte、byte、short、ushort、int、uint、long、ulong、char或decimaldoublesbyte、byte、short、ushort、int、uint、long、ulong、char、float或decimaldecimalsbyte、byte、short、ushor
41、t、int、uint、long、ulong、char、float或double例2.4修改例2.3,实现显式数据转换,并输出转换后的结果。 class Program static void Main(string args) char a = A; float b = (float)99.9; int c; c = a; Console.WriteLine(c); decimal d = (decimal)b+c ; Console.WriteLine(d); 3.使用方法进行数据类型的转换(1)Parse方法ToString方法可以将数值类型转换成字符串型,其返回值是String 类型 使
42、用方法:数值类型数据.ToString()例如: lblResult2.Text = result.ToString(); 控制符示例运行结果C 货币2.5.ToString(C)¥2.50D 十进制数25.ToString(D5)00025E 科学型25000.ToString(E)2.500000E+005F 固定点25.ToString(F2)25.00G 常规2.5.ToString(G)2.5N 数字2500000.ToString(N)2,500,000.00X 十六进制255.ToString(X)FF2.1.3算术溢出及显示转换溢出1. 数据溢出例2.5实现简单的数据计算。(1
43、)新建windows项目,名称为calc,将Form1从项目中删除,修改项目中的Program.cs主程序,代码:public class calc static void Main() double x = 8245788526; int b = 45648745; int c = 1547454577; int y = (int)x; int z = (int)(b * c); MessageBox.Show(x= + x.ToString() + ,(int)x= + y.ToString() + n + b= + b.ToString() + ,c= + c.ToString() +
44、,b*c= + z.ToString(); 2. 异常C# 程序在运行中经常会由于遇到一些轻微错误(异常),而中断程序的执行 异常处理可以通过使用try、catch和finally关键字定义代码块来实现 trycatchfinally语句的语法格式:try 语句块1 catch (数据类型 标识符) 语句块2finally 语句块3 try子句catch子句finally子句整型数据算术溢出和整型之间的转换溢出,会在运行时引发OverflowException异常;float、double或decimal值转换为整型时如果整数值不在目标范围,则会引发InvalidCastException异常
45、;decimal类型算术运算溢出,则会引发OverflowException异常;将float或double转换成decimal时,如果源值为NaN(非数值)、无穷大或因过大而无法表示decimal时,则会引发InvalidCastException异常。对例2.5中程序代码进行修改,可以捕获计算结果溢出的错误。 static void Main() double x = 8245788526; int y; try checked y = (int)x; catch (System.OverflowException) MessageBox.Show(算术运算导致溢出);return; Me
46、ssageBox.Show(x= + x.ToString() + ,y= + y.ToString() + n);总结变量如何定义与赋值?常量如何定义与赋值?数据如何进行类型转换?任务 2.2 制作工资所得税计算器个人所得税税额=(应纳税所得起征标准)*适用税率-速算扣除数个人所得税起征点为2000元,税率为10%,速算扣除数为25。任务 2.2 制作工资所得税计算器处理“计算”按钮的 Click 事件处理“复位”按钮的 Click 事件分四步实现:任务解决方案 1.创建名为“TaxCalculator”的Windows应用程序项目。2.选择Label、Textbox、Button等控件添加
47、到TaxCalculator窗体中,并设置控件属性。3.编写程序代码4.测试程序代码双击“计算”按钮,在其Click事件程序中,插入下列代码:private void btnCalculate_Click(object sender, EventArgs e) decimal wage,remian,tax,wag_tax; const int taxRate=10, deduct=25; wage = decimal.Parse(txtWage.Text); wag_tax = wage - 2000; tax = wag_tax * taxRate / 100 - deduct; remi
48、an = wage - tax; txtTax.Text += String.Format(0,-16:c1,16:c2,16:c, wage, tax, wag_tax) + rn; 代码双击“复位”按钮,在其Click事件程序中,插入下列代码:private void btnReset_Click(object sender, EventArgs e) txtTax.Text = String.Format(0,-16:c1,-16:c2,-16:c, 税前收入, 个人应缴所得税, 税后收入); txtWage.Text = ;2.2.1运算符及表达式表达式:通过运算符将常量、变量、函数连
49、接而成的有意义的式子根据操作数的个数,可分为以下3类: 一元运算符:一元运算符作用于一个操作数,包括前缀运算符和后缀运算符。二元运算符:二元运算符作用于两个操作数。三元运算符:三元运算符作用于三个操作数。在C#中三元运算符只有一个(?:),用于组成条件表达式。2.2.1运算符及表达式1.算术运算符加法运算符、除法运算符模运算符、取反运算符2.关系运算符简单赋值、复合赋值3.赋值运算符4.逻辑运算符5.条件运算符算术运算符类别运算符说明表达式算术运算符+执行加法运算 操作数1 + 操作数2-执行减法运算 操作数1 - 操作数2*执行乘法运算操作数1 * 操作数2/执行除法运算操作数1 / 操作数
50、2%获得进行除法运算后的余数 操作数1 % 操作数2+将操作数加 1 操作数+或+操作数-将操作数减 1 操作数- 或-操作数将一个数按位取反 操作数关系运算符 类别运算符说明表达式关系运算符检查一个数是否大于另一个数 操作数1 操作数2检查一个数是否小于另一个数 操作数1 =检查一个数是否大于或等于另一个数 操作数1 = 操作数2= 检查一个数是否小于或等于另一个数 操作数1 = 操作数2= 检查两个值是否相等 操作数1 = 操作数2!= 检查两个值是否不相等操作数1 != 操作数2赋值运算符 类别运算符说明表达式赋值运算符=给变量赋值操作数1 = 操作数2+=操作数1 = 操作数1 + 操
51、作数2操作数1+ = 操作数2-=操作数1 = 操作数1 - 操作数2操作数1 -= 操作数2*=操作数1 = 操作数1 * 操作数2操作数1 *= 操作数2/=操作数1 = 操作数1 / 操作数2操作数1 /= 操作数2%=操作数1 = 操作数1 % 操作数2操作数1 %= 操作数2逻辑运算符 类别运算符说明表达式逻辑运算符&对两个表达式执行按位“与”运算 操作数1 &操作数2|对两个表达式执行按位“或”运算 操作数1 | 操作数2对两个表达式执行按位“异或”运算操作数1 操作数2&对两个表达式执行逻辑“与”运算 操作数1 & 操作数2|对两个表达式执行逻辑“或”运算 操作数1 | 操作数2
52、!对两个表达式执行逻辑“非”运算! 操作数条件运算符 ? : 运算符称为条件运算符,是C#中唯一的三元运算符表达式如下:表达式? 操作数1:操作数22.2.2运算符及表达式优先级、结合律1.运算符优先级运算符的优先级控制着各运算符的计算顺序2.表达式结合律赋值运算符和条件运算符是按照右结合的顺序执行的其它的二元操作符都是左结合的运算符优先级 类别运算符基本运算符() x.y f(x) ax x+ x- new typeof sizeof checked unchecked一元运算符+ - | +x -x (T)x乘除运算符* / %加减运算符+ -位移运算符关系运算符 = is相等运算符= !
53、=按位与&按位异或按位或|类别运算符逻辑与&逻辑或|条件运算符?:赋值操作符= *= /= += -= = &= = |=2.2.3格式化输出格式字符格式符说明格式字符格式符说明C或c货币G或g常规D或d十进制N或n数字E或e科学制P或p百分比F或f固定点一般格式为: String.Format(formats,参数列表);2.2.4程序编写规范1.代码书写规则(1)用规定的缩进对齐代码节(2)在括号对齐的位置垂直对齐左括号和右括号,也可以使用倾斜样式,即左括号出现在行尾,右括号出现在行首(3)沿逻辑结构行缩进代码(4)将长代码写为两行,中间用“+”运算符连接起来,在后面换行代码中要使用缩进格
54、式(5)每一行上放置的语句避免超过一条,除了循环语句(6)编写 HTML 时,所有标记都大写或所有属性都小写(7)编写 SQL 语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合(8)关键的语句(包括声明关键的变量)必须要写注释,注释需和代码对齐2.2.4程序编写规范2.注释单行注释:以字符“/”开始,并延续到该文件行的末尾。多行注释:以字符“/*”开始,以“*/”字符结束,可以跨多行。注意:1.避免在“/”单行注释符后使用反斜杠符号“”2.分隔符“/*”和“*/”之间的注释不能有嵌套注释。 总结运算符中左结合和右结合的分别有哪些?列举常用的代码书写规则。谢 谢!C
55、#程序设计第3章 C#程序控制 本章任务能够使用if语句编写简单的选择判断程序;能够使用while、dowhile语句编写循环程序;能够使用for语句编写循环程序;能够使用goto语句、continue语句在程序中有条件中断重复执行语句; 任务3.1 编写控制台应用程序判断是否应交个人所得税1、输入的应发工资数和养老金等三金或四金数,2、判断是否应交个人所得税。关键代码1、输入应发工资代码:pay = double.Parse(Console.ReadLine();2、输入养老金代码:money = double.Parse(Console.ReadLine(); 3、判断是否应交个人所得税;
56、if (income 2000) Console.WriteLine(需要交个人所得税!); If语句格式如下:If语句流程图如图所示If(表达式) 语句块 任务3.2 编写Windows窗体应用程序判断是否应交个人所得税。 1、用户在相应文本框中输入的应发工资数和养老金等三金或四金数;2、判断是否应交个人所得税。应发工资数减去养老金后,数据大于2000元;则交税,否则不交税。关键代码1、将文本框中的值赋值给两个变量pay = double.Parse(txtPay .Text ); money = double.Parse(txtMoney .Text );2、判断是否应缴个人所得税; if
57、 (income 2000) MessageBox.Show(需要交个人所得税!); else MessageBox.Show(不需要交个人所得税!); ifelse 语句If(表达式) 语句块1else语句块2结构流程图如图所示格式如下:任务3.3 编写Windows窗体应用程序计算个人所得税和实发工资。1、要求用户输入的数据必须是正数,否则要求用户重新输入;2、计算个人所得税和实发工资。关键代码1、判断应发工资或养老金等是否为负 if (pay 0 | money 0 & income 500 & income = 2000) if语句的嵌套 格式如下:if(表达式1)if(表达式2)语句
58、块1else语句块2else语句块3 ifelse ifelse 语句语句格式如下:if(表达式1)语句块1else if(表达式2)语句块2else语句块n流程图如图所示任务3.4 简易计算器1、在相应文本框输入两个操作数,2、分别实现这两个操作数的加、减、乘、除运算,关键代码op1 = double.Parse(txtOp1.Text);op2 = double.Parse(txtOp2.Text);1、通过double.Parse转换后赋值给变量op1和op2, 2、组合框中选择的运算符赋值给字符串类型变量op。 op = combOperation.SelectedItem.ToStr
59、ing(); 3、使用switch语句进行多项选择判断 switch (op) case : case : case : default : switch语句switch(表达式) case 常数表达式1: 跳转语句 case 常数表达式2: 跳转语句 defalut: 跳转语句语句格式如下:任务3.5 计算某人一年公积金账户余额1、输入的某人工资、公积金交存比例和住房贷款月还款金额,2、计算出他一年公积金账户余额。关键代码计算每月公积金余额并累加:分别使用while结构、dowhile结构以及for循环结构 sum = 0; int i = 1; while (i =12) sum +=2*
60、pay *scale/100-loan; i=i +1; sum = 0; int i = 1; do sum += 2 * pay * scale / 100 - loan; i = i + 1; while (i = 12); sum = 0; for (int i = 1; i = 12;i + ) sum += 2 * pay * scale / 100 - loan; while语句while (表达式)循环体流程图如图所示:格式如下: do while语句格式如下:流程图如图所示 do循环体while (表达式)任务3.6 设计一个计算阶乘和e的指数幂的计算器。 1、单击“n!”按
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度物流企业与货车司机车辆保险及赔偿合同
- 2025年度电网工程结算付款合同
- 二零二五年度金融行业职员职业伤害及工伤赔偿协议书
- 二零二五年度培训机构教育培训项目投资协议
- 二零二五年度高端别墅房源代理合作协议
- 二零二五年度房产转让合同中的特殊条款及附加条件协议
- 2025年度高空作业聘用司机安全协议及高空作业规范合同
- 2025年度银行与互联网企业创新业务合作协议
- 2025年度智能数据分析技术服务费合同范文
- 运动会 开幕式发言稿
- word公章模板
- 中西医结合肿瘤学试卷(含答案)
- 制衣常识中英对照精讲
- 开学第一课我们开学啦主题班会PPT课件(带内容)
- 体育训练队队规
- 电梯工程开工报告(直梯)(共1页)
- ANSI B165《钢制管法兰及法兰管件》
- 集团公司财务管理内部交易管理办法,
- 视频会议系统测试方案汇总
- 五年级第二学期体育知识结构图
- 部编版三年级下册第八单元教材解读
评论
0/150
提交评论