版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目二 成绩计算器【能力目标】能在C#控制台应用程序和Windows窗体应用程序中,实现数据的输入与输出程序设计。【促成目标】1学会变量声明、变量命名、变量类型之间的转换;2掌握Button按钮、TextBox文本框和Label标签控件的使用;3会使用ToString()、ToDouble()、WriteLine()和ReadLine()方法。【案例引入】一、任务3 创建第二个C#的控制台应用程序英语成绩计算【任务要求】某班级进行了一次英语考试,考试成绩由学生的平时成绩和卷面成绩按4:6得到。现要设计一个控制台应用程序求出学生的英语考试成绩。【做中学】1启动Visual Studio 2008
2、2新建项目在Visual Studio 2008集成开发环境中,选择“文件”“新建”“项目”菜单命令,弹出【新建项目】对话框,如下图所示。还可以单击集成开发环境左边的创建项目图标,来打开【新建项目】对话框。(1)选择C#的模板在Visual C#的模板中选择【控制台应用程序】,作为项目类型。(2)确定项目的名称项目的名称修改为“EnglishCJcount”(也可以采用默认名称)。(3)确定项目存放的位置通过“浏览”按钮选择项目存放的位置,最后单击“确定”即可。3编写代码打开C#的代码编辑器,在代码编辑器中输入英语成绩计算源代码,如下图所示。在Main()方法中添加如下代码:static vo
3、id Main(string args) string name; /学生姓名 double x, y, z; /x为平时成绩,y为卷面成绩,z为考试成绩 Console.WriteLine("请输入学生姓名:"); name = Console.ReadLine(); Console.WriteLine("请输入平时成绩X:"); x = Convert.ToDouble(Console.ReadLine(); Console.WriteLine("请输入卷面成绩y:"); y = Convert.ToDouble(Console.
4、ReadLine(); z = x * 0.4 + y * 0.6; Console.WriteLine("0英语考试成绩为:1", name, z); Console.ReadLine(); 4运行与调试通过“调试” “启动调试”菜单命令运行程序,也可以通过快捷按钮F5或快捷工具栏的图标运行程序。运行结果如下图所示。【知识讨论】主要讨论如何使用Console类的ReadLine()和WriteLine()方法输入数据和输出数据,以及变量定义和数据转换。1ReadLine()和WriteLine()方法(1)WriteLine()方法观察运行结果图(上图),执行“Conso
5、le.WriteLine("请输入学生姓名:");”这条语句后,Console类的WriteLine()方法会把字符串“请输入学生姓名:”输出到屏幕上,并换了一行。格式如下:Console.WriteLine(输出项);功能:把输出项在控制台上输出。如:Console.WriteLine("0英语考试成绩为:1", name, z);说明:l 0,1分别表示第一个和第二个参数,这里代表name和z;l Console.WriteLine()是Console类的一个方法重载,输入输出格式是方法来定义的。又如:Console.WriteLine("
6、请输入学生姓名:");;l WriteLine()方法与C语言的printf()函数功能类似。(2)ReadLine()方法执行“x = Convert.ToDouble(Console.ReadLine();”这条语句后,Console类的ReadLine()方法就等待键盘输入成绩,成绩输入后,经过数据转换赋给变量,然后换行,运行结果如上图所示。格式如下:Console.ReadLine();功能:从键盘上读取一行以Enter键为结束符的数据,并把读取的数据返回。如:name = Console.ReadLine();说明:ReadLine()方法与C语言的scan()函数功能类似
7、。2变量定义在这里,定义了4个变量,分别表示学生的姓名、平时成绩、卷面成绩和考试成绩。定义变量语句是:string name;double x, y, z;3数据转换由于键盘输入的是string类型的数据,而x和y是double类型的数据,它们的数据类型不一样,所以需要先进行数据类型转换,然后赋值。在这里,使用了Convert类的ToDouble方法将输入的数据转换为double类型。数据转换语句是:x = Convert.ToDouble(Console.ReadLine();y = Convert.ToDouble(Console.ReadLine();【技能训练2-1】设计一个控制台应用
8、程序求出学生的C#考试成绩,考试成绩由学生的平时成绩、上机成绩和卷面成绩按3:3:4得到。二、变量与数据类型1变量与常量(1)变量代表存储单元,变量名就是地址,通过变量名可以方便地找到内存中存储的数据;(2)每个变量都有一个类型,这决定了变量可以用来存储什么样的数据类型值。也就是说数据是各式各样,首先根据数据的类型为它在内存中分配一块空间,然后数据就可以放进这块空间里了;(3)在程序执行过程中,可以改变变量的值,而常量的值是始终不变的;(4)常量在程序执行过程中,其值是始终不变的。2变量命名规则变量命名规则如下表所示表。例如,以下变量名是正确的:intX_myFile而下面的变量命名则是错误的
9、:863comstringStr-Login注意:C#对于大小写字母是敏感的,所以在声明变量时一定要注意,例如beer、Beer和BEER是三个不同的变量名。3变量的分类在C#中,变量分成七种类型:静态变量、实例变量、数组变量、局部变量、值参数、引用参数、输出参数。下面我们看一个例子:分析一下在下面代码中类内定义的变量。class Program public static int x; int y; int a=new int4; void MyMethod() int i=6; a0=i; 在上面的变量声明中,x是静态变量,y是实例变量,a是数组变量,i是局部变量。1)静态变量带有“sta
10、tic”修饰符声明的变量称为静态变量。一旦静态变量所属的类被装载,直到包含该类的程序运行结束时它将一直存在。静态变量的初始值就是该变量类型的默认值。2)实例变量(非静态变量)不带有“static”修饰符声明的变量称为实例变量。例如:int x=0;针对类中的实例变量而言,一旦一个类的新的实例被创建,直到该实例不再被应用而被释放所占空间为止,该实例变量将一直存在。3)数组变量数组元素也是一种变量,该变量随着数组实例的存在而存在。每一个数组元素的初始值是该数组元素类型的默认值。4)局部变量局部变量是指在一个独立的程序块(如方法)、if语句、switch语句、for语句等中声明的变量,它只在该范围中
11、有效。当程序运行到这一范围时,该变量即开始生效,程序离开时变量就失效了。在局部变量的有效范围内,变量未定义或未赋值就使用是不合法的,例如下面的程序段:int x=y; /非法,因为局部变量y没有定义int y;int x=y; /非法,因为局部变量y没有赋值y=5;x=y; /合法4.NET 常用数据类型所有变量都具有数据类型,变量的数据类型决定了如何将其值存储到计算机的内存中。.NET 常用数据类型如下表所示。表 .NET 常用数据类型数据类型说明例子int整型学生人数、手机的待机时间 Double浮点型商品价格、员工工资 、分数String字符串型姓名、产品型号、产品介
12、绍Char字符型优 、良 、差bool布尔型True、false(1)int整型,有符号32位整数,取值范围:-2,147,483,6482,147,483,647。(2)double浮点型,即存储小数的类型,64位实数,取值范围:5.0*10-3241.7*10308。在C#中实数还有float、decimal二种类型,它们的差别仅仅在于取值范围和精度不同。默认情况下,赋值运算符右侧的实数被视为double类型。 (3)char字符型,存储单个字符。除了数字以外,计算机处理的信息,主要就是字符了,字符包括数字字符、英文字母、表达符号等。可以按以下方法给一个字符变量赋值,如
13、:char c='A'在C#中可以把字符类型当作整数类型来操作。例如:int i='A'+5; /i的值为70和C、C+中一样,在C#中仍然存在着转义符,以反斜杠()开头,将其后的字符转变为另外的含义,如下表所示。表 转义字符及其含义转义字符字符名' 单引号" 双引号 反斜杠0 空a 警告b 退格f 换页n 换行r 回车t 水平制表符v 垂直制表符x使用14位十六进制数所表示的字符,如x66u使用4位十六进制数所表示的字符,如u0061例如: char c = 'x41' /字符Achar c = 'u0041'
14、 /字符A (4)bool布尔型,存储相反的两种状态,布尔型有true和false两个布尔值。如:bool b = (85 > 100); 与C和C+相比,在C#中,true值不再为任何非零值。(5)String 字符串型,字符串型的数据在程序中都用双引号引起来,而字符型使用单引号。 【案例引入】三、任务4 创建第二个C#的Windows窗体应用程序C#成绩计算【任务要求】设计一个Windows窗体台应用程序,具有能输入C#的平时成绩、课程设计成绩和卷面成绩,并且能按3:3:4比例得到最终成绩。【做中学】1启动Visual Studio 20082新建项目在Visual Studio 2
15、008集成开发环境中,选择“文件”“新建”“项目”菜单命令,弹出【新建项目】对话框,如下图所示。(1)选择C#的模板在Visual C#的模板中选择【Windows窗体应用程序】,作为项目类型。(2)确定项目的名称项目的名称修改为“CSharpCJcount”(也可以采用默认名称)。(3)确定项目存放的位置通过“浏览”按钮选择项目存放的位置,最后单击“确定”即可。3界面设计(1)添加控件(按要求拖动需要的控件到窗体)添加一个按钮、四个标签和四个文本框控件。在工具箱的公共控件中,分别选中Button(按钮)控件、Label(标签)、TextBox(文本框)控件拖放到窗体上,并放置好相应位置,如下
16、图所示。 (2)属性设置1)设置Label1 Label4控件的属性在窗体中,分别选中Label1控件,然后在属性窗口中把Label1 Label4的Text属性修改为“平时成绩:”、“课程设计:”、“卷面成绩:”和“最终成绩:”。2)设置Button1控件的Text属性为“C#成绩计算”;3)设置窗体的Text属性为“CSharpCJcount”。属性设置完成如下图所示。4编写代码打开C#的代码编辑器,在代码编辑器中输入和修改用于创建应用程序的C#源代码。添加“C#成绩计算”按钮单击事件处理代码:private void button1_Click(object sender, EventA
17、rgs e) double pscj, kcsjcj, qmcj, cj; pscj = Convert.ToDouble(textBox1.Text); kcsjcj = Convert.ToDouble(textBox2.Text); qmcj =Convert.ToDouble(textBox3.Text); cj = pscj * 0.3 + kcsjcj * 0.3 + qmcj * 0.4; textBox4.Text =cj.ToString(); 完整代码如下:using System;using System.Collections.Generic;using System.
18、ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace CSharpCJcount public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) double pscj, kcsjcj, qmcj, cj; p
19、scj = Convert.ToDouble(textBox1.Text); kcsjcj = Convert.ToDouble(textBox2.Text); qmcj =Convert.ToDouble(textBox3.Text); cj = pscj * 0.3 + kcsjcj * 0.3 + qmcj * 0.4; textBox4.Text =cj.ToString(); 5运行与调试通过“调试” “启动调试”菜单命令运行程序,也可以通过快捷按钮F5或快捷工具栏的图标运行程序,运行结果如下图所示。【知识讨论】主要通过本任务进一步讨论关于变量的使用以及数据类型的转换。1变量的使用使
20、用变量的一条重要原则是:变量必须先定义后使用。变量的使用,必须强调先后顺序,先声明,再赋值。变量的声明同时规定了变量的类型和变量的名称。变量的声明采用以下的格式:数据类型 变量名;(1)变量声明和赋值有两种方式1)先声明后赋值在本任务的button1_Click()中声明了如下4个变量,就是采用先声明后赋值方式。double pscj, kcsjcj, qmcj, cj;那么,这4个变量是属于哪种类型的变量呢?以及它们的数据类型?2)声明的同时赋值可以在声明的同时对变量进行初始化,如:int x = 1; /给变量x 赋值 1(2)变量赋的值有三种类型; 1)常数,比如:Int i=1;str
21、ing str=“test”; 2)变量,比如:Int i=0 ;int j=i; 3)表达式,比如:int total=score1+score2; 2分析本任务的数据类型转换为什么需要数据类型转换?先结合生活案例讲解为什么要进行类型转换:比如2个客人先住了一个2人间的房间,后来想换个四人间的,他们需要到前台办手续换房。不同类型的变量之间不能直接赋值,如果把一个不同类型的变量赋给另外一个变量同样需要某种手续,这就是调用类型转换方法。下面结合本任务的代码讲解怎样进行数据类型转换的。本任务的代码声明了4个浮点型变量:double pscj, kcsjcj, qmcj, cj;(1)使用ToDou
22、ble()方法把字符串型转换为浮点型pscj = Convert.ToDouble(textBox1.Text); kcsjcj = Convert.ToDouble(textBox2.Text); qmcj =Convert.ToDouble(textBox3.Text);由于在TextBox(文本框)控件上输入的数字是字符串型的,既TextBox.Text是String格式,所以在赋给浮点型变量之前,必须先进行数据类型转换。(2)使用ToString() 方法把浮点型转换为字符串型。 cj = pscj * 0.3 + kcsjcj * 0.3 + qmcj * 0.4;textBox4.
23、Text =cj.ToString();/将浮点型变量转换为字符串型变量注意这个方法是不带参数的,前面说的方法是有参数列表的。3常见的数据类型转换常见的数据类型转换如下表所示。由于 C#变量在声明后就无法再次声明,也就是说无法用于存储其他类型的值。除非该类型可以转换为其他的类型。但是,在多数情况下都是不能进行强制转换的,如:int i;i = "Hello" /错误,不能把类型 'string' 转换为 'int'"(1)隐式转换由于该转换是一种安全类型的转换,不会导致数据丢失,因此不需要任何特殊的语法。 int num = 214
24、7483647;long bigNum = num; /执行了隐式转换(2)显式转换(强制转换):显式转换需要强制转换运算符。源变量和目标变量兼容,但由于目标变量的类型大小比源变量小(或者目标变量是源变量的一个基类),因此存在数据丢失的风险。double x = 1234.7;int a;a = (int)x; /强制转换double 为 int.System.Console.WriteLine(a);/输出: 12344控件与变量(1)控件是一种变量控件是一种复杂类型的变量,一般在往窗体中拖入一个控件,就相当于给控件声明并赋值了,这样控件在程序中可当作变量使用。下表是前面学过的控件。类型
25、160; 用途 Label标签,用来显示文本TextBox输入框,用来输入或显示文本Button按钮,用在窗体上提交数据(2)控件的属性与变量属性也是一种变量,可当作变量来使用,可看作已定义好的变量。Label 和TextBox(文本框)控件的部分属性如下表所示。属性名称 类型说明 Textstring文本Visiblebool是否可见BackColorColor背景色回顾前面的代码: 任务2中的代码:label1.Visible = false; label1.Visible = true;技能训练1-2中的代码:L
26、abel1.text="你好,你单击了Button按钮!"任务4中的代码:textBox4.Text =cj.ToString();四、TextBox(文本框)控件TextBox(文本框)控件主要用于获取用户输入或显示文本,通常用于可编辑文本,也可以设定其成为只读控件。文本框能够显示多行数据,并添加基本的格式设置。1TextBox控件的常用属性2Text属性Text属性是TextBox(文本框)控件最重要的属性,要显示的文本就包含在Text属性中。Text属性可以在设计时通过属性窗口设置,也可以在运行时用代码设置或者通过用户输入设置,同样也可以在运行时通过读取Text属性来获得文本框的当前内容。3Text属性的读写操作在这里主要介绍项目在运行时,如何用代码对TextBox控件的Text属性进行读写操作。(1)对Text属性进行写操作1)在运行时,用代码设置Text属性,既对Text属性进行写操作,格式如下:控件名.属性名=属性值;如:任务2中设置Text属性的代码:label1.Visible = false; label1.Visible = true;技能训练1-2中设置Text属性的代码:Lab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招投标及合同管理简答题大全
- 劳动合同书模板下载范本版
- Unit3Lesson13Beijingisgreat(课件)冀教版英语五年级上册
- 2024年度店铺经营权及合同权益转让合同3篇
- 二零二四年度设备购买与技术支持服务合同3篇
- 2024年度企业财务管理优化服务合同
- 人教版九年级化学第一单元2化学是一门以实验为基础的科学课时2对人体吸入的空气和呼出的气体的探究分层作业课件
- 人教版九年级化学第二单元1空气课时1空气的成分纯净物和混合物分层作业课件
- 人教版九年级化学第五单元化学方程式1质量守恒定律课时3化学方程式教学课件
- 装修木工合同分包协议书模板
- 投标书中供货实施方案
- 保安突发事件培训内容
- 《陆上风电场工程设计概算编制规定及费用标准》(NB-T 31011-2019)
- 中学生新宪法知识讲座
- 教科版四年级上册科学实验报告(全册)
- 代码审计与安全漏洞检测技术
- 2023-2024学年语文八下第二单元情境题新卷
- 低钾血症的诊断和鉴别诊断课件
- 冰雪旅游安全知识假期旅行安全攻略
- 校长与分管安全责任书(通用17篇)
- 时间管理的意义、原则与方法
评论
0/150
提交评论