版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 2 实用教程(第三版)实验指导与习题解答 实验模版代码及答案23目录 注:2上机实践 1初识JAVA3实验 1 一个简单的应用程序3实验 2 一个简单的JAVAAPPLET程序3实验 3 联合编译4上机实践 2基本数据类型与控制语句5实验 1 输出希腊字母表5实验 2 回文数6实验 3 猜数字游戏7实验 4 根据某学生的学习成绩,输出相应的信息8实验 5 根据某学生的学习成绩,输出相应的信息9实验 6 找出所有的水仙花数并输出9实验 7 用星号“*”和数字“0-9”排出三角形10实验 8 找 1100 之间的素数11实验 9 打印图形11实验 10 BREAK 和 CONTINUE示
2、范语句12实验 11 RETURN示范语句12实验 12 用牛顿迭代法求解方程13上机实践 3类与对象13实验 1 三角形、梯形和圆形的类封装13实验 2 实例成员与类成员16实验 3 使用PACKAGE语句与IMPORT语句18注: 1、在你用的计算机上,找到可用的公共分区(一般为 D:/或 E:/盘),在其中建自己的文件夹,如 LiXiaoLing,将自己编的程序均放在自建的文件夹内, 便于管理。不要把程序保存在 C:盘上,C 盘为系统盘,有大量的系统文件,并且被保护。 序号工具 命令(安装路径) 参数 初始目录 捕获 输出 1 JavaC (编译) c:Program FilesJava
3、 jdk1.6.0binjavac.exe $(FileName) $(FileDir) 2 Java (运行) c:Program FilesJava jdk1.6.0binjava.exe $(FileNameNoExt) $(FileDir) 3 Appletviewer (Web 浏览器) c:Program FilesJava jdk1.6.0binappletviewer.exe $(FileName) $(FileDir)2、要有自己的优盘,以便保存未完成的程序和已编译运行成功的程序。编译和解释运行工具配置表 上机实践 1初识 Java实验 1一个简单的应用程序1答案: 【代码
4、1】: System.out.println(你好,很高兴学习 Java) ;【代码 2】: System.out.println(We are students); 2模板代码 同一个 java 文件内有若干个类,类之间的调用,即在 Hello 类中调用 A 类。文件名:Hello.javapublic class Hello /第一个类 public static void main (String args )【代码 1】/命令行窗口输出你好,很高兴学习 JavaA a=new A();/通过创建 A 的对象来调用 A a.fA(); void fA()class A /第二个类 【代码
5、 2】/命令行窗口输出We are students实验 2一个简单的 Java Applet 程序1答案: 【代码 1】: g.drawString(这是一个 Java Applet 程序,10,30);【代码 2】: g.drawString(我改变了字体,20,50); 2模板代码 注:1、在 EditPlus 中先编辑 FirstApplet.java 和 FirstApplet.Html 两个文件,并保存在同一个文件夹中,如“D:xxx”中;2、用 JAVAC 编译 FirstApplet.java,成功后,用 appletviewer 浏览器运行 FirstApplet.Html。
6、 文件名:FirstApplet.javaimport java.applet.*; import java.awt.*; public void paint(Graphics g) g.setColor(Color.blue); public class FirstApplet extends Applet g.setColor(Color.red); 【代码 1】/在 Java Applet 中绘制一行文字:“这是一个 Java Applet 程序” g.setFont(new Font(宋体,Font.BOLD,36);【代码 2】/在 Java Applet 中绘制一行文字:“我改变了
7、字体” 另建一个 Html 文件,文件名为 FirstApplet.Html,内容如下: 实验 3联合编译1答案: 【代码 2】: C c=new C();【代码 1】: System.out.println(你好,只需运行我!);c.fC();【代码 3】: System.out.println(I amA);【代码 4】: System.out.println(I am B);【代码 5】: System.out.println(I amC); 2模板代码 注:建立四个 java 文件,即模板 1:MainClass.java、模板 2 :A.java、模板 3 :B.java 和模板 4
8、 :C.java;这四个文件均放在同一个文件夹内;各文件分别编译,编译成功后, 运行有 main()方法的主类 MainClass.class。 模板 1:MainClass.javapublic class MainClass public static void main (String args ) 【代码 1】 /命令行窗口输出你好,只需运行我!A a=new A();a.fA();b.fB(); B b=new B(); 【代码 2】/调用 C 类,创建 C 的对象 c 模板 2 :A.javapublic class A void fA()【代码 3】/命令行窗口输出I am A
9、模板 3 :B.javapublic class B void fB()【代码 4】/命令行窗口输出I am B 模板 4 :C.javapublic class C void fC() 【代码 5】/命令行窗口输出I am C 上机实践 2基本数据类型与控制语句 实验 1输出希腊字母表1答案: 【代码 1】: startPosition=(int)cStart;【代码 2】: endPosition=(int)cEnd ;【代码 3】: c=(char)i; 2模板代码 public class GreekAlphabet文件名:GreekAlphabet.java public stati
10、c void main (String args ) char cStart=,cEnd=;int startPosition=0,endPosition=0;【代码 2】/cEnd 做 int 型转换运算,并将结果赋值给 endPosition 【代码 1】/cStart 做 int 型转换据运算,并将结果赋值给 startPosition System.out.println(希腊字母在 unicode 表中的顺序位置:+(int) cStart);System.out.println(希腊字母表:);/ c 改错为 cStart for(int i=startPosition;i=end
11、Position;i+) char c=0;System.out.print( +c); 【代码 3】 /i 做 char 型转换运算,并将结果赋值给 cif(i-startPosition+1)%10=0) System.out.println();实验 2回文数1答案: 【代码 1】: number=1【代码 2】: d5=number/10000;【代码 3】: d4=number%10000/1000;【代码 4】: d3=number%1000/100;【代码 5】: d5!=0【代码 6】: d1=d5&d2=d4【代码 7】: d4!=0【代码 8】: d1=d4&d2=d3【代
12、码 9】: d3!=0【代码 10】:d1=d3 2模板代码 注:五位数d1d2d3d4d5,当d1= d5同时d2=d4,则为回文数。如:12321 是回文数,12345 不是回文数。 文件名:Number.javaint number=0,d5,d4,d3,d2,d1;public static void main(String args)import javax.swing.JOptionPane; public class Number String str=JOptionPane.showInputDialog(输入一个 1 至 99999 之间的数);if(【代码 1】) /判断
13、number 在 1 至 99999 之间的条件【代码 2】/计算 number 的最高位(万位)d5number=Integer.parseInt(str);【代码 3】/计算 number 的千位 d4【代码 4】/计算 number 的百位 d3d1=number%10;d2=number%100/10; if(【代码 5】) /判断 number 是 5 位数的条件 System.out.println(number+是 5 位数); else System.out.println(number+是回文数); if(【代码 6】) /判断 number 是回文数的条件 System.o
14、ut.println(number+不是回文数); else if(【代码 7】) /判断 number 是 4 位数的条件System.out.println(number+是 4 位数); if(【代码 8】) /判断 number 是回文数的条件码 System.out.println(number+是回文数); else System.out.println(number+不是回文数); else if(【代码 9】) /判断 number 是 3 位数的条件 System.out.println(number+是 3 位数);if(【代码 10】)/判断 number 是回文数的条件
15、 System.out.println(number+是回文数); else else if(d2!=0) System.out.println(number+不是回文数);if(d1=d2)System.out.println(number+是回文数); else System.out.println(number+是 2 位数);System.out.println(number+不是回文数); else if(d1!=0) System.out.println(number+是 1 位数);System.out.println(number+是回文数); else System.out.
16、printf(n%d 不在 1 至 99999 之间,number);实验 3猜数字游戏1答案: 【代码 1】: yourGuess!=realNumber【代码 2】: yourGuessrealNumber【代码 3】: yourGuess=90)/如果成绩大于等于 90,条件表达式为 score =90System.out.println(s+优秀!);/ 语句序列 1else if (score =80 & score =70 & score =60 & score 70) / 如果成绩为 60-70System.out.println(s+及格!);/语句序列 4else/如果成绩小
17、于 60System.out.println(s+不及格!); / 语句序列 5 实验 5根据某学生的学习成绩,输出相应的信息说明: 文件名:MySeason.java;使用 if-else-if 嵌套编程确定某一月在哪个季节。 public class MySeasonint month=7; char season; public static void main(String arg) if(month =12 | month = 1 | month =2) /使用 if-else-if 确定某月在哪个季节 season =冬;season = 春; else if (month =3
18、| month =4 | month=5) else if (month =6 | month =7 | month=8)season =夏; else if (month =9 | month =10 | month =11)season =秋;else/ 当输入值不在 112 之间时,为非法数据System.out.println(非法月份数据! ); return; System.out.println(month+月在+ season +季 ); 实验 6找出所有的水仙花数并输出说明: 文件名:Narcissus.java提示:水仙花数是三位整数,它的各位数字的立方和等于这个数本身。例
19、如:371=33+73+13,则 371 就是一个水仙花数 public class Narcissuspublic static void main(String args )int i,j,k,n=100,m=1;while(n1000)i=n/100; j=(n-i*100)/10;k=n%10;if (Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3)=n) System.out.println(找到第+m+个水仙花数:+n);m+; n+;实验 7用星号“*”和数字“0-9”排出三角形说明: 文件名:PrintDemo1.java 和 PrintDem
20、o2.javaPrintDemo1.javaPrintDemo2.java/PrintDemo1.javapublic class PrintDemo1 public static void main(String args ) for (int i=1;i0) j=j-1; System.out.print( ); for(int k=1;k=9-(i-1)*2;k+)System.out.print(*);System.out.println();/PrintDemo2.javapublic class PrintDemo2 public static void main(String a
21、rgs )for (int i=0;i=9;i+)int j=1;while(j=11-i) System.out.print( );j=j+1;for(int k=1;k=i*2+1;k+) System.out.print(i);System.out.println();实验 8找 1100 之间的素数说明: 文件名:PrimeDemo.java/* 所谓质数或称素数,就是一个正整数,除了本身和 1 能整除外,不能被任何其数整除。例如 2,3,5,7 是质数,而 4,6,8,9 则不是,后者称为合成数或合数。从这个观点可将整数分为两种,一种叫质数,一种叫合成数。*/public class
22、 PrimeDemopublic static void main(String args) Outerloop:for(int i=1;i100;i+) if(i%j)=0)continue Outerloop;System.out.println(i);for(int j=2;ji;j+)实验 9打印图形说明: 文件名:PrimeDemo.java;打印图形如下: # # # # #public class ContDemo public static void main(String args )int x;for(x=1;x21;x+)if( x % 4 != 0 )continue;
23、 System.out.print(#);System.out.println();实验 10break 和 continue 示范语句说明: 文件名:BreakAndContinue.java public class BreakAndContinuefor (int i=0;i1E-6)/ 当两根之间的差小于 10-6 时,循环结束 x1=x; f=x1*x1*x1-2.0*x1*x1+4.0*x1+1.0;f1=3.0*x1*x1-4.0*x1+4.0;x=x1-f/f1; System.out.println(求出的实根为+x); 上机实践 3类与对象 实验 1三角形、梯形和圆形的类封
24、装1答案: 【代码 1】:sideA=a;sideB=b;sideC=c;【代码 3】: boo=true;【代码 2】: a+bc&a+cb&c+ba【代码 4】: boo=false;【代码 5】: if(boo)elsereturn length; length=sideA+sideB+sideC; System.out.println(不是一个三角形,不能计算周长);return 0;【代码 6】: sideA=a;sideB=b;sideC=c;【代码 7】: a+bc&a+cb&c+ba【代码 8】: boo=true;【代码 9】: boo=false;【代码 10】: abov
25、e=a; bottom=b; height=h;【代码 11】: return area; area=(above+bottom)/2*height;【代码 12】: radius=r;【代码 13】: return 3.14*radius*radius;【代码 14】: return 3.14*2*radius;【代码 15】: circle=new Circle(10);【代码 16】: trangle=new Trangle(3,4,5);【代码 17】: lader=new Lader(3,4,10);【代码 18】: length=circle.getLength();【代码 19】
26、: area=circle.getArea();【代码 20】: length=trangle.getLength();【代码 21】: area=trangle.getArea();【代码 22】: area=lader.getArea();【代码 23】: trangle.setABC(12,34,1);【代码 24】: area=trangle.getArea();【代码 25】: length=trangle.getLength(); 2模板代码 文件名:AreaAndLength.javaclass Trangle double sideA,sideB,sideC,area,leng
27、th; boolean boo; publicTrangle(double a,double b,double c) 【代码 1】 /参数 a,b,c 分别赋值给 sideA,sideB,sideC if(【代码 2】)/a,b,c 构成三角形的条件表达式【代码 3】 /给 boo 赋值。else 【代码 4】 /给 boo 赋值。 double getLength() 【代码 5】 /方法体,要求计算出 length 的值并返回 public doublegetArea()if(boo) double p=(sideA+sideB+sideC)/2.0;elsereturn area; ar
28、ea=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC) ; System.out.println(不是一个三角形,不能计算面积);return 0; public void setABC(double a,double b,double c) 【代码 6】 /参数 a,b,c 分别赋值给 sideA,sideB,sideCif(【代码 7】) /a,b,c 构成三角形的条件表达式【代码 8】 /给 boo 赋值。else 【代码 9】 /给 boo 赋值。 class Lader double above,bottom,height,area;Lader(do
29、uble a,double b,double h) 【代码 10】 /方法体,将参数 a,b,c 分别赋值给 above,bottom,heightdouble getArea() 【代码 11】 /方法体,,要求计算出 area 返回 class Circle Circle(double r) double radius,area; 【代码 12】 /方法体 double getArea() double getLength() 【代码 14】 /getArea 方法体的代码,要求计算出 length 返回 【代码 13】 /方法体,要求计算出 area 返回 void setRadius(
30、double newRadius) radius=newRadius double getRadius() return radius; public class AreaAndLength double length,area; public static void main(Stringargs) Circle circle=null;Trangle trangle;Lader lader;【代码 15】 /创建对象 circle 【代码 16】 /创建对象 trangle。 【代码 17】 /创建对象 laderSystem.out.println(圆的周长:+length); 【代码
31、18】 / circle 调用方法返回周长并赋值给 length 【代码 19】 / circle 调用方法返回面积并赋值给 areaSystem.out.println(圆的面积:+area);System.out.println(三角形的周长:+length); 【代码 20】 / trangle 调用方法返回周长并赋值给 length 【代码 21】 / trangle 调用方法返回面积并赋值给 areaSystem.out.println(三角形的面积:+area);System.out.println(梯形的面积:+area); 【代码 22】 / lader 调用方法返回面积并赋值
32、给 area 【代码 23】 / trangle 调用方法设置三个边,要求将三个边修改为 12,34,1,不能构成三角形。 【代码 24】 / trangle 调用方法返回面积并赋值给 areaSystem.out.println(三角形的面积:+area); 【代码 25】 / trangle 调用方法返回周长并赋值给 lengthSystem.out.println(三角形的周长:+length); 实验 2实例成员与类成员1答案: 【代码 2】: static float b;【代码 1】: float a;【代码 3】: this.a=a;【代码 4】: this.b=b;【代码 5】
33、: A.b=100;【代码 6】: A.inputB(); 【代码 7】: cat.setA(200);【代码 8】: cat.setB(400);【代码 9】: dog.setA(150);【代码 10】:dog.setB(300);【代码 11】:cat.inputA();【代码 12】:cat.inputB();【代码 13】:dog.inputA();【代码 14】:dog.inputB(); 2模板代码 文件名:Example.java;此程序有两个类,即 A 和 Example 两个类,其中 A 为普同类,Example 为公共类和主类。在 Example 类中,可以直接调用 A
34、类的方法,或创建 A 类的对象来调用A 类的方法。 void setA(float a) /声明一个 float 型类变量 b,即 static 变量 b【代码 2】/声明一个 float 型实例变量 a【代码 1】class A/将参数 b 的值赋值给成员变量 b【代码 4】void setB(float b) /将参数 a 的值赋值给成员变量 a【代码 3】return a; float getA() float getB()return b;void inputA() System.out.println(a);static void inputB() System.out.printl
35、n(b);public class Example public static void main(String args)【代码 10】/dog 调用方法 setB(int b)将 dog 的成员 b 的值设置为 300/dog 象调用方法 setA(int a)将 dog 的成员 a 的值设置为 150【代码 9】/cat 调用方法 setB(int b)将 cat 的成员 b 的值设置为 400【代码 8】/cat 象调用方法 setA(int a)将 cat 的成员 a 的值设置为 200【代码 7】A cat=new A(); A dog=new A();/通过类名调用方法 inpu
36、tB()【代码 6】/通过类名操作类变量 b,并赋值 100【代码 5】【代码 11】/cat 调用 inputA()。 【代码 12】/cat 调用 inputB()。 【代码 13】/dog 调用 inputA()。 【代码 14】/dog 调用 inputB()。 实验 3使用 package 语句与 import 语句1. 答案:无 2. 模板代码 此程序有两个类, 分别为两个文件即 SquareEquation.java 和 SunRise.java ,其中SquareEquation.java 文件编译后的 class 保存在 tom.jiafei 文件夹中;而在 SunRise
37、类中, 先引入 SquareEquation,再创建其对象,通过对象调用其方法,实现相应的功能。 文件名:SquareEquation.javapackage tom.jiafei;public class SquareEquation /公共类double a,b,c; boolean boo; double root1,root2; publicSquareEquation(double a,double b,double c)this.a=a;this.b=b;this.c=c;if(a!=0)boo=true;elseboo=false;if(boo) public voidgetRo
38、ots() System.out.println(是一元 2 次方程);if(disk=0) double disk=b*b-4*a*c;root2=(-b-Math.sqrt(disk)/(2*a);System.out.printf(方程的根:%f,%fn,root1,root2);elseroot1=(-b+Math.sqrt(disk)/(2*a);System.out.printf(方程没有实根n);System.out.println(不是一元 2 次方程);public void setCoefficient(double a,double b,double c)this.b=b
39、; this.c=c; if(a!=0) else boo=fals e;boo=true; this.a=a;else文件名:SunRise.java 主类 import tom.jiafei.*;/引入 tom.jiafei 文件夹中的所有类,即 SquareEquation. class class SunRise /创建 SquareEquation 类的对象 equationpublic static void main(String args ) SquareEquation equation=new SquareEquation(4,5,1);/通过对象 equation 调用其
40、方法equation.getRoots();equation.getRoots(); equation.setCoefficient(-3,4,5); 实验 4类之间的调用综合练习(同一个文件不同类调用、package 语句和 import 语句)1. 原程序功能:一个为 JC的类,类中有两个方法multi()和main()。multi()方法完成 v 的阶乘计算。main()方法中反复调用 multi()方法完成 5!、6!、7!的阶乘,并将结果输出。 /文件名:JC.java import java.io.*;import java.lang.*;public class JC stati
41、c double multi(int v)/ 第一个方法开始long i; m=m*i;/ 循环相乘,求阶乘 for(i=1;i=v;i+)m=1; double m;/ 第一个方法结束 / 返回求得的阶乘值 return m; public static void main(String arg) / 第二个方法开始 double r1,r2,r3;r1=multi(5);/ 调用第一个方法,求 5! r2=multi(6);/ 调用第一个方法,求 6! r3=multi(7);/ 调用第一个方法,求 7! System.out.println(5!=+r1);/ 输出 5! System.out.println(6!=+r2);/ 输出 6! System.out.println(7!=+r3);/ 输出 7! / 第二个方法结束 2. 第 1 次修改:在原程序(JC.java)的基础上,将程序改为求解任意整数 N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安全考核模拟题库讲解带答案详解(培优B卷)
- 2026年咨询工程师练习题包及参考答案详解【研优卷】
- 2026浙江工商大学人工智能科教融合学院招聘1人考试备考题库及答案解析
- 2026年荆州市文化旅游投资发展集团有限公司社会招聘28人考试参考题库及答案解析
- 普法知识竞赛试题及答案解析六五普法实战演练
- 2026广东科学技术职业学院招聘9人(编制)考试参考题库及答案解析
- 2026广东中山市西区医院第一期招聘合同制人员7人考试参考题库及答案解析
- 2026山东青岛日报报业集团(青岛日报社)招聘1人考试参考题库及答案解析
- 2026吉林松原市市直事业单位招聘工作人员(含专项招聘高校毕业生)182人(2号)考试参考试题及答案解析
- 2026年甘肃省酒泉市第二人民医院康复治疗人员招聘事宜补充考试备考试题及答案解析
- (2025年)淄博市周村区公共基础辅警考试笔试题库及答案
- 小学科学大单元教学设计与实践研究-以“植物的生长变化”单元为例
- 驼峰调车课件
- 2026年交管12123学法减分复习考试题库含答案(新)
- 2026年医药制造公司产品成本核算规程管理制度
- 2025年植保无人机应用推广项目可行性研究报告
- DB5104-T 82-2023 康养产业项目认定规范
- 【地理 】2026年中考地理总复习综合题答题模板课件
- 10kV及以下配电工程验收规范详解
- 监理工作质量月评分表
- 风电混凝土塔筒预制示范基地开发项目环境影响报告表
评论
0/150
提交评论