收藏 分销(赏)

Java2实用教程(3版)实验代码及答案.doc

上传人:xrp****65 文档编号:7008243 上传时间:2024-12-24 格式:DOC 页数:87 大小:516.50KB 下载积分:10 金币
下载 相关 举报
Java2实用教程(3版)实验代码及答案.doc_第1页
第1页 / 共87页
Java2实用教程(3版)实验代码及答案.doc_第2页
第2页 / 共87页


点击查看更多>>
资源描述
Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码及答案 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识JAVA 3 实验1 一个简单的应用程序 3 实验2 一个简单的Java Applet程序 3 实验3 联合编译 4 上机实践2 基本数据类型与控制语句 5 实验1 输出希腊字母表 5 实验2 回文数 6 实验3 猜数字游戏 8 上机实践3 类与对象 9 实验1 三角形、梯形和圆形的类封装 9 实验2 实例成员与类成员 12 实验3 使用package语句与import语句 14 上机实践4 继承与接口 16 实验1 继承 16 实验2 上转型对象 19 实验3 接口回调 21 上机实践5 字符串、时间与数字 23 实验1 String类的常用方法 23 实验2 比较日期的大小 24 实验3 处理大整数 25 上机实践6 组件及事件处理 26 实验1 算术测试 26 实验2 信号灯 29 实验3 布局与日历 31 上机实践7 组件及事件处理2 35 实验1 方程求根 35 实验2 字体对话框 38 实验3 英语单词拼写训练 41 上机实践8 多线程 45 实验1 汉字打字练习 45 实验2 旋转的行星 47 实验3 双线程接力 51 上机实践9 输入输出流 54 实验1 学读汉字 54 实验2 统计英文单词字 57 实验2 读取Zip文件 61 上机实践10 JAVA 中的网络编程 62 实验1 读取服务器端文件 62 实验2 使用套接字读取服务器端对象 64 实验3 基于UDP的图像传输 67 上机实践11 数据结构 71 实验1 扫雷小游戏 71 实验2 排序与查找 76 实验3 使用TreeSet排序 77 上机实践12 JAVA SWING 79 实验1 JLayeredPane分层窗格 79 实验2 使用表格显示日历 80 实验3 多文档界面(MDI) 83 上机实践1 初识Java 实验1 一个简单的应用程序 1.答案: 【代码1】: System.out.println("你好,很高兴学习Java") ; 【代码2】: System.out.println("We are students") ; 2.模板代码 Hello.java public class Hello { public static void main (String args[ ]) { 【代码1】 //命令行窗口输出"你好,很高兴学习Java" A a=new A(); a.fA(); } } class A { void fA() { 【代码2】 //命令行窗口输出"We are students" } } 实验2 一个简单的Java Applet程序 1.答案: 【代码1】: g.drawString("这是一个Java Applet 程序",10,30); 【代码2】: g.drawString("我改变了字体",20,50); 2.模板代码 FirstApplet.java import java.applet.*; import java.awt.*; public class FirstApplet extends Applet { public void paint(Graphics g) { g.setColor(Color.blue); 【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red); g.setFont(new Font("宋体",Font.BOLD,36)); 【代码2】//在Java Applet中绘制一行文字:“我改变了字体” } } 实验3 联合编译 1.答案: 【代码1】: System.out.println("你好,只需编译我"); 【代码2】: System.out.println("I am A"); 【代码3】: System.out.println("I am B"); 【代码4】: System.out.println("I am C"); 2.模板代码 模板1:Hello.java public class MainClass { public static void main (String args[ ]) { 【代码1】 //命令行窗口输出"你好,只需编译我" A a=new A(); a.fA(); B b=new B(); b.fB(); } } 模板2 :A.java public class A { void fA() { 【代码2】 //命令行窗口输出"I am A" } } 模板3 :B.java public class B { void fB() { 【代码3】 //命令行窗口输出"I am B" } } 模板4 :C.java public class C { void fC() { 【代码4】 //命令行窗口输出"I am C" } } 上机实践2 基本数据类型与控制语句 实验1 输出希腊字母表 1.答案: 【代码1】: startPosition=(int)cStart; 【代码2】: endPosition=(int)cEnd ; 【代码3】: c=(char)i; 2.模板代码 GreekAlphabet.java public class GreekAlphabet { public static void main (String args[ ]) { int startPosition=0,endPosition=0; char cStart='α',cEnd='ω'; 【代码1】 //cStart做int型转换据运算,并将结果赋值给startPosition 【代码2】 //cEnd做int型转换运算,并将结果赋值给endPosition System.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)cStart); System.out.println("希腊字母表:"); for(int i=startPosition;i<=endPosition;i++) { char c='\0'; 【代码3】 //i做char型转换运算,并将结果赋值给c System.out.print(" "+c); if((i-startPosition+1)%10==0) System.out.println(""); } } } 实验2 回文数 1.答案: 【代码1】: number<=99999&&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 【代码9】: d3!=0 【代码10】:d1==d3 2.模板代码 Number.java import javax.swing.JOptionPane; public class Number { public static void main(String args[]) { int number=0,d5,d4,d3,d2,d1; String str=JOptionPane.showInputDialog("输入一个1至99999之间的数"); number=Integer.parseInt(str); if(【代码1】) //判断number在1至99999之间的条件 { 【代码2】 //计算number的最高位(万位)d5 【代码3】 //计算number的千位d4 【代码4】 //计算number的百位d3 d2=number%100/10; d1=number%10; if(【代码5】) //判断number是5位数的条件 { System.out.println(number+"是5位数"); if(【代码6】) //判断number是回文数的条件 { System.out.println(number+"是回文数"); } else { System.out.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是回文数的条件 { System.out.println(number+"是回文数"); } else { System.out.println(number+"不是回文数"); } } else if(d2!=0) { System.out.println(number+"是2位数"); if(d1==d2) { System.out.println(number+"是回文数"); } else { System.out.println(number+"不是回文数"); } } else if(d1!=0) { System.out.println(number+"是1位数"); System.out.println(number+"是回文数"); } } else { System.out.printf("\n%d不在1至99999之间",number); } } } 实验3 猜数字游戏 1.答案: 【代码1】: yourGuess!=realNumber 【代码2】: yourGuess>realNumber 【代码3】: yourGuess<realNumber 2.模板代码 GuessNumber.java import javax.swing.JOptionPane; public class GuessNumber { public static void main (String args[ ]) { System.out.println("给你一个1至100之间的整数,请猜测这个数"); int realNumber=(int)(Math.random()*100)+1; int yourGuess=0; String str=JOptionPane.showInputDialog("输入您的猜测:"); yourGuess=Integer.parseInt(str); while(【代码1】) //循环条件 { if(【代码2】) //条件代码 { str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:"); yourGuess=Integer.parseInt(str); } else if(【代码3】) //条件代码 { str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:"); yourGuess=Integer.parseInt(str); } } System.out.println("猜对了!"); } } 上机实践3 类与对象 实验1 三角形、梯形和圆形的类封装 1.答案: 【代码1】: sideA=a; sideB=b; sideC=c; 【代码2】: a+b>c&&a+c>b&&c+b>a 【代码3】: boo=true; 【代码4】: boo=false; 【代码5】: if(boo) { length=sideA+sideB+sideC; return length; } else { System.out.println("不是一个三角形,不能计算周长"); return 0; } 【代码6】: sideA=a;sideB=b;sideC=c; 【代码7】: a+b>c&&a+c>b&&c+b>a 【代码8】: boo=true; 【代码9】: boo=false; 【代码10】: above=a; bottom=b; height=h; 【代码11】: area=(above+bottom)/2*height; return area; 【代码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】: 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.java class Trangle { double sideA,sideB,sideC,area,length; boolean boo; public Trangle(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 double getArea() { if(boo) { double p=(sideA+sideB+sideC)/2.0; area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ; return area; } else { System.out.println("不是一个三角形,不能计算面积"); return 0; } } public void setABC(double a,double b,double c) { 【代码6】 //参数a,b,c分别赋值给sideA,sideB,sideC if(【代码7】) //a,b,c构成三角形的条件表达式 { 【代码8】 //给boo赋值。 } else { 【代码9】 //给boo赋值。 } } } class Lader { double above,bottom,height,area; Lader(double a,double b,double h) { 【代码10】 //方法体,将参数a,b,c分别赋值给above,bottom,height } double getArea() { 【代码11】 //方法体,,要求计算出area返回 } } class Circle { double radius,area; Circle(double r) { 【代码12】 //方法体 } double getArea() { 【代码13】 //方法体,要求计算出area返回 } double getLength() { 【代码14】 //getArea方法体的代码,要求计算出length返回 } void setRadius(double newRadius) { radius=newRadius; } double getRadius() { return radius; } } public class AreaAndLength { public static void main(String args[]) { double length,area; Circle circle=null; Trangle trangle; Lader lader; 【代码15】 //创建对象circle 【代码16】 //创建对象trangle。 【代码17】 //创建对象lader 【代码18】 // circle调用方法返回周长并赋值给length System.out.println("圆的周长:"+length); 【代码19】 // circle调用方法返回面积并赋值给area System.out.println("圆的面积:"+area); 【代码20】 // trangle调用方法返回周长并赋值给length System.out.println("三角形的周长:"+length); 【代码21】 // trangle调用方法返回面积并赋值给area System.out.println("三角形的面积:"+area); 【代码22】 // lader调用方法返回面积并赋值给area System.out.println("梯形的面积:"+area); 【代码23】 // trangle调用方法设置三个边,要求将三个边修改为12,34,1。 【代码24】 // trangle调用方法返回面积并赋值给area System.out.println("三角形的面积:"+area); 【代码25】 // trangle调用方法返回周长并赋值给length System.out.println("三角形的周长:"+length); } } 实验2 实例成员与类成员 1.答案: 【代码1】: float a; 【代码2】: static float b; 【代码3】: this.a=a; 【代码4】: this.b=b; 【代码5】: 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 class A { 【代码1】 //声明一个float型实例变量a 【代码2】 //声明一个float型类变量b,即static变量b void setA(float a) { 【代码3】 //将参数a的值赋值给成员变量a } void setB(float b) { 【代码4】 //将参数b的值赋值给成员变量b } float getA() { return a; } float getB() { return b; } void inputA() { System.out.println(a); } static void inputB() { System.out.println(b); } } public class Example { public static void main(String args[]) { 【代码5】 //通过类名操作类变量b,并赋值100 【代码6】 //通过类名调用方法inputB() A cat=new A(); A dog=new A(); 【代码7】 //cat象调用方法setA(int a)将cat的成员a的值设置为200 【代码8】 //cat调用方法setB(int b)将cat的成员b的值设置为400 【代码9】 //dog象调用方法setA(int a)将dog的成员a的值设置为150 【代码10】 //dog调用方法setB(int b)将dog的成员b的值设置为300 【代码11】 //cat调用inputA()。 【代码12】 //cat调用inputB()。 【代码13】 //dog调用inputA()。 【代码14】 //dog调用inputB()。 } } 实验3 使用package语句与import语句 1.答案:无 2.模板代码 SquareEquation.java package tom.jiafei; public class SquareEquation { double a,b,c; double root1,root2; boolean boo; public SquareEquation(double a,double b,double c) { this.a=a; this.b=b; this.c=c; if(a!=0) { boo=true; } else { boo=false; } } public void getRoots() { if(boo) { System.out.println("是一元2次方程"); double disk=b*b-4*a*c; if(disk>=0) { root1=(-b+Math.sqrt(disk))/(2*a); root2=(-b-Math.sqrt(disk))/(2*a); System.out.printf("方程的根:%f,%f\n",root1,root2); } else { System.out.printf("方程没有实根\n"); } } else { System.out.println("不是一元2次方程"); } } public void setCoefficient(double a,double b,double c) { this.a=a; this.b=b; this.c=c; if(a!=0) { boo=true; } else { boo=false; } } } SunRise.java import tom.jiafei.*; class SunRise { public static void main(String args[ ]) { SquareEquation equation=new SquareEquation(4,5,1); equation.getRoots(); equation.setCoefficient(-3,4,5); equation.getRoots(); } } 上机实践4 继承与接口 实验1 继承 1.答案: 【代码1】: public void speakHello() { System.out.println("你好,吃饭了吗?"); } 【代码2】: public void averageHeight() { height=173; System.out.println("中国人的平均身高:"+height+"厘米"); } 【代码3】: public void averageWeight() { weight=67.34; System.out.println("中国人的平均体重:"+weight+"公斤"); } 【代码4】: System.out.println("坐如钟,站如松,睡如弓"); 【代码5】: public void speakHello() { System.out.println("How do You do"); } 【代码6】: public void averageHeight() { height=188; System.out.println("Amerian Average height:"+height+" cm"); } 【代码7】: public void averageWeight() { weight=80.23; System.out.println("Amerian Average weight:"+weight+" kg"); } 【代码8】: System.out.println("直拳、钩拳"); 【代码9】: public void speakHello() { System.out.println("您好"); } 【代码10】: public void averageHeight() { height=16; System.out.println("北京人的平均身高:"+height+"厘米"); } 【代码11】: p
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服