版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著 耿祥义 张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单视图文档结构图)上机实践1 初识JAVA3实验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实验接口回调21上机实践5
2、字符串、时间与数字23实验1 String类的常用方法23实验2 比较日期的大小24实验3 处理大整数25上机实践6 组件及事件处理26实验1 算术测试26实验2 信号灯29实验3 布局与日历31上机实践7 组件及事件处理235实验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
3、基于UDP的图像传输67上机实践11 数据结构71实验1 扫雷小游戏71实验2 排序与查找76实验3 使用TreeSet排序77上机实践12 JAVA SWING79实验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.javapublic clas
4、s 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模板
5、代码 FirstApplet.javaimport 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中绘制一行文字:“我
6、改变了字体” 实验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.javapublic class MainClass public static void main (String args ) System.out.pr
7、intln("你好,只需编译我") ; /命令行窗口输出"你好,只需编译我" A a=new A(); a.fA(); B b=new B(); b.fB(); 模板2 :A.javapublic class A void fA() System.out.println("I am A ") ; /命令行窗口输出"I am A" 模板3 :B.javapublic class B void fB() System.out.println("I am B"); /命令行窗口输出"I am
8、 B" 模板4 :C.javapublic class C void fC() System.out.println("I am C"); /命令行窗口输出"I am C" 上机实践2 基本数据类型与控制语句实验1 输出希腊字母表1答案:【代码1】: startPosition=(int)cStart;【代码2】: endPosition=(int)cEnd ; 【代码3】: c=(char)i; 2模板代码 GreekAlphabet.javapublic class GreekAlphabet public static void main
9、 (String args ) int startPosition=0,endPosition=0; char cStart='',cEnd='' 【代码1】 /cStart做int型转换据运算,并将结果赋值给startPosition 【代码2】 /cEnd做int型转换运算,并将结果赋值给endPosition System.out.println("希腊字母''在unicode表中的顺序位置:"+(int)c); System.out.println("希腊字母表:"); for(int i=star
10、tPosition;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%1
11、000/100;【代码5】: d5!=0【代码6】: d1=d5&&d2=d4【代码7】: d4!=0【代码8】: d1=d4&&d2=d3【代码9】: d3!=0【代码10】:d1=d32模板代码 Number.javaimport 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
12、之间的数"); 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
13、+"是回文数"); 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位数
14、的条件 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.
15、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<realN
16、umber 2模板代码 GuessNumber.javaimport 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("输入您的猜测:"); y
17、ourGuess=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("猜对了
18、!"); 上机实践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
19、;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】: tran
20、gle=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.
21、getLength();2模板代码 AreaAndLength.javaclass 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 do
22、uble 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】
23、/给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返回 do
24、uble 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】 /创
25、建对象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调用方法返回面积并赋值给are
26、a 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
27、("三角形的周长:"+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();【代码
28、14】:dog.inputB();2模板代码 Example.javaclass 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.prin
29、tln(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)将
30、dog的成员b的值设置为300 【代码11】 /cat调用inputA()。 【代码12】 /cat调用inputB()。 【代码13】 /dog调用inputA()。 【代码14】 /dog调用inputB()。 实验3 使用package语句与import语句1答案:无2模板代码 SquareEquation.javapackage tom.jiafei;public class SquareEquation double a,b,c; double root1,root2; boolean boo; public SquareEquation(double a,double b,doub
31、le 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,%fn",root1,root2
32、); 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.javaimport tom.jiafei.*;class SunRise public static void main(String args ) S
33、quareEquation 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("中国人的平均身高
34、:"+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 avera
35、geHeight() 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 spea
36、kHello() System.out.println("您好"); 【代码10】: public void averageHeight() height=16; System.out.println("北京人的平均身高:"+height+"厘米"); 【代码11】: public void averageWeight() weight=6; System.out.println("北京人的平均体重:"+weight+"公斤"); 【代码12】: System.out.println("
37、;京剧术语");2模板代码 Example.javaclass People protected double weight,height; public void speakHello() System.out.println("yayawawa"); public void averageHeight() height=173; System.out.println("average height:"+height); public void averageWeight() weight=70; System.out.println(&qu
38、ot;average weight:"+weight); class ChinaPeople extends People 【代码1】 /重写public void speakHello()方法,要求输出类似“你好,吃了吗”这样的 /汉语信息【代码2】 /重写public void averageHeight()方法,要求输出类似 /“中国人的平均身高:168.78厘米”这样的汉语信息【代码3】 /重写public void averageWeight()方法, /要求输出类似“中国人的平均体重:65公斤”这样的汉语信息 public void chinaGongfu() 【代码4】
39、/输出中国武术的信息,例如:"坐如钟,站如松,睡如弓"等 class AmericanPeople extends People【代码5】 /重写public void speakHello()方法,要求输出类似 /“How do you do”这样的英语信息。【代码6】 /重写public void averageHeight()方法 【代码7】 /重写public void averageWeight()方法 public void americanBoxing() 【代码8】/输出拳击的信息,例如,“直拳”、“钩拳”等 class BeijingPeople exte
40、nds ChinaPeople 【代码9】 /重写public void speakHello()方法,要求输出类似“您好”这样的汉语信息 【代码10】 /重写public void averageHeight()方法 【代码11】 /重写public void averageWeight()方法 public void beijingOpera() 【代码12】/输出京剧的信息 public class Example public static void main(String args) ChinaPeople chinaPeople=new ChinaPeople(); America
41、nPeople americanPeople=new AmericanPeople(); BeijingPeople beijingPeople=new BeijingPeople(); chinaPeople.speakHello(); americanPeople.speakHello(); beijingPeople.speakHello(); chinaPeople.averageHeight(); americanPeople.averageHeight(); beijingPeople.averageHeight(); chinaPeople.averageWeight(); am
42、ericanPeople.averageWeight(); beijingPeople.averageWeight(); chinaPeople.chinaGongfu(); americanPeople.americanBoxing(); beijingPeople.beijingOpera() ; beijingPeople.chinaGongfu(); 实验2 上转型对象1答案:【代码1】: public double earnings() return 50000.456; 【代码2】: public double earnings() return 12*2300; 【代码3】: p
43、ublic double earnings() return 52*500; 【代码4】: for(int i=0;i<employee.length;i+) salaries=salaries+employeei.earnings(); 2模板代码 HardWork.javaabstract class Employee public abstract double earnings();class YearWorker extends Employee 【代码1】 /重写earnings()方法class MonthWorker extends Employee 【代码2】 /重写earnings()方法。class WeekWorker extends Employee 【代码3】 /重写earnings()方法。class Company Employ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 挤压模拟课程设计
- 银行支行的行政后勤工作综述
- 宠物服务员工作总结
- 港口货物装卸合同三篇
- 三年级科学学科的教学工作总结
- 门诊护士年终总结
- 【八年级下册历史】期中达标测试卷
- 2024年统计员年终工作总结篇
- 2024-2025学年北京门头沟区 初三(上)期末物物理试卷(含答案)
- 分包采购委托合同(2篇)
- 2025年云南昆明经济技术开发区投资开发(集团)有限公司招聘笔试参考题库附带答案详解
- HSE基础知识培训
- 安徽省蚌埠市2023-2024学年高一上学期期末考试 地理 含答案
- GB/T 5483-2024天然石膏
- 2024年度托管班二人合伙协议书3篇
- 山东中医药大学中西医临床(专升本)学士学位考试复习题
- 2024-2025学年九年级语文上册部编版期末综合模拟试卷(含答案)
- 乡村振兴暨干部素质提升培训班学习心得体会
- IATF16949:2024标准质量手册
- 饲料加工混凝土施工合同
- 会议会务服务投标方案投标文件(技术方案)
评论
0/150
提交评论