J 程 序 设 计任务2:单个学生成绩处理 目录1、任务描述学生成绩管理模块需要完成学生课程成绩的相关处理:如统计每门课程的最高分、最低分 、平均分、不及格人数等。本任务主要完成对单个学生成绩的处理:统计某个学生所选课程的总分和平均分。完成本任务需要了解和掌握Java中 编写程序的一些基本知识:数据的表示、存储和运算等。 技术准备2.1 注释注释作用:提高程序可读性分类:单行注释、多行注释和文档 注释。1. 单行注释单行注释以“//”开头,可以单独成行,也可以跟在某行代码的后边。2. 多行注释多行注释以“/”开始,以“/ ”结束,中间可以有若干行内容。3. 文档注释文档注释以“/”开始,以“/”结束。文档注释通常是对程序中某个类或类中方法进行系 统性的解释说明,可以使用JDK提供的javadoc工具将文档注释提取出来生成一份API帮助文档。2.1 注释文档注释单行注释多行 注释2.2 标识符与关键字1、标识符标识符是程序开发人员自己定义的一些符号和名称,这些符号和名称用来标识编写程序时用到的变量名、 类名、方法名、文件名等。简单地说,标识符就是一个名字。(1)标识符只能由字母、数字、下划线(_)和美元符号($)组成,不能以数字开 头。长度没有限制,如userName、user123、_user、$user都是合法的标识符,但123user、user name 则是非法标识符。(2)标识符大小写敏感,即严格区分大小写,所以age和Age是两个不同的标识符。(3)不能使用关键字作为标识符。( 4)标识符命名尽量做到见名知意,如用score表示成绩,age表示年龄。良好的标识符命名规范可有效提高程序易读性。2.2 标识符 与关键字2、关键字关键字是指Java里事先定义好并赋予了特殊含义的单词,如public、class等。每个关键字都有其特殊的含义和 作用,不允许通过任何方式改变其含义,也不允许其用来作为变量名、文件名等标识符。Java中关键字均用小写字母表示。2.2 标识符与 关键字常用关键字:2.3 数据类型数据类型分为基本数据类型和引用数据类型两大类。基本数据类型主要有整型、浮点型、字符型和布尔型, 引用数据类型主要有类和数组等。2.3 数据类型1. 整型Java中整型数据又细分为4种不同的类型。2.3 数据类型整型数据就是 通常所说的整数,可正可负。可以有如下几种不同表示形式。(1)十进制形式:如3、-9。(2)八进制形式:以0开头,如07、-013。 (3)十六进制形式:以0x开头,如0x15、-0xD、0x2f。(4)二进制形式:以0b开头,如0b101、-0b11。对于超出i nt型取值范围的数需要在数值后面加字母L(或小写l)表示是长整型数据,如2000000000000000L。没有超出int型取值范 围的数也可在数值后面加字母L(或小写l)表示是长整型数据,如23L。2.3 数据类型2. 浮点型浮点型数据分为单精度(float )和双精度(double)两种类型。2.3 数据类型浮点型数据即通常所说的实数。由整数部分与小数部分组成,既可以用小数形式表示( 如2.3),也可以使用科学计数法表示(如2.3e-5,2.5E2)。在使用科学计数法表示时,要求字母e(或E)前面必须有数字,后面 必须为整数。在Java中,一个小数会被默认为double类型的数据,如果要表示float类型数据,须在数值后面加字母F(或小写f) ,如2.3F,-3.4f。对于整数可在其后面加字母D(或小写d)表示double类型数据,如23D、-42d;加字母F(或小写f) 表示float类型数据,如23F、-42f。2.3 数据类型3. 字符型字符型(char)数据是指用单引号括起来的一个字符,使用 2个字节存储,如''a''、''3''、''''。有一些具有特殊含义的控制字符,如回车、换行等,这些非显示字符难以用一般形式的字符表示,通常 用“\”开头,后面跟一个固定字符来表示,称为转义字符,如''\r''(回车)、''\n''(换行)、''\t''(横向制表符)。2.3 数据 类型4. 布尔型布尔型(boolean)数据只有两个值,即true和false。5. 字符串类型字符串类型(String)数据是指 用双引号括起来的一串字符,字符个数可以是0个或多个。如"hello"、 " name\tage " 、 " a " 、 " " 。 字符个数为0的字符串称为空字符串(简称空串)。String是Java的一个内置类,是一种引用数据类型。2.4 常量与变量1. 常量 在程序运行过程中其值保持不变的量称为常量,主要分为字面常量和符号常量。例如3,2.3,true等为字面常量;Math类中的PI为符 号常量,代表数学中的圆周率π(值为3.141592653589793)。Java中常用的字面常量有整型常量、浮点型常量、字符型常量 、字符串常量、布尔型常量和用于表示空值的null。Java中的自定义符号常量使用时须先定义后使用。2.4 常量与变量常量定义格式: final 类型名 常量名 = 值;例定义一个用于表示税率为0.03的符号常量:final double RATE = 0.03; 提示:符号常量名通常采用大写字母表示。2.4 常量与变量2. 变量在程序运行过程中其值可以变化的量称为变量。Java是一门强类型的 编程语言,要求变量先声明,后使用。变量声明格式:类型名 变量名1, 变量名2, ... ;说明:(1)变量声明时一次可声明一个变量 (2)也可一次声明多个变量,声明多个变量时各变量之间用逗号分隔。2.4 常量与变量变量声明示例:int age ; //一次声明一个变量float score, salary ; //一次声明若干个变量也可以在声明变量的同时为变量赋初始值, 例:int age = 18 ;float score = 89.6f, salary ;2.4 常量与变量【例 2?1】常量与变 量使用示例2.5 运算符1、算术运算符2.5 运算符说明:(1)两个整数相除的结果仍然是整数。例:5/2的结果为2,而不是2.5。 (2)自增与自减运算符只能用于变量,不能用于常量,其作用是使变量的值增1或减1。(3)自增与自减运算符既可以前置(放在变量前面,形 如++a),也可以后置(放在变量后面,形如a++)。前置时表示先自增(或自减),然后再使用变量的值;而后置时是先使用变量的值,然后 再自增(或自减)。(4)算术运算符的优先级与数学中规定的相同,先乘除后加减。2.5 运算符【例 2?2】算术运算符应用示例2.5 运算符2、关系运算符2.5 运算符说明:(1) 通常情况下,关系运算符用于比较同一类型的操作数,且操作数之间能比较大小,比较才有效 。(2)Java中不允许关系运算符的连用,如 “3 < 4 < 5”是不合法的。(3)关系运算符中“<、>、<=、>=”的优先级相 同,高于优先级相同的“==、!=”。2.5 运算符【例 2?3】关系运算符应用示例2.5 运算符3、逻辑运算符2.5 运算符说明: (1)逻辑运算符“&&”与“||”具有短路运算特性。对“a && b”,当a的值为false时,直接返回false,不再计算b的值 。对于“a || b”,当a为true时不再计算b的值,直接返回true。短路运算特性可减少不必要的计算。(2)逻辑运算符优先级从 高到低分别是:!、&&、||。2.5 运算符【例 2?4】逻辑运算符应用示例2.5 运算符4、位运算符位运算符只能用于整数,其内部 执行过程是:首先将整数转换为二进制数,然后按位进行运算,最后再把计算结果转换为十进制数返回。假设变量 a 为 60(0011 11 00),b 为 13(0000 1101)。2.5 运算符说明:(1)左移与右移运算符右侧的操作数表示要移动的位数。(2)一个数左 移1位,相当于把这个数扩大2倍,即此数乘以2。(3)一个数右移1位,相当于把此数缩小2倍,即除以2。2.5 运算符【例 2?5】位 运算符应用示例2.5 运算符5、赋值运算符赋值运算符分为简单赋值运算符和复合赋值运算符。2.5 运算符说明:(1)赋值运算符用于给 变量赋值,赋值号左边要求必须是变量。(2)在简单赋值运算符“=”前加上其他运算符(不仅仅是表中列出的算术运算符,还可以是位运算符) ,就构成复合赋值运算符。(3)采用复合赋值运算符可使程序更加简洁。2.5 运算符【例 2?6】赋值运算符应用示例2.5 运算符6、 字符串运算符运算符“+”可用于连接两个字符串。如"hello" + "java"的结果为"hellojava" 。7、 条件运算符 条件运算符也称三元运算符,由符号“?:”构成。格式:条件表达式 ?表达式1:表达式2;运算规则:先求条件表达式的值,如果值为tru e,则返回表达式1的值,否则返回表达式2的值。2.5 运算符【例 2?7】利用条件运算符判断一个成绩是否及格。2.5 运算符8. 运算符优先级用运算符、括号将常量、变量等连接起来有意义的式子称为表达式。在一个表达式中可以使用多个不同的运算符来完成相对复杂的功能 。当一个表达式中同时出现多个运算符时,各运算符优先级由高到低如表所示。2.6 类型转换当把一种类型的数据赋给另一种类型的变量,或者 是不同类型的数据参加同一运算时,需要进行数据类型的转换。根据转换方式的不同,类型转换分为两种:自动类型转换和强制类型转换。1. 自 动类型转换自动类型转换也称为隐式类型转换,是由系统自动进行的类型转换,不需要显式声明。当数据类型不一致时,系统自动把取值范围小的数 据类型转换成取值范围大的数据类型。2.6 类型转换【例 2?8】自动类型转换示例。2.6 类型转换2 .强制类型转换强制类型转换也 叫显式类型转换,当需要把取值范围大的数据类型转换成取值范围小的数据类型时,就需要进行强制类型转换。强制类型转换会导致数据溢出或精度 下降,使用时需要显式声明。格式:(类型名)表达式2.6 类型转换【例 2?9】强制类型转换应用示例。2.7 Math类中常用方法数 学中常用的一些函数,如求绝对值、开方、三角函数、对数等,Java的Math类中都提供了相应的方法,这些方法都是静态方法,可以直接通 过类名来调用。除静态方法外,Math类中还有两个静态常量PI和E,分别代表数学中的π和e。2.7 Math类中常用方法【例 2?1 0】Math类常用方法使用示例。 任务实施3.1 任务要求已知学生王芳所选课程数学、语文、英语各科的成绩分别是80、92、88,求其成绩总分和平均分。要求平均分四舍五入取整。统计结果按如下格式输出。姓名 数学 语文 英语 总分 平均分王芳 80 92 88 260 873.2 任务分析各科成绩都为整数,可直接声明成int类型。求得的平均分是小数,需要转换成整数。如果是直接利用强制类型转换,则无法实现四舍五入取整,可利用Math类中的round()方法来实现四舍五入取整。3.3 任务实现J 程 序 设 计谢 谢 |
|