Java大学实用教程学习指导(第2版).doc

上传人:牧羊曲112 文档编号:1600527 上传时间:2022-12-10 格式:DOC 页数:113 大小:524KB
返回 下载 相关 举报
Java大学实用教程学习指导(第2版).doc_第1页
第1页 / 共113页
Java大学实用教程学习指导(第2版).doc_第2页
第2页 / 共113页
Java大学实用教程学习指导(第2版).doc_第3页
第3页 / 共113页
Java大学实用教程学习指导(第2版).doc_第4页
第4页 / 共113页
Java大学实用教程学习指导(第2版).doc_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《Java大学实用教程学习指导(第2版).doc》由会员分享,可在线阅读,更多相关《Java大学实用教程学习指导(第2版).doc(113页珍藏版)》请在三一办公上搜索。

1、Java 大学实用教程学习指导(第 2 版)清华大学出版社(编著 张跃平 耿祥义)实验模版代码及答案建议使用文档结构图(选择 Word 菜单视图文档结构图)第第 1 章章 JAVA 语言概述语言概述 4矚慫润厲钐瘗睞枥庑赖。实验 1 一个简单的应用程序 4聞創沟燴鐺險爱氇谴净。实验 2 一个简单的 JAVA APPLET程序 4残骛楼諍锩瀨濟溆塹籟。第第 2 章基本数据类型和数组章基本数据类型和数组 5酽锕极額閉镇桧猪訣锥。实验 1 输出俄文字母表 5彈贸摄尔霁毙攬砖卤庑。实验 2 从键盘输入数据 5謀荞抟箧飆鐸怼类蒋薔。第第 3 章运算符、表达式与语句章运算符、表达式与语句 6厦礴恳蹒骈時盡

2、继價骚。实验 1 猜数字 6茕桢广鳓鯡选块网羈泪。实验 2 回文数 7鹅娅尽損鹌惨歷茏鴛賴。第第 4 章类与对象章类与对象 8籟丛妈羥为贍偾蛏练淨。实验 1 有理数的类封装 8預頌圣鉉儐歲龈讶骅籴。实验 2 实例成员与类成员 11渗釤呛俨匀谔鱉调硯錦。第第 5 章继承与接口章继承与接口 12铙誅卧泻噦圣骋贶頂廡。实验 1 继承 12擁締凤袜备訊顎轮烂蔷。实验 2 上转型对象 15贓熱俣阃歲匱阊邺镓騷。实验 3 接口回调 16坛摶乡囂忏蒌鍥铃氈淚。实验 4 异常处理 17蜡變黲癟報伥铉锚鈰赘。上机实践上机实践 6 组件及事件处理组件及事件处理 19買鲷鴯譖昙膚遙闫撷凄。实验 1 算术测试 19綾

3、镝鯛駕櫬鹕踪韦辚糴。实验 2 信号灯 22驅踬髏彦浃绥譎饴憂锦。实验 3 布局与日历 24猫虿驢绘燈鮒诛髅貺庑。上机实践上机实践 7 组件及事件处理组件及事件处理 228锹籁饗迳琐筆襖鸥娅薔。实验 1 方程求根 28構氽頑黉碩饨荠龈话骛。实验 2 字体对话框 31輒峄陽檉簖疖網儂號泶。实验 3 英语单词拼写训练 34尧侧閆繭絳闕绚勵蜆贅。上机实践上机实践 8 多线程多线程 38识饒鎂錕缢灩筧嚌俨淒。实验 1 汉字打字练习 38凍鈹鋨劳臘锴痫婦胫籴。实验 2 旋转的行星 40恥諤銪灭萦欢煬鞏鹜錦。实验 3 双线程接力 44鯊腎鑰诎褳鉀沩懼統庫。上机实践上机实践 9 输入输出流输入输出流 47硕癘

4、鄴颃诌攆檸攜驤蔹。实验 1 学读汉字 47阌擻輳嬪諫迁择楨秘騖。实验 2 统计英文单词字 50氬嚕躑竄贸恳彈瀘颔澩。实验 2 读取 ZIP文件 54釷鹆資贏車贖孙滅獅赘。上机实践上机实践 10 JAVA 中的网络编程中的网络编程 55怂阐譜鯪迳導嘯畫長凉。实验 1 读取服务器端文件 55谚辞調担鈧谄动禪泻類。实验 2 使用套接字读取服务器端对象 57嘰觐詿缧铴嗫偽純铪锩。实验 3 基于 UDP 的图像传输 60熒绐譏钲鏌觶鷹緇機库。上机实践上机实践 11 数据结构数据结构 64鶼渍螻偉阅劍鲰腎邏蘞。实验 1 扫雷小游戏 64纣忧蔣氳頑莶驅藥悯骛。实验 2 排序与查找 69颖刍莖蛺饽亿顿裊赔泷。

5、实验 3 使用 TREESET排序 70濫驂膽閉驟羥闈詔寢賻。上机实践上机实践 12 JAVA SWING72銚銻縵哜鳗鸿锓謎諏涼。实验 1 JLAYEREDPANE分层窗格 72挤貼綬电麥结鈺贖哓类。实验 2 使用表格显示日历 73赔荊紳谘侖驟辽輩袜錈。实验 3 多文档界面(MDI)76塤礙籟馐决穩賽釙冊庫。第第 1 章章 Java 语言概述语言概述实验实验 1 一个简单的应用程序一个简单的应用程序1答案:【代码 1】: System.out.println(你好,很高兴学习 Java) ;【代码 2】: System.out.println(We are students) ;2模板代码H

6、ello.javapublic 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,80);2模板代码FirstApp

7、let.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 中绘制一行文字:“我改变了字体”。 第第 2 章章

8、 基本数据类型基本数据类型和数组和数组实验实验 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 ) int startPosition=0,endPosition=0; char cStart=,cEnd=; 【代码 1】 / cStart 做 int 类型转换运算,并将结果赋值给 st

9、artPosition 【代码 2】 / cEnd 做 int 类型转换运算,并将结果赋值给 endPosition System.out.println(俄文字母共有:); System.out.println(endPosition-startPosition+1+个);裊樣祕廬廂颤谚鍘羋蔺。 for(int i=startPosition;irealNumber【代码 4】: yourGuess=reader.nextInt();【代码 5】: yourGuessrealNumber【代码 6】: yourGuess=reader.nextInt();2模板代码GuessNumber.j

10、avaimport java.util.*;public class GuessNumber public static void main (String args ) System.out.println(给你一个 1 至 100 之间的整数,请猜测这个数); int realNumber=(int)(Math.random()*100)+1; int yourGuess=0; Scanner reader=new Scanner(System.in); System.out.println(输入您的猜测:); 【代码 1】 / reader 调用方法获取用户从键盘键入的整数,并赋值给 y

11、ourGuess while (【代码 2】) / 循环条件 if (【代码 3】) / 条件代码 System.out.println(猜大了,请再猜:); 【代码 4】 / reader 调用方法获取用户从键盘键入的整数,并赋值给 yourGuess else if(【代码 5】) / 条件代码 System.out.println(猜小了,请再猜:); 【代码 6】 / reader 调用方法获取用户从键盘键入的整数,并赋值给 yourGuess System.out.println(猜对了!); 实验实验 2 回文数回文数1答案:【代码 1】: number=1【代码 2】: d5=n

12、umber/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=d32模板代码Number.javaimport java.util.*;public class Number public static void main(String args) int number=0,d5,d4,d3,d2,d1; Scanner reader=new S

13、canner(System.in); System.out.println(从键盘输入一个 1 至 99999 之间的数); while(reader.hasNextInt() number=reader.nextInt(); 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 位数的条

14、件 System.out.printf(n%d 是 5 位数, number);if (【代码 6】) / 判断 number 是回文数的条件 System.out.printf(t%d 是回文数, number); else System.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); els

15、e System.out.printf(t%d 不是回文数,number); else if (【代码 9】) / 判断 number 是 3 位数的条件 System.out.printf(n%d 是 3 位数, number);if (【代码 10】) / 判断 number 是回文数的条件 System.out.printf(t%d 是回文数, number); else System.out.printf(t%d 不是回文数, number); else if(d2!=0) System.out.printf(n%d 是 2 位数, number); if(d1=d2) System.

16、out.printf(t%d 是回文数, number); else System.out.printf(t%d 不是回文数, number); else if(d1!=0) System.out.printf(n%d 是 1 位数, number); System.out.printf(t%d 是回文数, number); else System.out.printf(n%d 不在 1 至 99999 之间, number); System.out.printf(%n 可继续输入整数,或输入非整数结束程序%n); System.out.println(你输出的数据不是整数); 第第 4 章章

17、 类与对象类与对象实验实验 1 有理数的类封装有理数的类封装1答案:【代码 1】: r1=new Rational(1,5);【代码 2】: r2=new Rational(3,2);【代码 3】: r1.add(r2);【代码 4】: result.getNumerator();【代码 5】: result. getDenominator();2模板代码Rational.javapublic class Rational int numerator,denominator;Rational()Rational(int a,int b)setNumeratorAndDenominator(a,

18、b); void setNumeratorAndDenominator(int a,int b) /设置分子和分母仓嫗盤紲嘱珑詁鍬齊驁。 int c=f(Math.abs(a),Math.abs(b); /计算最大公约数绽萬璉轆娛閬蛏鬮绾瀧。numerator=a/c;denominator=b/c;if(numerator0&denominator0)numerator=-numerator;denominator=-denominator; int getNumerator() return numerator; int getDenominator() return denominato

19、r; int f(int a,int b) /求 a 和 b 的最大公约数if(ac&a+cb&c+ba) System.out.println(我是一个三角形); boo=true; else System.out.println(我不是一个三角形); boo=false; public void 计算面积( ) if(boo) double p=(sideA+sideB+sideC)/2.0; double area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC) ;胀鏝彈奥秘孫戶孪钇賻。 System.out.println(是一个三角形,能计算面积)

20、; System.out.println(面积是:+area); else System.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; else boo=false; SunRise.javaimport tom.jiafei.Trangle;import java.util.Date;class SunRise public static void main(String args

21、 ) 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 speakHello()System.out.println(你好,吃饭了吗?); 【代码 2】: public void averageHeight( ) System.out.println(中国人的

22、平均身高:168.78 厘米); 【代码 3】: public void averageWeight( ) System.out.println(中国人的平均体重:65 公斤); 【代码 4】: System.out.println(坐如钟,站如松,睡如弓);【代码 5】: public void speakHello()System.out.println(How do you do ); 【代码 6】: public void averageHeight( ) System.out.println(American Average height:172.0 cm);鳃躋峽祷紉诵帮废掃減。【

23、代码 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.println(北京人的平均身高:170.78 厘米);【代码 11】: public void averageWeig

24、ht( ) System.out.println(北京人的平均体重:66 公斤); 【代码 12】: System.out.println(老生);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 averageWeigh

25、t( ) weight=70; System.out.println(average weight:+weight); class ChinaPeople extends People 【代码 1】/ 重写 public void speakHello( )方法,要求输出类似“你好,吃饭了吗”陽簍埡鲑罷規呜旧岿錟。 / 这样的汉语信息【代码 2】/ 重写 public void averageHeight( )方法,要求输出类似 / “中国人的平均身高:168.78 厘米”这样的汉语信息【代码 3】/ 重写 public void averageWeight( )方法,要求输出类似 /“中国人

26、的平均体重:65 公斤”这样的汉语信息 public void chinaGongfu () 【代码 4】/ 输出中国武术的信息,如“坐如钟,站如松,睡如弓”等 class AmericanPeople extends People 【代码 5】 /重写 public void speakHello()方法,要求输出类似“How do you do”这样的英语信息沩氣嘮戇苌鑿鑿槠谔應。【代码 6】 / 重写 public void averageHeight( )方法【代码 7】 / 重写 public void averageWeight( )方法 public void americanB

27、oxing() 【代码 8】 / 输出拳击的信息,如“直拳”、 “钩拳”等 class BeijingPeople extends ChinaPeople 【代码 9】 / 重写 public void speakHello( )方法,要求输出类似“您好”这样的汉语信息钡嵐縣緱虜荣产涛團蔺。【代码 10】 / 重写 public void averageHeight( )方法【代码 11】 / 重写 public void averageWeight( )方法 public void beijingOpera() 【代码 12】 / 输出京剧的信息 public class Example p

28、ublic static void main(String args ) ChinaPeople chinaPeople=new ChinaPeople( ); AmericanPeople americanPeople=new AmericanPeople( );懨俠劑鈍触乐鹇烬觶騮。 BeijingPeople beijingPeople=new BeijingPeople( ); chinaPeople.speakHello( ); americanPeople.speakHello( ); beijingPeople.speakHello( ); chinaPeople.average

29、Height( ); americanPeople.averageHeight( ); beijingPeople.averageHeight( ); chinaPeople.averageWeight( ); americanPeople.averageWeight( ); beijingPeople.averageWeight( ); chinaPeople.chinaGongfu( ); americanPeople.americanBoxing( ); beijingPeople.beijingOpera( ) ; beijingPeople.chinaGongfu( ); 实验实验

30、2 上转型对象上转型对象1答案:【代码 1】: public double earnings() return 50000; 【代码 2】: public double earnings() return 12*2500; 【代码 3】: public double earnings() return 52*500; 【代码 4】: for(int i=0;iemployee.length;i+) salaries=salaries+employeei.earnings(); 2模板代码HardWork.javaabstract class Employee public abstract d

31、ouble earnings( );class YearWorker extends Employee 【代码 1】 / 重写 earnings( )方法class MonthWorker extends Employee 【代码 2】 / 重写 earnings( )方法class WeekWorker extends Employee 【代码 3】 / 重写 earnings( )方法class Company Employee employee; double salaries=0; Company(Employee employee) this.employee=employee; p

32、ublic double salariesPay( ) salaries=0; 【代码 4】 / 计算 salaries return salaries; public class HardWork public static void main(String args ) Employee employee=new Employee20; for(int i=0;iemployee.length;i+) if(i%3=0) employeei=new WeekWorker( ); else if(i%3=1) employeei=new MonthWorker( ); else if(i%3

33、=2) employeei=new YearWorker( ); Company company=new Company(employee); System.out.println(公司年工资总额:+company.salariesPay( ) );謾饱兗争詣繚鮐癞别瀘。 实验实验 3 接口回调接口回调1答案:【代码 1】: public double totalSalesByYear() return 50000.456; 【代码 2】: public double totalSalesByYear() return 50000.456; 【代码 3】: public double tota

34、lSalesByYear() return 50000.456; 【代码 4】: for(int i=0;igoods.length;i+) totalSales=totalSales+goodsi.totalSalesByYear(); 2模板代码HappySale.javainterface ComputeTotalSales public double totalSalesByYear( );class Television implements ComputeTotalSales 【代码 1】 / 实现 totalSalesByYear( )方法class Computer imple

35、ments ComputeTotalSales 【代码 2】 / 实现 totalSalesByYear( )方法class Mobile implements ComputeTotalSales 【代码 3】 / 实现 totalSalesByYear( )方法class Shop ComputeTotalSales goods; double totalSales=0; Shop(ComputeTotalSales goods) this.goods=goods; public double giveTotalSales( ) totalSales=0; 【代码 4】 / 计算 total

36、Sales return totalSales; public class HappySale public static void main(String args ) ComputeTotalSales goods=new ComputeTotalSales50;呙铉們欤谦鸪饺竞荡赚。 for(int i=0;igoods.length;i+) if(i%3=0) goodsi=new Television( ); else if(i%3=1) goodsi=new Computer( ); else if(i%3=2) goodsi=new Mobile( ); Shop shop=ne

37、w Shop(goods); System.out.println(商店年销售额:+shop.giveTotalSales( ) );莹谐龌蕲賞组靄绉嚴减。 实验实验 4 异常处理异常处理1答案:【代码 1】: class NoLowerLetter extends Exception【代码 2】: class NoDigit extends Exception 【代码 3】: new NoLowerLetter();【代码 4】: throw noLowerLetter;【代码 5】: new NoDigit();【代码 6】: throw noDigit;2模板代码ExceptionExa

38、mple.java【代码 1】 / 类声明,声明一个 Exception 的子类 NoLowerLetter public void print() System.out.printf(%c,#); 【代码 2】 / 类声明,声明一个 Exception 的子类 NoDigit public void print() System.out.printf(%c,*); class People void printLetter(char c) throws NoLowerLetter if(cz) NoLowerLetter noLowerLetter=【代码 3】/ 创建 NoLowerLet

39、ter 类型对象麸肃鹏镟轿騍镣缚縟糶。 【代码 4】 / 抛出 noLowerLetter else System.out.print(c); void printDigit(char c) throws NoDigit if(c9) NoDigit noDigit=【代码 5】/ 创建 NoDigit()类型对象 【代码 6】 / 抛出 noDigit else System.out.print(c); public class ExceptionExample public static void main (String args ) People people=new People(

40、); for(int i=0;i128;i+) try people.printLetter(char)i); catch(NoLowerLetter e) e.print(); for(int i=0;i0【代码 4】: path.lastIndexOf();【代码 5】: path.substring(position+1);【代码 6】: Integer.parseInt(s6);【代码 7】: Double.parseDouble(s7);【代码 8】: s8.toCharArray();2模板代码StringExample.javaclass StringExample public

41、 static void main(String args ) String s1=new String(you are a student), s2=new String(how are you); if (【代码 1】) / 判断 s1 与 s2 是否相同 System.out.println(s1 与 s2 相同); else System.out.println(s1 与 s2 不相同); String s3=new String();if (【代码 2】) / 判断 s3 的前缀是否是“” System.out.println(吉林省的身份证); String s4=new Stri

42、ng(你), s5=new String(我); if(【代码 3】) / 按字典序,s4 大于 s5 的表达式 System.out.println(按字典序,s4 大于 s5); else System.out.println(按字典序,s4 小于 s5); int position=0; String path=C:javajspA.java; position=【代码 4】 / 获取 path 中最后出现目录分隔符号的位置 System.out.println(C:javajspA.java 中最后出现的位置:+position); 納畴鳗吶鄖禎銣腻鰲锬。 String fileNam

43、e=【代码 5】 / 获取 path 中“A.java”子字符串 System.out.println(C:javajspA.java 中含有的文件名:+fileName); 風撵鲔貓铁频钙蓟纠庙。 String s6=new String(100),s7=new String(123.678); int n1=【代码 6】 / 将 s6 转化成 int 类型数据 double n2=【代码 7】 / 将 s7 转化成 double 类型数据 double n=n1+n2; System.out.println(n); String s8=new String(ABCDEF); char a

44、=【代码 8】 / 将 s8 存放到数组 a 中 for(int i=a.length-1;i=0;i-) System.out.printf(%3c,ai); 实验实验 2StringBuffer 类的常用方法类的常用方法1答案:【代码 1】: str.append();【代码 2】: str.setCharAt(1,b);【代码 3】: str.insert(6,Game);【代码 4】: str.indexOf(1);【代码 5】: str.delete(index ,index+4);【代码 6】: str.length();【代码 7】: str.replace(n-3,n ,七八九

45、);【代码 8】: for(int i=0;iyourStr.length();i+) char c1=yourStr.charAt(i); if(Character.isLowerCase(c1) c1=Character.toUpperCase(c1); yourStr.setCharAt(i,c1); else if(Character.isUpperCase(c1) c1=Character.toLowerCase(c1); yourStr.setCharAt(i,c1); 2模板代码StringBufferExample.javaclass StringBufferExample p

46、ublic static void main(String args ) StringBuffer str=new StringBuffer(ABCDEFG); 【代码 1】 / 向 str 尾加“” System.out.println(str); 【代码 2】 / 将 str 中的字符 B替换为 b System.out.println(str); 【代码 3】 / 在 str 中的“”前面插入“Game” System.out.println(str); int index=【代码 4】 / 获取 str 中首次出现“1”的位置 【代码 5】 / 删除 str 中“1234” int n

47、= 【代码 6】 / 获取 str 中字符个数 【代码 7】 / 将 str 中“789”替换为“七八九” System.out.println(str); StringBuffer otherStr=new StringBuffer(we love you);灭嗳骇諗鋅猎輛觏馊藹。 int start=0; char c=0; while(start!=1) if(start!=0) start=start+1; c=otherStr.charAt(start); if(Character.isLowerCase(c) c=Character.toUpperCase(c); otherStr

48、.setCharAt(start,c); start=otherStr.indexOf( ,start); /查找下一个空格 System.out.println(otherStr); StringBuffer yourStr=new StringBuffer(i Love THIS GaME);铹鸝饷飾镡閌赀诨癱骝。 【代码 8】 / 将 yourStr 中的大写字符替换为对应的小写字符,小写字符替换为对应的/ 大写字符 System.out.println(yourStr); 实验实验 3 模式匹配模式匹配1答案:【代码 1】: dAd;【代码 2】: 0A1A2A3A4A5A6A7A8A

49、9; 【代码 3】: Ppile(patternString);【代码 4】: p.matcher(matchedString);【代码 5】: while(m.find() String str=m.group(); System.out.print(从+m.start()+到+m.end()+匹配模式子序列:);攙閿频嵘陣澇諗谴隴泸。 System.out.println(str); 【代码 6】: 1aWQE【代码 7】: p.matcher(matchedString);【代码 8】: m.matches()【代码 9】: m.lookingAt()2模板代码MatchExample.

50、javaimport java.util.regex.*;class MatchExample public static void main(String args ) Pattern p; Matcher m; String patternString=【代码 1】 / 给出一个正则表达式 String matchedString=【代码 2】 / 给出待匹配的字符序列 p=【代码 3】 / 用模式 patternString 初试化模式对象 p趕輾雏纨颗锊讨跃满賺。 m=【代码 4】 / 用 matchedString 初始化匹配对象 m 【代码 5】 / 查找 matchedStrin

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号