《Java大学实用教程学习指导(第2版).docx》由会员分享,可在线阅读,更多相关《Java大学实用教程学习指导(第2版).docx(108页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java大学实用教程学习指导(第2版)清华大学出版社(编著张跃平耿祥义)& 实验模版代码及答案 &建议使用文档结构图(选择Word菜单视图一文档结构图)第1章 JAVA语言概述4实验1 个简单的应用程序4实验2 个简单的Java Applet程序4第2章 基本数据类型和数组5实验1输出俄文字母表5实验2 从键盘输入数据5第3章 运算符、表达式与语句6实验1猜数字6实验2回文数7第4章类与对象8实验1有理数的类封装8实验2实例成员与类成员11第5章继承与接口14实验1 继承14实验2上转型对象16实验3接回调17实验4 异常处理19上机实践6组件及事件处理20实验1算术测试20实验2 信号灯22
2、实验3 布局与日历22上机实践7组件及事件处理2错误!未定义书签。实验1方程求根24实验2字体对话框24上机实践8多线程27实验1汉字打字练习30实验2旋转的行星32实验3双线程接32上机实践9输入输出流40实验1学读汉字40实验2统计英文单词字41实验2读取ZIP文件41上机实践10 JAVA中的网络编程错误!未定义书签。实验1读取服务器端文件49实验2使用套接字读取服务器端对象50实验3基于UDP的图像传输53上机实践11数据结构错误!未定义书签。实验1扫雷小游戏74实验2排序与查找76实验3使用treeset排序77上机实践!2 JAVA SWING80实验1 JLAYEREDPANE分
3、层窗格错误!未定义书签。实验2使用表格显示日历86实验3多文档界面(MDI) 87第1章Java语言概述实验1 个简单的应用程序1 .答案:【代码1】:System.out.println(你好,很高兴学习Java);代码 2: System.out.println(MWe are students);2 .模板代码Hello.javapublic class Hello public static void main (String args )【代码1I命令行窗口输出”你好,很高兴学习JavaA a=new A();a.fA();class A void fA() 【代码2】命令行窗口输出
4、We are students)实验2一个简单的Java Applet程序1 .答案:【代码 1】:g.drawString(这是个 Java Applet 程序,10,3);代码 2:g.drawString(我改变了字体,20,8);2 .模板代码FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet public void paint(Graphics g) g.setColor(Color.blue);【代码1】在Java Applet中绘制行文字:这是
5、个Java Applet程序”。 g.setColor(Color.red);g.setFont(new Font(“宋体”,Font.BOLD,36);【代码2】在Java Applet中绘制一行文字:“我改变了字体”。 )第2章 基本数据类型和数组实验1输出俄文字母表1 .答案:【代码 1】:startPosition=(int)cStart;代码 2 : endPosition=(int)cEnd ;【代码3:c=(char)i;2 .模板代码Russian.javapublic class Russian (public static void main (String args )
6、int startPosition=0,endPosition=0;char cStart= a *,cEnd=8;【代码1】 cStart做int类型转换运算,并将结果赋值给startPosition代码2 /cEnd做int类型转换运算,并将结果赋值给cndPositionSystem.out.println(俄文字母共有:);System.out.println(cndPosition-startPosition+l+,?b);fbr(int i=startPosition;irealNumber代码 4:yourGuess=reader.nextInt();代码 5 :yourGues
7、srealNumber代码 6 :yourGuess=reader.nextInt();3 .模板代码GuessNumber.javaimport java.util.*;public class GuessNumber (public static void main (String args ) System.out.println(给你个1至100之间的整数,请猜测这个数);int realNumber=(int)(Math.random()*l 00)+1;int yourGuess=0;Scanner reader=new Scanner(System.in);System.out.
8、println(输入您的猜测);【代码1】reader调用方法获取用户从键盘键入的整数,并赋值给yourGuesswhile (【代码2)(循环条件if (【代码3】乂条件代码System.out.println(猜大了,请再猜:);【代码4】 reader调用方法获取用户从键盘键入的整数,并赋值给yourGuess else if(【代码5】) 条件代码System.oin.println(猜小 了,请再猜:);代码6 /reader调用方法获取用户从键盘键入的整数,并赋值给yourGuess)System.out.println(猜对 了!);实验2回文数1 .答案:【代码 1 】:num
9、ber= 1代码 2 : d5=number/l 0000;代码 3 : d4=number% 10000/1000;代码 4 : d3=number% 1000/100;【代码5】:d5!=0代码 6: dl=d5&d2=d4【代码:d4!=0【代码 8 :dl=d4&d2=d3【代码9】:d3!=0代码10: dl=d32 .模板代码Number.javaimport java.util.*;public class Number (public static void main(String args|) int number=0,d5,d4,d3,d2,d 1;Scanner read
10、er=new Scanner(System.in);System.out.println(从健盘输入,个1至99999之间的数”);while(reader.hasNextInt() number=readcr.nextlnt();if(代码! )/判断number在1至99999之间的条件【代码2】 /Z计算number的最高位(万位)d5代码3/Z计算number的千位d4【代码4】计算number的百位d3d2=number%l 00/10;d 1 =number% 10;if(【代码5】) /判断number是5位数的条件System.out.printf(n%d 是 5 位数,num
11、ber);if (【代码6】)/判断number是回文数的条件System.out.printf(t%d 是回文数,number);elseSyslem.out.printf(,t%d 不是回文数 number);)else if (【代码7】)( /判断number是4位数的条件System.out.printf(,n%d 是 4 位数”,number);if (【代码8)判断number是回文数的条件System.out.printf(t%d 是回文数,number);elseSystem.out.printf(t%d 不是回文数”,number);)else if (代码9 ) /判断n
12、umber是3位数的条件System.out.printf(n%d 是 3 位数,number);if(【代码!0 ) /判断number是回文数的条件System.out.printf(t%d 是回文数,number);elseSystem.out.printf(t%d 不是回文数,number);)else if(d2!=0)System.out.printf(n%d 是 2 位数,number);if(dl=d2)System.out.prinlf(t%d 是回文数,number);elseSystem.out.printf(Ht%d 不是回文数,number);)else if(dl!
13、=O)System.out.printf(n%d 是 1 位数,number);System.out.printf(t%d 是回文数“,number);)elseSystem.out.printf(n%d 不在 1 至 99999 之间,number);System.out.printf(M%n可继续输入整数,或输入非整数结束程序n);ISystem.out.println(你输出的数据不是整数);第4章类与对象实验1有理数的类封装1 .答案:【代码 1:rl=new Rational(l,5);代码 2:r2=new Rational。;【代码 3:rl.add(r2);代码 4 :resu
14、lt.getNumerator();代码 5 :result. getDenominator();2 .模板代码Rational.javapublic class Rational int numerator,denominator;Rational()Rational(int a,int b) setNumeratorAndDenominator(a,b);)void setNumeratorAndDenominator(int ajnt b) 设置分子和分母 int c=f(Math.abs(a),Math.abs(b)J计算最大公约数numerator=a/c;denominator=b
15、/c;if(numerator0&denominator0)numerator-numerator;denominator=-denominator;)int getNumcratorO return numerator;1int getDenominator() return denominator;)int f(int a,int b) 求a和b的最大公约数 if(ac&a+cb&c+ba)( System.out.println(我是个三角形”);boo=true;elseSystem.out.println(我不是个三角形);boo=false;)public void 计算面积()i
16、f(boo)double p=(sideA+sideB+sideC)/2.0;double area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC);System.out.prinlln(是个三角形,能计算面积;System.oul.prinlln(面积是:+area);)elseSystem.out.println(不是个三角形,不能计算面积;public void 修改三边(double a. double b, double c)( sideA=a;sideB=b;sideC=c;if(a+bc&a+cb&c+ba)boo=true;elseboo=f
17、alse;)SunRise.javaimport tom.jiafei.Trangle;import java.util.Date;class SunRisefpublic static void main(String args )Trangle trangle=new Trangle( 12,3,104);trangle.计算面积();trangle.修改三边(3,4,5);trangle.计算面积();Date date=new Date();System.out.println(date);第5章继承与接口实验1继承1 .答案:【代码 1】: public void speakHell
18、o()(System.out.prinlln(你好,吃饭了吗?”);J代码 2: public void averageHeight()System.oul.println(中国人的平均身高:168.78厘米); 代码 3 : public void a verage Weight()System.oul.println(中国人的平均体重:65公斤);)代码4:Syslem.oul.println(坐如钟,站如松,睡如);代码 5 : public void speakHello()( System.out.println(How do you do );弋码 6: public void a
19、verageHeight()System.out.println(American Average height: 172.0 cm); )代码 7: public void averageWeight()System.out.println(American Average weight: 80.23 kg); )【代码 8】:System.out.println(直拳、钩拳”);代码 9 : public void speakHello()System.out.println(您好); )【弋码 10: public void averageHeight()System.out.print
20、ln(北京人的平均身高:170.78厘米); )代码 11 : public void a verage Weight( )System.out.println(北京人的平均体重:66公斤); )代码 12:System.out.println(老生);2 .模板代码Example.javaclass People protected double weight,height;public void speakHello() System.out.println(yayawawaH);public void averageHcight() height=173;System.out.print
21、ln(average hcight:+height);)public void averageWeight() weight=70;System.out.println(average weight:+weight);)class ChinaPeople extends People 【代码1】重写publicvoidspeakHello方法,要求输出类似“你好,吃饭了吗”/Z这样的汉语信息【代码2】重写public void averageHeight()方法,要求输出类似 / “中国人的平均身高:168.78厘米”这样的汉语信息代码3 /Z重写public void averageWeig
22、ht()方法,要求输出类似“中国人的平均体重:65公斤”这样的汉语信息public void chinaGongfu () 【代码4】输出中国武术的信息,如“坐如钟,站如松睡如弓等)class AmericanPeople extends People 代码5 重写public void speakHello。方法,要求输出类似“ How do you do”这样的英语信 息代码 6 /Z 重写 public void averageHeight()方法代码 7 /Z 重写 public void averageWeight()方法public void americanBoxingO (【代
23、码8】/Z输出拳击的信息,如“直拳”、“钩拳”等)class BeijingPeople extends ChinaPeople 代码9 /Z重写public void speakHello()方法,要求输出类似“您好”这样的汉语信息代码 !0/Z 重写 public void averageHeight()方法代码 11 / 重写 public void average Wei ght()方法public void beijingOpcraO (代码!2 /Z输出京剧的信息)public class Example public static void main(String args )
24、ChinaPeople chinaPeople=new ChinaPeople();AmericanPeople americanPeople=new AmericanPeople();BeijingPeople beijingPeople=new BeijingPeople();chinaPeople.speakHello();americanPeople.speakHello();beijingPeople.speakHello();chinaPeople.averageHeight();americanPeople.averagcHeight();beijingPeople.averag
25、eHeight();chinaPeople.averageWeight();americanPeople.averageWeight();bcijingPeople.averagcWcight();chinaPeople.chinaGongfu();americanPeople.americanBoxing();beijingPeople.beijingOpera(); beijingPeople.chinaGongfu();)实验2上转型对象i.答案:【代码 I 】: public double eamings() return 50000;)代码 2: public double earn
26、ings()return 12*2500;J弋码 3 : public double eamings() return 52*500;)弋码 4:for(int i=0;iemployee.length;i+)(salaries=salaries+employeei.earnings(); )2,模板代码HardWork.javaabstract class Employee public abstract double eamings();)class YearWorker extends Employee 【代码11/重写eamings()方法class Month Worker exte
27、nds Employee 代码2 /Z重写eamings()方法class Week Worker extends Employee 【代码31 /重写eamings()方法)class Company Employee1 1 employee;double salaries=O;Company(Employee employee) this.employee=employee;)public double salariesPay() salaries=O;【代码4】计算salariesreturn salaries;)public class HardWork public static v
28、oid main(String args ) Employee! employee=new Employee20;fdr(int i=0;iemployee.length;i+) if(i%3=0)employeei=new WeekWorker();else if(i%3=l)employeei=new MonthWorker();else if(i%3=2)employeei=new YearWorker();)Company company=new Company(employee);System.out.printin(公司年工资总额:+company.salariesPay();实验
29、3接回调1 .答案:【代码 1 】:public double totalSalesBy Year()( return 50000.456;)弋码 2: public double totalSalesByYear()( return 50000.456;J代码 3 : public double totalSalesByYear() return 50000.456;代码 4: for(int i=0;igoods.length;i+)totalSales=totalSaIes+goodsi.totalSalesByYear();2 .模板代码HappySale.javainterface
30、CompulelblalSales public double totalSalesByYear();)class Television implements ComputeTbtalSales 代码 1 11 实现 totalSalesByYear()方法)class Computer implements ComputeTotalSales 代码2实现totalSalesBy Year()方法)class Mobile implements ComputeTotalSales ( 【代码3】实现totalSalesByYear()方法class Shop ComputeTotalSales
31、1 goods;double totalSales=0;Shop(ComputeTotalSales goods) this.goods=goods;)public double giveTotalSales() totalSales=0;【代码4】7Z计算totalSalesreturn totalSales;1)public class HappySale public static void main(String args |) ComputeTotalSales! goods=new ComputeTotalSales50;fbr(int i=0;igoods.length;i+)
32、if(i%3=0)goodsi=new Television();else if(i%3=l)goodsi=new Computer();else if(i%3=2)goodsi=new Mobile();IShop shop=new Shop(goods);System.out.println(商店年销售额:+shop.giveTotalSales();实验4异常处理2 .答案:代码 ! : class NoLowcrLcttcr extends Exception代码 2 : class NoDigit extends Exception代码 3 : new NoLowerLetter();【代码 4 】:throw noLowerLetter;代码 5 : new NoDigit();【代码 61: throw noDigit;3 .模板代码ExceptionExample.java【代码1】类声明,声明个Exception的子类NoLower Letter(