C#程序设计教程(第2版) 第2章 简单的C#程序设计ppt课件.ppt
第2章 简单的C#程序设计,内容提要: C#程序设计相关的基础知识 C#程序的基本结构、标识符的相关概念 C#程序的编译和执行 控制台的输入/输出操作目的要求: 掌握C#程序设计相关的基础知识 理解常用的四个有关控制台输入、输出方法重点难点: Main()方法、using WriteLine( )和Writel( )方法中各种参数的含义 ReadLine( )和Read( )方法的区别,创建C#控制台应用程序,首先选择【文件】|【新建】|【项目】命令打开【新建项目】对话框。,2.1 C#程序结构,2.1.1 第一个C#程序,“新建项目”对话框,最后,单击【确定】按钮,关闭【新建项目】对话框,让Visual Studio.NET为用户自动生成代码。 删除窗口中的代码,输入如下所示的代码。 using System; class Welcome static void Main( ) Console.WriteLine(“欢迎使用C#”); /运行后在窗口中显示的字符串 ,在编译程序时,将会打开一个输出窗口显示编译过程中所遇到的错误和警告等信息。,2.1.2 编译和执行程序,在Visual Studio.中,可以采用两种方式运行程序:一种是调试运行,通过使用【调试】|【启动】命令或工具栏的调试按钮 或者直接按下F5键;另一种是不进行调试而直接运行,使用【调试】|【开始执行】命令或Ctrl+F5键。,程序结果显示窗口,2.1.3 C#程序结构分析 1. 命名空间 using System语句表示导入System命名空间。 Console.WriteLine(“欢迎使用C#” )这条语句中的Console是System命名空间中包含的系统类库中定义好的一个类,它代表系统控制台,即字符界面的输入和输出。 C#程序是用命名空间来组织代码,要访问某个命名空间中的类或对象,必须用如下语法: 命名空间.类名,由于Console类位于System命名空间中,所以在访问Console类时,完整的写法应该是: System.Console 但是,在程序的第一行,使用了: using System; 这条语句用using语句导入System命名空间,这样在程序中可以直接使用Sytem命名空间中的类或对象,所以直接写Console即可。,2. 类 C#要求其程序中的每一个元素都要属于一个类。如: class Welcome声明了一个类,类的名字叫Welcome。这个程序的功能就是依靠它来完成的。C#程序由大括号“”和“”构成,程序中每一对大括号“ ”构成一个块。 注意: C#程序中的语句以“;”表示结束。,3Main( )方法 程序的入口从下面的代码开始: static void Main( ) 这行代码所定义的其实是类Welcome的一个静态方法,C#规定,名字为Main( )的静态方法就是程序的入口。方法的执行从左括号“”开始,到右括号“”结束。,4注释 在C#语言中,提供了两种注释方法: (1)每一行中“/”后面的内容作为注释内容,该方式 只对本行生效; (2)需要多行注释的时候,在第一行之前使用“/*”, 在末尾一行之后使用“*/”,也就是说被“/*”与*/所包含 的内容都作为注释内容。,通过上面的分析,可以看出C#程序的基本结构如下: /*导入.NET系统类库提供的命名空间System*/ using System; class Welcome /定义类 static void Main( ) /*程序的入口。其中static 表示Main( ) 方法是一个静态方法,void表示该方法 没有返回值*/ Cosole.WriteLine(欢迎使用C#); /输出 欢迎使用C# ,注意: C#语言对大小写是敏感的 一个程序不允许出现两个甚至两个以下的Main( )方法 C#程序中的源代码被包含在“”与“”之间,必须一一对应,2.1.4 标识符 标识符(identifier)是一串字符,在程序中作为各种标识,用来代表一个名字。 并不是任何一串字符都可以作为C#的标识符。 C#的标识符有如下规则: (1)一个合法的C#标识符,是以字母或者下划线开 头、其后可以跟任意个字母、数字或者下划线 。 (2)C#的标识符严格区分大小写,即使两个标识符的 区别仅仅字母的大小写不同,也认为是两完全不 同的标识符。 (3)关键字也可以作为标识符,只要在关键字前加上 前缀。,直接使用关键字作为标识符是不允许的,比如:uint lock,通过给关键字加“”前缀,它们就变成合法的标识符了。 uint operator,练习:1. C#可执行程序的主入口点是( ) Amain函数 BMain函数 CRun函数 DForm_Load函数2以下说法中,正确的是( ) AMain函数是由C#语言提供的标准函数,不需要用户编写 它的内容 B在C#程序中,要调用的函数必须在Main函数中定义 C在C#程序中,必须显式调用Main函数,它才起作用 D一个C#程序无论包含多少个函数,C#程序总是从Main 函数开始执行,3以下叙述中,正确的是( ) AC#程序中的注释只能出现在语句的后面 BC#程序中,只有一种单行注释 CC#程序中,只有一种多行注释 D程序执行时,不会执行注释语句4. 利用Visual Studio.NET集成开发环境编写一个新的C#应用程 序,所做的第一件事是( ) A新建一个窗体 B新建一个包含Main函数的文件 C新建一个项目 D新建一个资源文件,5以下有关注释语句的描述中,不正确的是( ) AC#提供两种注释,即“/”和“/*/” B注释语句可放在程序中的任何位置 C注释语句也可以被执行,只不过它没有输出结果 D程序中加入注释语句的主要目的是提高程序的可读性,2.2 输入/输出操作 控制台(console)输入/输出主要通过命名空间System中的类Console来实现,它提供了从控制台读写字符的基本功能。控制台输入主要通过Console类的Read方法ReadLine方法来实现的,控制台输出主要通过Console类的Write和WriteLine方法来实现的。,2.2.1 Console.WriteLine( ) 方法 WriteLine( )方法的作用是将信息输出到控制台,但是WriteLine方法在输出信息的后面添加一个回车换行符用来产生一个新行。 在WriteLine( )方法中,可以采用“N,M:格式化字符串”的形式来格式化输出字符串,其中的参数含义如下:,花括号(“”)用来在输出字符串中插入变量。N表示输出变量的序号,从0开始,如当N为0时,则对应 输出第1个变量的值,当N为5时,则对应输出第6个变量的 值,依次类推。,M:格式化字符串是可选项,其中M表示输出的变量所占的字符个数,当这个变量的值为负数时,输出的变量按照左对齐方式排列;如果这个变量的值为正数的时候,输出的变量按照右对齐方式排列。 :格式化字符串也是可选项,因为在向控制台输出时,常 常需要指定输出字符串的格式。通过使用标准数字格式字 符串,可以使用Xn的形式来指定结果字符串的格式,其中X指定数字的格式,n指定数字的精度,即有效数字的位 数。这里提供8个常用的格式字符。,1. 货币格式 货币格式C或者c的作用是将数据转换成货币格式,在格式字符C或者c后面的数字表示转换后的货币格式数据的小数位数。例如: double k=1234.789; Console.WriteLine(“0,8:c”, k); /结果是¥1,234.79 Console.WriteLine(“0,10:c4”, k); /结果是¥1,234.7890,2. 整数数据类型格式 格式字符D或者d的作用是将数据转换成整数类型格式。例如: int k=1234; Console.WriteLine(“0:D”, k); /结果是1234 Console.WriteLine(“0:d3”, k); /结果是1234 Console.WriteLine(“0:d5”, k); /结果是01234,3. 科学计数法格式 格式字符E或者e的作用是将数据转换成科学计数法格式。 例如:int k=123000; double f=1234.5578; Console.WriteLine(“0:E”, k); /结果是1.230000E+005 Console.WriteLine(“0:e”, k); /结果是1.230000e+005 Console.WriteLine(“0:E”, f); /结果是1.234558E+003 Console.WriteLine(“0:e”, f); /结果是1.234558e+003 Console.WriteLine(“0:e4”, k); /结果是1.2300e+005 Console.WriteLine(“0:e4”, f); /结果是1.2346e+003,4. 浮点数据类型格式 格式字符F或者f的作用是将数据转换成浮点数据类型格式。例如: int a=123000; double b=1234.5578; Console.WriteLine(“0,-8:f”,a);/结果是123000.00 Console.WriteLine(“0:f”,b);/结果是1234.56 Console.WriteLine(“0,-8:f4”,a);/结果是123000.0000 Console.WriteLine(“0:f3”,b);/结果是1234.558 Console.WriteLine(“0:f6”,b);/结果是1234.557800,5. 通用格式 格式字符G或者g的作用是将数据转换成通用格式。例如: double k=1234.789; int j=123456; Console.WriteLine(“0:g”, j); /结果是123456 Console.WriteLine(“0:g”, k); /结果是1234.789 Console.WriteLine(“0:g4”, k); /结果是1235 Console.WriteLine(“0:g4”, j); /结果是1.235e+05,6. 自然数据格式 格式字符N或者n的作用是将数据转换成自然数据格式。例如: double k=211122.12345; int j=1234567; Console.WriteLine(“0:N”,k); /结果是211,122.12 Console.WriteLine(“0:n”, j); /结果是1,234,567.00 Console.WriteLine(“0:n4”, k); /结果是211,122.1235 Console.WriteLine(“0:n4”, j); /结果是1,234,567.0000,7. 十六进制数据格式 格式字符X或者x的作用是将数据转换成十六进制数据格式,在格式字符X或者x后面的数字表示转换后的十六进制数据的数据位数。 例如: int j=123456; Console.WriteLine(0:x, j); /结果是1e240 Console.WriteLine(0:x6, j); /结果是01e240,还可以不使用参数调用WriteLine( )方法,这时将在控制台中产生一个新行。例: 利用Console.WriteLine( )方法输出变量值。程序代码如下: using System; class Test static void Main( ) int i=12345; double j=123.45678; Console.WriteLine(i=0,8:D j=1, 10: F3, i , j); Console.WriteLine( ); Console.WriteLine(i=0,-8:D j=1, -10: F3, i , j); ,输出结果是:,2.2.2 Console.Write( )方法 Write( )方法和WriteLine( )方法类似,都是将信息输出到控制台,但是输出到屏幕后并不会产生一个新行,即换行符不会连同输出信息一起输出到屏幕上,光标将停留在所输出信息的末尾。 在Write( )方法中,也可以采用“N,M:格式化字符串”的形式来格式化输出字符串,其中的参数含义如同WriteLine( )方法。,例: 利用Console.WriteLine( )方法输出变量值。程序代码如下:using System;class Test static void Main( ) int i=12345; double j=123.45678; Console.Write(i=0,8:D j=1, 10: F3 , i , j); Console.Write(i=0,-8:D j=1, -10: F3, i , j); ,输出结果是:,2.2.3 Console.ReadLine( )方法 ReadLine( )方法用来从控制台读取一行数据,一次读取一行字符的输入,并且直到用户按下回车键它才会返回。但是,ReadLine( )方法并不接收回车键。如果ReadLine( )方法没有接收到任何输入,或者接收了无效的输入,那么ReadLine( )方法将返回null。,例:用ReadLine( )方法接收用户输入,然后输出。 using System; class Test static void Main( ) string str; Console.WriteLine(“请输入你的姓名:”); str=Console.ReadLine( ); Console.WriteLine(“0,欢迎你!”,str); ,输出结果:,2.2.4 Console.Read( )方法 Read( )方法的作用是从输入流(控制台)读取下一个字符,Read( )方法一次只能从输入流读取一个字符,并且直到用户按回车键才会返回。当这个方法返回时,如果输入流中包含有效的输入,则它返回一个表示输入字符的整数;如果输入流中没有数据,则返回-1。,例:通过Console.Read( )方法从控制台接收用户的输入,然后显示接收的内容。程序代码如下:using System;class TestIo static void Main( ) Console.Write(请输入字符:); int a=Console.Read( ); Console.WriteLine(用户输入的内容为:0,a); ,运行结果:,练习:1以下标识符中,错误的是( ) A. _b39 B. x345 C. 6_321 D. nAverage2以下标识符中,正确的是( ) A. _nName B. Main C. 6b D. x5#,Console是C#中的标准输入/输出流对象,它通常代表( )和( )。4. Console.WriteLine(“0,1”,x,y)语句中“0”和“1”只是一个占位符。程序运行后,会以变量x的值替换“0”,以变量y的值替换“1”。这句话是否正确?,本章作业: 1. 习题2的1、2、3 、4 。,实验报告: 实验一,