实验二:.doc
《实验二:.doc》由会员分享,可在线阅读,更多相关《实验二:.doc(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1第第 2 2 章章 实验实验 JAVAJAVA 基本语法基本语法 1 12.12.1 实验目标实验目标(1)算术运算符、算术表达式 (2)布尔及关系算符和表达式 (3)if/else 控制结构 (4)while 循环语句 (5)练习使用对话框2.22.2 实验说明实验说明在上一章的实验中所看到的程序都是顺序执行的。本章实验教程将介绍如何使用 JAVA 选择控 制语句,使程序能基于条件进行判断,从而选择执行相应的逻辑分支。 以下的实验包括 4 种类型, 每种类型都用括号里面的字母表示: D - 例程, 表示这是一个例子, 要求练习者阅读指南和代码; I - 交互式练习, 练习者完成实验指定的简
2、单任务,如修改部分代码, 观察程序运行时的变化 等; W - 热身练习, 练习者的编程工作量逐渐加大。 P - 完整编程,要求练习者根据要求,完成完整的 JAVA 程序。2.32.3 实验准备实验准备从本实验教程光盘中拷贝 Lab02 文件目录到本地磁盘, 如 C: 盘。Lab02 文件目录中将包含本次 实验所需的所有资料。 Lab02 的相关资料也可以从本实验教程的网站下载。2.4 实验任务实验任务实验实验 2.4.1:2.4.1: (D)(D)运行四个运行四个 JavaJava 程序程序在已经安装 JAVA SDK 5.0 的电脑上编译、运行 4 个 JAVA 程序 IntDiv.java
3、、 FloDiv.java、DouDiv.java 和 MinSec.java,观察程序的运行结果。在这四个程序中,运用了另外 一种键盘读入的形式 JOptionPane 对话框。这种图形界面对用户来讲比命令行的数据输入方式更友 好。用记事本或 EditPlus 打开这几个程序,比较程序源代码。IntDiv.java、 FloDiv.java、 DouDiv.java 和 MinSec.java 都是按照这样的步骤执行的:(1) 提示用户输入数字。 这些数字是以字符串的形式被读取,而后又被转换成数字; (2) 适当的运算; (3) 输出显示。2MinSec.java (见程序清单 2-1)包括
4、以下的语句: int totalSeconds = Integer.parseInt(JOptionPane.showInputDialog(“Enter total seconds (integer)“ ); 这个语句可以看作是以下两个语句的缩写: String totalSecondsText = JOptionPane.showInputDialog(“Enter total seconds (integer)“ );int totalSeconds = Integer.parseInt(totalSecondsText);程序清单程序清单 2-12-1:MinSec.javaMinSe
5、c.java / MinSec.java / 将总秒数转换为分钟和剩余秒数 import javax.swing.JOptionPane; public class MinSec public static void main( String args ) JOptionPane.showMessageDialog(null,“将输入总秒数 n“ +“转换为相应的 n“ +“分钟数和秒数 。“ );/ 读取总秒数 :int totalSeconds = Integer.parseInt(JOptionPane.showInputDialog(“输入总秒数 (整数)“ );/ 计算分钟和秒数 i
6、nt minutes = totalSeconds / 60;int seconds = totalSeconds % 60;/ 显示结果 JOptionPane.showMessageDialog(null,totalSeconds + “ 秒等于 “ +minutes + “ 分钟加 “ +seconds + “ 秒。“ );System.exit( 0 ); / 结束程序 / method main / class MinSec程序清单程序清单 2-22-2:IntDiv.javaIntDiv.java 3/ IntDiv.javaimport javax.swing.JOptionPa
7、ne; public class IntDiv public static void main( String args ) / 从用户处得到一个字符串型的数字 String dividendText = JOptionPane.showInputDialog( “输入被除数 (整数)“ );/ 再从用户处取得一个字符串型的数字 String divisorText = JOptionPane.showInputDialog( “输入除数 (整数)“ );/ 将类型 String 转换为类型 int int dividend = Integer.parseInt( dividendText )
8、; int divisor = Integer.parseInt( divisorText );/ 进行除运算 int quotient = dividend / divisor;int remainder = dividend % divisor;/ 显示结果 JOptionPane.showMessageDialog(null,dividend + “ 除以 “ + divisor + “ 等于n“ +quotient + “ 再加余数 “ + remainder + “.“,“结果“,JOptionPane.PLAIN_MESSAGE );System.exit( 0 ); / 结束程序
9、 / method main / class IntDiv程序清单程序清单 2-32-3:FloDiv.javaFloDiv.java / FloDiv.java / 演示浮点型的浮点数除法 import javax.swing.JOptionPane; public class FloDiv public static void main( String args ) /从用户处得到一个字符串型的数字String dividendText = JOptionPane.showInputDialog(“键入被除数 (浮点数)“ );4/再从用户处取得一个字符串型的数字String diviso
10、rText = JOptionPane.showInputDialog( “键入除数(浮点数)“ );/将类型 String 转换为类型 floatfloat dividend = Float.parseFloat( dividendText ); float divisor = Float.parseFloat( divisorText );/进行除运算 float quotient = dividend / divisor;/显示结果JOptionPane.showMessageDialog(null,dividend + “ 除以 “ + divisor + “ 等于n“ +quotie
11、nt + “.“,“ 结果“,JOptionPane.PLAIN_MESSAGE );System.exit( 0 ); /结束程序 / method main / class FloDiv程序清单程序清单 2-42-4:DouDiv.javaDouDiv.java / DouDiv.java / 演示 double 型的浮点数除法 import javax.swing.JOptionPane; public class DouDiv public static void main( String args ) /从用户处得到一个字符串型的数字String dividendText = JOp
12、tionPane.showInputDialog(“键入被除数(浮点数)“ );/再从用户处取得一个字符串型的数字String divisorText = JOptionPane.showInputDialog(“键入除数(浮点数)“ );/ 将类型 String 转换为类型 doubledouble dividend = Double.parseDouble( dividendText ); double divisor = Double.parseDouble( divisorText );/进行除运算 5double quotient = dividend / divisor;/ 显示结
13、果JOptionPane.showMessageDialog(null,dividend + “ 除以 “ + divisor + “ 等于n“ +quotient + “.“,“结果“,JOptionPane.PLAIN_MESSAGE );System.exit( 0 ); / 结束程序 / method main / class DouDiv实验实验 2.4.2:2.4.2: (D)if(D)if 选择语句选择语句编译 MinSecWithIf.java,使用如下命令运行程序: java MinSecWithIf 100注意使用的命令不是 java MinSecWithIf观察程序的运行
14、结果,并尝试用其他的正整数来执行。在类名 MinSecWithIf 后面键入的数字被 称做命令行参数。在这个程序中,该命令行参数是总秒数。试着不使用命令行参数来运行这个程序, 并观察运行结果。 打开 MinSecWithIf.java 源代码,与 MinSec.java 源代码相比较。 在 MinSecWithIf.java 中,命令行输入是由语句: int totalSeconds = Integer.parseInt(args0)实现的;在 MinSec.java 中,输入是通过 JOptionPane 对话框,而不是命令行参数实现的。程序清单程序清单 2-52-5:MinSecWithI
15、f.java / MinSecWithIf.java / 将总秒数转换为相应的分钟数和剩余秒数public class MinSecWithIf public static void main( String args ) if ( args.length = 0 ) / 声明程序将做什么System.out.println(“此程序将转换 n“ +“一个总秒数为 n“ +“相应的分钟和剩余秒数 .n“ +“总秒数应当作为 n“ +“命令行参数输入 .n“ );System.exit(0);6 / if/ 读取总秒数 int totalSeconds = Integer.parseInt(ar
16、gs0);/ 计算分钟和剩余秒数 int minutes = totalSeconds / 60;int seconds = totalSeconds % 60;/ 显示结果 System.out.println(totalSeconds + “ 秒等于 “ +minutes + “ 分钟加上 “ +seconds + “ 秒.“ ); / method main / class MinSecWithIf对于这种形式的 IF 语句,格式为: if (expression) statement(s) 该语句必须以关键字“if”开始。之后,括号中为布尔表达式。该布尔表达式必须计算出一个 true
17、或者 false 值。在本实验中,我们检查用户命令行参数的输入。当没有命令行参数输入时,表 达式 args.length = 0 的运算结果为 true,程序执行花括号中的语句(我们把花括号之间的语句部 分称为块 block),从而打印出一些提示信息,然后程序退出;当有命令行参数输入时,布尔表达式 的值为 false,程序忽略块中的语句,直接执行块后面的语句。实验实验 2.4.3:2.4.3: (W)(W)练习使用练习使用 ifif 语句语句在 Lab02 文件夹里,新建一个 FeetInches.java 文件。这个程序将总英寸转化成英尺和英寸(1 英尺12 英寸) 。和 MinSec.ja
18、va 类似,程序 FeetInches.java 使用一个输入对话框来提示输入,结 果的输出则使用消息对话框。编写的程序请使用恰当的变量名,注释和输出。强烈建议读者一句一句自己编写代码,而不仅仅 是复制、粘贴和修改变量名以及注释。通过这种方式,可以对 Java 程序的基础有一个全面的熟悉, 并增强在今后各种 JAVA 考试中的信心。 注意缩排!JAVA 编程规范要求每一个缩排要留个空格,不是一个。用空格键(Space Key),而 不是制表键(Tab Key),因为制表键所表示的空格数会因文件编辑器的不同而不同。为了减轻缩排 的麻烦,我们通常会在输入一个开括号后立即输入闭括号,然后输入括号里面
19、的语句;而不是等完 成括号里面的语句输入后再输入闭括号。 任何使用对话框的程序都包括语句: System.exit(0); 没有这条语句,包含对话框的程序执行到末尾时不会自动结束。在这种情况下要重新获得 DOS 窗口的控制,使用Ctrl-C 键(按住Ctrl键,然后在按住Ctrl键的同时按下 C 键)。7实验实验 2.4.4:2.4.4: (D)(D)更多更多 ifif 语句语句编译、运行程序 BusDialog.java 和 Bus.java,一定要理解程序是如何实现的。这两个程序分 别使用了对话框和命令行参数,它们都用于计算运送给定数目的乘客所需的车辆数。程序首先计算 初步的数目(总人数除
20、以每辆汽车的座位数),然后检查余数是否为,也就是是否有剩余的乘客。 如果是,除了初始估计外,还多需要一辆车。程序清单程序清单 2-62-6:BusDialog.javaBusDialog.java / BusDialog.java / 计算有固定座位数的车在给定乘客数的情况下所需的辆数 import javax.swing.JOptionPane; public class BusDialog public static void main( String args ) / 声明此程序的作用: JOptionPane.showMessageDialog(null,“计算有固定座位数的车n“ +
21、“在给定乘客数的情况下,n“ +“所需的辆数.“ );/ 从用户处得到输入数据 int totalPeople = Integer.parseInt(JOptionPane.showInputDialog(“键入总人数 (整数)“ );int seatsPerBus = Integer.parseInt(JOptionPane.showInputDialog(“键入每辆车的座位数 (整数)“ );/ 计算所需车辆数int bussesNeeded = totalPeople / seatsPerBus;if ( totalPeople % seatsPerBus 0 )bussesNeeded
22、 = bussesNeeded + 1;/ 显示结果JOptionPane.showMessageDialog(null,bussesNeeded + “ 辆座位为 “ +seatsPerBus + “ 的车 n“ +“可以运送 “ + totalPeople +“ 个人“ );8System.exit( 0 ); / 终止程序 / method main / class Busses程序清单程序清单 2-72-7:Bus.javaBus.java / Bus.java /计算有固定座位数的车在给定命令行参数个乘客数的情况下所需的辆数 public class Bus public stati
23、c void main( String args ) if ( args.length 0 )bussesNeeded = bussesNeeded + 1;/ 显示结果 System.out.println(bussesNeeded + “ 辆座位为 “ +seatsPerBus + “ 的车可以 n“ +“运送 “ + totalPeople +“ 的人 。“ );System.exit( 0 ); / 终止程序 / method main / class Bus9实验实验 2.4.5:2.4.5: (W)(W)练习使用练习使用 ifif 语句语句在 Lab02 文件夹里面,新建一个 Ne
24、arYuan.java 的文件,它会以对话框的形式提示用户输入一个 数字,这个数字表示分,程序会计算出与分价值最接近的整数元。例如:350 分最接近 4 元,而 249 分最接近 2 元。实验实验 2.4.6:2.4.6: (D)(D)否定条件否定条件编译 Compare.java,使用两个命令行参数运行程序: java Compare 4 7该程序的条件语句中使用了否定条件(Negation)。一个条件的否定条件总是:(1)正确的, 如果原条件是错误的; (2)错误的,如果原条件是正确的。例如,number1 = number2是number1 number2 不是上面第二个条件的否定条件,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 试验
限制150内