Java大学实用教程(第二版)实验
- 格式:pdf
- 大小:568.62 KB
- 文档页数:18
实验1 Java运行环境及简单应用程序开发一、实验目的(1)可以安装并配置Java运行环境。
(2)掌握Java中path和classpath的属性作用。
(3)可以编写一个简单的Java应用程序。
(4)掌握Java应用程序的开发流程。
二、实验内容及步骤1.安装并配置运行环境(1)任务安装JA V A SE,检查和设置环境变量path。
(2)步骤第一步:安装JA V A SE,安装后在安装目录下应有jdk和jre文件夹。
第二步:设置环境变量path,步骤参见教材P7。
第三步:检查环境变量path,可在命令提示符下使用命令javac –version 检查path是否配置好及jdk的版本。
第四步:如运行或编译程序时出错,可配置classpath,步骤参见教材P7。
(3)问题:程序中的主类如果不用public修饰,编译能通过吗?程序中的主类如果不用public修饰,能正确运行吗?编译器怎样提示丢失大括号的错误?编译器怎样提示语句丢失分号的错误?编译器怎样提示将System写成system这一错误?编译器怎样提示将String写成string这一错误?(4)实验报告将上述思考题写在实验报告上。
2. 编写简单的Java应用程序(1)任务任务一:在屏幕上输出“我喜欢学习java”。
任务二:在屏幕上输出出以下信息:******************************** java程序设计*******************************(2)步骤第一步:使用记事本或EDIT编写源程序,源程序内容参见教材P9例1-1。
第二步:保存并为源程序命名。
保存时若使用记事本,保存类型请选择“所有类型”,命名规则参见教材P9,保存类型为.java。
第三步:打开命令提示符,进入源程序保存的文件夹下,使用编译器对其进行编译:如javac Hello.java。
第四步:如编译时无任何提示,说明源程序无错误,可对生成的class文件进行解释并执行,如java Hello,此步省略.class。
第一章问答题1.答:开发Java语言的动力源于对独立平台的需要,即用这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况;致力于开发一种可移植的、跨平台的语言,该语言能生成正确运行于各种操作系统、各种CPU芯片上的代码主要贡献者是James Gosling。
2.答:不正确。
Java提供的编译器把源程序编译成称为“字节码”的一个中间代码。
字节码是很接近机器码的二进制文件,不能被机器直接识别。
3.答:Java应用程序的主类必须含有public static void main(String args[])方法,作为应用程序运行的入口和起始点。
4.答:不正确。
可以没有public类。
Java程序的源文件中如果有多个类,那么只能有一个类是public类。
如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名为.java。
如果源文件没有public类,那么源文件的名字只要与某个类的名字相同,并且拓展名为.java就可以了。
5.答:正确。
Java Applet源文件的主类必须是public的。
按照源文件的命名规定,Java Applet源文件的名字一定与主类的名字相同。
6.答:如果源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,拓展名为.java;如果源文件没有public类,那么源文件的名字只要与某个类的名字相同,并且拓展名为.java就可以了。
7.答:源文件生成的字节码在运行时只将程序需要的字节码加载到内存中。
8.答:开发一个Java Applet程序需经过三个步骤:编写源文件、编译源文件生成字节码、通过浏览器加载运行字节码。
1)编写源文件。
一个Java Applet源文件也是由若干个类组成的,一个Java Applet源文件不再需要main方法,但必须有且只有一个类扩展了Applet类,即它是Applet类的子类(Applet类是系统提供的类),我们把这个类称作Java Applet源文件的主类。
上机实践1 初识JA V A (3)实验1一个简单的应用程序 (3)实验2一个简单的J A V A A PPLET程序 (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)实验1S TRING类的常用方法 (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读取Z IP文件 (61)上机实践10 JAV A 中的网络编程 (62)实验1读取服务器端文件 (62)实验2使用套接字读取服务器端对象 (64)实验3基于UDP的图像传输 (67)上机实践11 数据结构 (71)实验1扫雷小游戏 (71)实验2排序与查找 (76)实验3使用T REE S ET排序 (77)上机实践12 JAV A SWING (79)实验1JL AYERED P ANE分层窗格 (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 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.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中绘制一行文字:“我改变了字体”}}实验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[ ]){【代码1】 //命令行窗口输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令行窗口输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令行窗口输出"I am B"}}模板4 :C.javapublic 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.javapublic class GreekAlphabet{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition【代码2】//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';【代码3】//i做char型转换运算,并将结果赋值给cSystem.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==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之间的数");number=Integer.parseInt(str);if(【代码1】) //判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=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<realNumber2.模板代码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("输入您的猜测:");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.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。
Hello.javaclass A{void f(){System.out.println("I am A");}}class B{}public class Hello{public static void main (String args[ ]) {System.out.println("你好,很高兴学习Java");A a=new A();a.f();}}Tom.javapublic class Tom{int leg;String head;void cry(String s){System.out.println(s);}}class Example{public static void main(String args[]){ Tom cat;cat=new Tom();cat.leg=4;cat.head="猫头";System.out.println("腿:"+cat.leg+"条"); System.out.println("头:"+cat.head);cat.cry("我今天要和Jerry拼了");}}Ch10importjavax.swing.*;importjava.awt.event.InputEvent;importjava.awt.event.KeyEvent;public class Example10_1{public static void main(String args[]){FirstWindow win=new FirstWindow("一个简单的窗口");}}classFirstWindow extends JFrame{JMenuBarmenubar;JMenu menu;JMenuItem item1,item2;FirstWindow(String s){setTitle(s);setSize(160,170);setLocation(120,120);setVisible(true);menubar=new JMenuBar();menu=new JMenu("文件");item1=new JMenuItem("打开",new ImageIcon("open.gif"));item2=new JMenuItem("保存",new ImageIcon("save.gif"));item1.setAccelerator(KeyStroke.getKeyStroke('O'));item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_M ASK));menu.add(item1);menu.addSeparator();menu.add(item2);menubar.add(menu);setJMenuBar(menubar);validate();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}}Java大学实用教程(第2版)[程序源代码].zip完全版:。
Java大学实用教程第二版课后答案第一章作业题1.public class Hello{public static void main (String args[ ]){System.out.pintln(“早上好,good Morning”);}}2.import java.applet.*;import java.awt.*;public class Boy extends Applet {public void paint(Graphics g) {g.setColor(Color.blue);g.drawString("你好,hello",12,30);}}第二章作业题1.public class ZuoYe2_1{public static void main (String args[ ]){char c='а';System.out.println("字母"+c+"在unicode表中的顺序位置:"+(int)c);System.out.println("字母表:");while(c<='я'){System.out.print(" "+c);c=(char)(c+1);}}}2.import java.util.*;public class ZuoYe2_2{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);long chengji=1;int m=0;while(reader.hasNextInt()){int x=reader.nextInt();m=m+1;chengji=chengji*x;}System.out.println(m+"个数的乘积为"+chengji);}}第三章作业题1.import java.util.*;public class ZuoYe3_1{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);double y=0,x=0;x=reader.nextDouble();if(x<0)y=-1+2*x;else if(x==0)y=-1;else if(x>0)y=-1+3*x;System.out.println(y);}}2.public class ZuoYe3_2{public static void main(String args[]){int sum=0,m=3,n=7,a=1;while(a<=1000){if(a%m==0&&a%n==0)sum=sum+a;a++;}System.out.println("sum="+sum);}}3.public class ZuoYe3_3{public static void main(String args[]){long sum=0,a=8,item=a,n=10,i=1;for(i=1;i<=n;i++){ sum=sum+item;item=item*10+a;}System.out.println(sum);}}4.public class ZuoYe3_4{public static void main(String args[]){double sum=0,a=1,b=1,fuhao=1,item=a/b;int i=1;while(i<=1000){sum=sum+fuhao*item;i++;fuhao=fuhao*(-1);b=b+2;item=a/b;System.out.println("sum="+sum);}}5.public class ZuoYe3_5{public static void main(String args[]){double sum=0,a=1;int i=1;while(i<=20){if(i>=10)sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}8.第四章作业题1.class DengCha{int start,d;DengCha(){}DengCha(int start,int d){this.start=start;this.d=d;}void setStart(int s){start=s;void setD(int d){this.d=d;}int getSum(int n){int sum=0,i=1;while(i<=n){sum=sum+start;start=start+d;i++;}return sum;}}public class ZuoYe4_1{public static void main (String args[ ]){DengCha shulie=new DengCha(2,3);System.out.println(shulie.getSum(100));shulie.setStart(10);shulie.setD(5);System.out.println(shulie.getSum(9)); }}2.class Letter{public void printLetter(){for(char c='a';c<='z';c++)System.out.print(" "+c);}}public class ZuoYe4_2{public static void main (String args[ ]){Letter p=new Letter();p.printLetter();}}3.class SquareEquation{double a,b;static double c;double root1,root2;boolean boo;public SquareEquation(double a,double b,double c){this.a=a;this.b=b;SquareEquation.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;SquareEquation.c=c;if(a!=0){boo=true;}else{boo=false;}}}public class ZuoYe4_3{public static void main(String args[ ]){SquareEquation equation1=new SquareEquation(4,5,1);SquareEquation equation2=new SquareEquation(3,5,-7);equation1.getRoots();equation2.getRoots();}}4.import java.util.Scanner;class A{int f(int m,int n){if(m*n<0){ System.out.println("有负数,程序退出");System.exit(0);}if(m<n){ int temp=m;m=n;n=temp;}int a=m,b=n;int r=m%n;while(r!=0){ m=n;n=r;r=m%n;}return n;}}class B{A a;B(){a=new A();}int g(int m,int n){int temp=a.f(m,n);return m*n/temp;}}public class ZuoYe4_4{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);System.out.println("输入2个正整数,程序计算出它们的最大公约数和最小公倍数");System.out.print("输入第一个整数:");int m=reader.nextInt();System.out.print("输入第二个整数:");int n=reader.nextInt();A a=new A();B b=new B();System.out.println(m+"和"+n+"的最大公约数是"+a.f(m,n));System.out.println(m+"和"+n+"的最小公倍数是"+b.g(m,n));}}5.import java.applet.Applet;import java.awt.*;public class Example4_10 extends Applet{Button redbutton;public void init(){redbutton=new Button("我是一个红色的按钮");redbutton.setBackground(Color.red);redbutton.setForeground(Color.white);add(redbutton);}}第五章作业题1.import java.util.Scanner;class A{public int f(int m,int n){if(m<n){int temp=m;m=n;n=temp;}int r=m%n;while(r!=0){m=n;n=r;r=m%n;}return n;}}class B extends A{public int f(int m,int n){int division=super.f(m,n);return (m*n)/division;}}public class ZuoYe5_1{public static void main (String args[ ]){A a=new A();B b=new B();Scanner reader=new Scanner(System.in);System.out.println("输入2个整数,程序计算出它们的最大公约数和最小公倍数");System.out.print("输入第一个整数:");int m=reader.nextInt();System.out.print("输入第二个整数:");int n=reader.nextInt();if(m*n<0){ System.out.println("有负数,程序退出");System.exit(0);}System.out.printf("%d和%d的最大公约数是%d\n",m,n,a.f(m,n));System.out.printf("%d和%d的最小公倍数是%d\n",m,n,b.f(m,n));}}2.abstract class A{public abstract void f(int x);public abstract void g(int x,int y);public abstract double h(double x);}class A1 extends A{public void f(int x){System.out.println(x);}public void g(int x,int y){int z=x+y;System.out.println(z);}public double h(double x){return x*x;}}class A2 extends A{public void f(int x){System.out.println("Hello:"+x);}public void g(int x,int y){int z=x-y;System.out.println(z);}public double h(double x){return Math.sqrt(x);}}class A3 extends A{public void f(int x){System.out.println("你好:"+x);}public void g(int x,int y){double z=(double)x/y;System.out.println(z);}public double h(double x){return 1/x;}}public class ZuoYe5_2{public static void main(String args[ ]){A a=new A1();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A2();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A3();a.f(10);a.g(12,20);System.out.println(a.h(100));}}3.interface A{public abstract void f(int x);public abstract void g(int x,int y);public abstract double h(double x); }class A1 implements A{public void f(int x){System.out.println(x);}public void g(int x,int y){int z=x+y;System.out.println(z);}public double h(double x){return x*x;}}class A2 implements A{public void f(int x){System.out.println("Hello:"+x);}public void g(int x,int y){int z=x-y;System.out.println(z);}public double h(double x){return Math.sqrt(x);}}class A3 implements A{public void f(int x){System.out.println("你好:"+x);}public void g(int x,int y){double z=(double)x/y;System.out.println(z);}public double h(double x){return 1/x;}}public class ZuoYe5_3{public static void main(String args[ ]){A a=new A1();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A2();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A3();a.f(10);a.g(12,20);System.out.println(a.h(100));}}4.class Cubic{ double getCubic(int n){ return 0;}}abstract class Sqrt{ public abstract double getSqrt(int x);}class A{ void f(Cubic cubic){ double result=cubic.getCubic(3);System.out.println(result);}}public class ZuoYe5_4{ public static void main(String args[]){ A a=new A();a.f(new Cubic(){ double getCubic(int n){ return n*n*n;}});Sqrt ss=new Sqrt(){ public double getSqrt(int x){ return Math.sqrt(x);}};double m=ss.getSqrt(5);System.out.println(m);}}5.class IntegerException extends Exception{ String message;IntegerException(int m){ message="年龄"+m+"不合理";}public String toString(){ return message;}}class People{ private int age=1;public void setAge(int age) throws IntegerException{if(age>=160||age<=0)throw new IntegerException(age); //方法抛出异常,导致方法结束elsethis.age=age;}public int getAge(){ System.out.println("年龄"+age+"合理");return age;}}public class ZuoYe6_5{ public static void main(String args[]){ People wang=new People(),zhang=new People();try { wang.setAge(189);System.out.println(wang.getAge());}catch(IntegerException e){ System.out.println(e.toString());}try { zhang.setAge(28);System.out.println(zhang.getAge());}catch(IntegerException e){ System.out.println(e.toString());}}}第六章作业题1.import java.util.regex.*;import java.util.*;public class ZuoYe6_1{public static void main(String args[ ]){Scanner reader=new Scanner(System.in);String s1=reader.nextLine();Pattern p;Matcher m;p=pile("[24680]A[13579]{2}");m=p.matcher(s1);while(m.find()){String str=m.group();System.out.print("从"+m.start()+"到"+m.end()+"匹配模式子序列:");System.out.println(str);}}}2.import java.util.regex.*;import java.util.*;public class ZuoYe4_1{public static void main(String args[ ]){Scanner reader=new Scanner(System.in);String s1=reader.nextLine();Pattern p;Matcher m;p=pile("\\d+");m=p.matcher(s1);while(m.find()){String str=m.group();System.out.print(str);}}}第七章作业题1.import java.util.*;public class ZuoYe7_2{ public static void main(String args[]){int year,month;{year=Integer.parseInt(args[0]);month=Integer.parseInt(args[1])+1;}catch(NumberFormatException e){year=2004;month=1;}System.out.println(" 日一二三四五六");Calendar 日历=Calendar.getInstance();日历.set(year,month,1);int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1;String a[]=new String[星期几+31];for(int i=0;i<星期几;i++){ a[i]="**";}for(int i=星期几,n=1;i<星期几+31;i++){ if(n<=9)a[i]=String.valueOf(n)+" ";elsea[i]=String.valueOf(n) ;n++;}for(int i=0;i<a.length;i++){ if(i%7==0){ System.out.println("");}System.out.print(" "+a[i]);}}}2.class ZuoYe7_2{ public static void main(String args[]){int year1,month1,day1,year2,month2,day2;{year1=Integer.parseInt(args[0]);month1=Integer.parseInt(args[1]);day1=Integer.parseInt(args[2]);year2=Integer.parseInt(args[3]);month2=Integer.parseInt(args[4]);day2=Integer.parseInt(args[5]);}catch(NumberFormatException e){year1=2009;month1=0;day1=1;year2=2008;month2=0;day2=1;}Calendar calendar=Calendar.getInstance();calendar.set(year1,month1,day1);long timeYear1=calendar.getTimeInMillis();calendar.set(year2,month2,day2);long timeYear2=calendar.getTimeInMillis();long 相隔天数=Math.abs((timeYear1-timeYear2)/(1000*60*60*24));System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天");}}3.import java.math.*;public class ZuoYe4_1{public static void main(String args[]){BigInteger chengji=new BigInteger("1"),ONE=new BigInteger("1"),i=ONE,m=new BigInteger("10");while(pareTo(m)<=0){chengji=chengji.multiply(i);i=i.add(ONE);}System.out.println(chengji);}}4.import java.util.*;public class ZuoYe7_4{public static void main(String args[]){HashSet<Integer> A=new HashSet<Integer>(),B=new HashSet<Integer>(),tempSet=new HashSet<Integer>();A.add(new Integer(1));A.add(new Integer(2));A.add(new Integer(3));A.add(new Integer(4));B.add(new Integer(1));B.add(new Integer(3));B.add(new Integer(7));B.add(new Integer(9));B.add(new Integer(11));tempSet=(HashSet<Integer>)A.clone();tempSet.retainAll(B);System.out.println("交:");Iterator<Integer> iter=tempSet.iterator();while(iter.hasNext()){Integer te=iter.next();System.out.printf("%d,",te.intValue());}tempSet=(HashSet<Integer>)A.clone();tempSet.addAll(B);iter=tempSet.iterator();System.out.println("并:");while(iter.hasNext()){Integer te=iter.next();System.out.printf("%d,",te.intValue());}tempSet=(HashSet<Integer>)A.clone();tempSet.removeAll(B);System.out.println("差:");iter=tempSet.iterator();while(iter.hasNext()){Integer te=iter.next();System.out.printf("%d,",te.intValue());}}}5.import java.util.*;class MyKey implements Comparable{double number=0;MyKey(double number){this.number=number;}public int compareTo(Object b){MyKey st=(MyKey)b;if((this.number-st.number)==0){return -1;}else{return (int)((this.number-st.number)*1000);}}}class 硬盘{int size;double price;硬盘(int n, double p){size=n;price=p;}}public class ZuoYe4_1{public static void main(String args[ ]){int [] size={10,3,7,12,10,22,100,4,6,2};double [] price={1.2,9.56,2.4,9.3,16.77,12.66,7.4,5.5,5.6,8.9,1.9};硬盘[] s=new 硬盘[10];for(int i=0;i<s.length;i++)s[i]=new 硬盘(size[i],price[i]);TreeMap<MyKey,硬盘> treemap=new TreeMap<MyKey,硬盘>();for(int i=0;i<s.length;i++)treemap.put(new MyKey(s[i].size),s[i]);int number=treemap.size();System.out.println("树映射中有"+number+"个对象:");Collection<硬盘> collection=treemap.values();Iterator<硬盘> iter=collection.iterator();while(iter.hasNext()){硬盘te=iter.next();System.out.println(te.size+","+te.price);}treemap.clear();for(int i=0;i<s.length;i++)treemap.put(new MyKey(s[i].price),s[i]);number=treemap.size();System.out.println("树映射中有"+number+"个对象:");collection=treemap.values();iter=collection.iterator();while(iter.hasNext()){硬盘te=iter.next();System.out.println(te.size+","+te.price);}}}第八章作业题1.属于操作题目,省略2.参见例子8-23.参见例子8-34.参见例子8-10第九章作业题1.import java.io.*;import java.awt.*;import java.awt.event.*;public class ZuoYe9_1{ public static void main(String args[]){ int b;byte tom[]=new byte[25];try{ File f=new File("Example.java");FileInputStream in=new FileInputStream(f);while((b=in.read(tom,0,25))!=-1){ String s=new String (tom,0,b);System.out.print(s);}in.close();}catch(IOException e){ System.out.println("File read Error"+e);}}}2.import java.io.*;import java.util.*;public class ZuoYe9_2{public static void main(String args[]){Scanner reader=new Scanner(System.in);int b;try{FileOutputStream writefile=new FileOutputStream("line.txt");int line=1,n=10;System.out.println("输入"+n+"行文本,并存入磁盘:");while(line<=n){String s=reader.nextLine();byte buffer[]=s.getBytes();writefile.write(buffer,0,buffer.length);line++;}writefile.close();}catch(IOException e){System.out.println("Error "+e);}}}3.import java.io.*;public class ZuoYe9_3{public static void main(String args[ ]){int n=-1;CharArrayWriter out=new CharArrayWriter();for(char c='а';c<='я';c++){out.write(c);}CharArrayReader in=new CharArrayReader(out.toCharArray());try{ while((n=in.read())!=-1){if(n%2==0){System.out.printf("\n");}System.out.printf("\t位置%d,字符\'%c\'",n,(char)n);}}catch(IOException e){}}}4.import java.io.*;import java.util.*;public class ZuoYe9_4{public static void main(String args[]){try{FileOutputStream fos=new FileOutputStream("jerry.dat");DataOutputStream out_data=new DataOutputStream(fos);Scanner reader=new Scanner(System.in);for(int i=1;i<=10;i++){int x=reader.nextInt();out_data.writeInt(x);}out_data.close();}catch(IOException e){}try{FileInputStream fis=new FileInputStream("jerry.dat");DataInputStream in_data=new DataInputStream(fis);for(int i=1;i<=10;i++){int m=in_data.readInt();System.out.print(" "+m);}in_data.close();}catch(IOException e){}}}5.import java.io.*;import java.util.*;class Student implements Serializable{String name ;int number;Student(String name,int number){=name;this.number=number;}}public class ZuoYe9_5{public static void main(String args[]){List<Student> list=new LinkedList<Student>();List<Student> cloneList=null;for(int k=1;k<=12;k++)list.add(new Student("I am "+k,k));try{ FileOutputStream fileOut=new FileOutputStream("a.txt");ObjectOutputStream objectOut=new ObjectOutputStream(fileOut);objectOut.writeObject(list);FileInputStream fileIn=new FileInputStream("a.txt");ObjectInputStream objectIn=new ObjectInputStream(fileIn);cloneList=(List)objectIn.readObject();}catch(Exception event){System.out.println(event);}Iterator iter=cloneList.iterator();while(iter.hasNext()){Student te=(Student)iter.next();System.out.println(te.number+","+);}}}6.import java.io.*;public class ZuoYe9_6{ public static void main(String args[]){File f=new File("Xiti12_6.java");try{ RandomAccessFile random=new RandomAccessFile(f,"rw");random.seek(0);long m=random.length();while(m>=0){ m=m-1;random.seek(m);int c=random.readByte();if(c<=255&&c>=0){ System.out.print((char)c);}else{ m=m-1; //一个汉字占2个字节random.seek(m);byte cc[]=new byte[2];random.readFully(cc);System.out.print(new String(cc));}}random.close();}catch(IOException ee){}}}5.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_5{ public static void main(String args[]){ ComputerFrame fr=new ComputerFrame();fr.setTitle("计算");}}class ComputerFrame extends JFrame implements ActionListener{ JTextField text1,text2,text3;JButton button1,button2,button3,button4;JLabel label;public ComputerFrame(){setLayout(new FlowLayout());text1=new JTextField(10);text2=new JTextField(10);text3=new JTextField(10);label=new JLabel(" ",JLabel.CENTER);label.setBackground(Color.green);add(text1);add(label);add(text2);add(text3);button1=new JButton("加");button2=new JButton("减");button3=new JButton("乘");button4=new JButton("除");add(button1);add(button2);add(button3);add(button4);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);setSize(400,320);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); validate();}public void actionPerformed(ActionEvent e){ double n;if(e.getSource()==button1){ double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1+n2;text3.setText(String.valueOf(n));label.setText("+");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button2){ double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1-n2;text3.setText(String.valueOf(n));label.setText("-");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button3){double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1*n2;text3.setText(String.valueOf(n));label.setText("*");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button4){double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1/n2;text3.setText(String.valueOf(n));label.setText("/");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}validate();}}6.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_6{ public static void main(String args[]){ new WindowPanel();}}class Mypanel extends JPanel implements ActionListener { JButton button;JTextField text;Mypanel(){ button=new JButton(" ");text=new JTextField(12);add(button);add(text);button.addActionListener(this);}public void actionPerformed(ActionEvent e){ String name=text.getText();if(name.length()>0)button.setText(name);validate();}}class WindowPanel extends JFrame{ Mypanel panel1,panel2;WindowPanel(){ panel1=new Mypanel();panel2=new Mypanel();panel1.setBackground(Color.red);panel2.setBackground(Color.blue);add(panel1,BorderLayout.SOUTH);add(panel2,BorderLayout.NORTH);setSize(300,320);setVisible(true);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}7.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_7{ public static void main(String args[]){ new WindowColor();}}class WindowColor extends JFrame{ JButton button;JTextField text;JComboBox list;WindowColor(){ setLayout(new FlowLayout());button=new JButton("hello");button.setBackground(Color.pink);button.setForeground(new Color(12,26,200));text=new JTextField("how are you");text.setBackground(Color.yellow);text.setForeground(new Color(200,26,20));list=new JComboBox();list.addItem("Hello");list.addItem("Java");list.setBackground(Color.cyan);list.setForeground(new Color(100,100,100));add(list);add(button);add(text);setSize(300,320);setVisible(true);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}8.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_8{ public static void main(String args[]){ MoveFrame f=new MoveFrame();f.setBounds(12,12,300,300);f.setVisible(true);f.setTitle("移动");f.validate();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}class MoveFrame extends JFrame implements ActionListener{ JButton controlButton,movedButton;public MoveFrame(){ controlButton=new JButton("单击我运动另一个按钮");controlButton.addActionListener(this);movedButton=new JButton();movedButton.setBackground(new Color(12,200,34));setLayout(null);add(controlButton);add(movedButton);controlButton.setBounds(10,30,180,30);movedButton.setBounds(100,100,20,20);}public void actionPerformed(ActionEvent e){ int x=movedButton.getBounds().x;int y=movedButton.getBounds().y;x=x+5;y=y+1;movedButton.setLocation(x,y);if(x>200){ x=100;y=100;}}}9.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class E{ public static void main(String args[]){ JFrame fr=new JFrame();fr.add(new LP(),BorderLayout.CENTER);fr.setVisible(true);fr.setBounds(12,12,300,300);fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fr.validate();}}class LP extends JLayeredPane implements MouseListener,MouseMotionListener { JButton button[];JTextField text[];int x,y,a,b,x0,y0;LP(){ setLayout(new FlowLayout());button=new JButton[8];for(int k=0;k<button.length;k++){ button[k]=new JButton("用鼠标拖动我");add(button[k]);button[k].addMouseListener(this);button[k].addMouseMotionListener(this);}text=new JTextField[10];for(int k=0;k<text.length;k++){ text[k]=new JTextField("用鼠标拖动我");text[k].addMouseListener(this);add(text[k]);text[k].addMouseMotionListener(this);}addMouseMotionListener(this);}public void mousePressed(MouseEvent e){ Component com=null;com=(Component)e.getSource();setLayer(com,JLayeredPane.DRAG_LAYER);a=com.getBounds().x;b=com.getBounds().y;x0=e.getX(); //获取鼠标在事件源中的位置坐标y0=e.getY();}public void mouseReleased(MouseEvent e){ Component com=null;com=(Component)e.getSource();setLayer(com,JLayeredPane.DEFAULT_LAYER);Component component[]=this.getComponents();for(int k=0;k<component.length;k++){ Rectangle rect1=component[k].getBounds();Rectangle rect2=com.getBounds();if(rect1.intersects(rect2)&&com!=component[k]){ component[k].setVisible(false);//this.remove(component[k]);}}}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mouseClicked(MouseEvent e){}public void mouseMoved(MouseEvent e){}public void mouseDragged(MouseEvent e){ Component com=null;if(e.getSource() instanceof Component){ com=(Component)e.getSource();a=com.getBounds().x;b=com.getBounds().y;x=e.getX(); //获取鼠标在事件源中的位置坐标y=e.getY();a=a+x;b=b+y;com.setLocation(a-x0,b-y0);}}}10.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class E{ public static void main(String args[]){ JFrame fr=new JFrame();fr.add(new MoveButton(),BorderLayout.CENTER);fr.setVisible(true);fr.setBounds(12,12,300,300);fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fr.validate();}}class MoveButton extends JLayeredPane implements KeyListener { JButton b[]=new JButton[8];int x,y;MoveButton(){ setLayout(new FlowLayout());for(int i=0;i<8;i++){ b[i]=new JButton(""+i);b[i].addKeyListener(this);add(b[i]);}}public void keyPressed(KeyEvent e){ int moveDistance=1;Component com=(Component)e.getSource();int x=(int)com.getBounds().x;int y=(int)com.getBounds().y;Component component[]=this.getComponents();if(e.getKeyCode()==KeyEvent.VK_UP)。
实训参考答案【实训内容】见第十章。
【参考答案】10.1 //////////////////////////////////////////////////////////public class Exer10_1{public static void main(String [] args){//System.out.print("Hello "); //第一次运行//System.out.print("Hello \n"); //第二次运行System.out.print("Hello\n李明"); //第二次运行也可以这样写//System.out.print("李明");}}10.2 //////////////////////////////////////////////////////////public class Exer10_2 {public static void main (String args[ ]) {char chinaWord='你', japanWord='ぁ';int p1=20328,p2=12358;System.out.println("汉字\'你\'字在unicode表中的顺序位置:"+(int)chinaWord);System.out.println("日语\'ぁ\'字在unicode表中的顺序位置:"+(int)japanWord);System.out.println("unicode表中第20328位置上的字符是:"+(char)p1);System.out.println("unicode表中第12358位置上的字符是:"+(char)p2);}}10.3(1) //////////////////////////////////////////////////////////public class Exer10_3_1{public static void main(String[] args){int val1=5;int val2=6;int result=0;char op='-';switch(op){case '+' :result=val1+val2;break;case '-' :result=val1-val2;break;case '*' :result=val1*val2;break;case '/' :result=val1/val2;break;case '%' :result=val1%val2;default :System.out.println("没有找到匹配的操作符");}System.out.println("计算结果为:"+val1+op+val2+"="+result);}}(2) //////////////////////////////////////////////////////////class Exer10_3_2{public static void main(String args[]) {int sum=0,i,j;for( i=1;i<=50;i++){ //计算1+3+5+7+9…if(i%2==0){continue;}sum=sum+i;}System.out.println("sum="+sum);for( j=2;j<=50;j++){ //求50以内的素数for( i=2;i<=j/2;i++){if(j%i==0){break;}}if(i>j/2){System.out.println(""+j+"是素数");}}}}10.4 /////////////////////////////////////public class Exer10_4 {public static void main(String args[]) {System.out.println(dengcha(3));System.out.println(dengcha(5));System.out.println(dengcha(10));}public static int dengcha(int n) {return 1+(n-1)*4;}}10.5 ///////////////////////////////class Computer {private String pc_name; //计算机品牌private String pc_color; //计算机颜色private String pc_type; //CPU型号private String pc_ram; //内存容量private String pc_harddisk; //硬盘容量private int pc_price; //价格private String pc_state; //工作状态public Computer() //默认构造函数,不带参数{ pc_name=""; //计算机品牌pc_color=""; //计算机颜色pc_type=""; //CPU型号pc_ram=""; //内存容量pc_harddisk=""; //硬盘容量pc_price=0; //价格pc_state=""; //计算机状态}public Computer(String aname,String acolor,String atype,String aram,String aharddisk,int aprice,String astate)//带参数的构造函数{ pc_name=aname; //计算机品牌初值pc_color=acolor; //计算机颜色初值pc_type=atype; //CPU型号初值pc_ram=aram; //内存容量初值pc_harddisk=aharddisk; //硬盘容量初值pc_price=aprice; //价格初值pc_state=astate; //计算机状态初值}void setcomputer(String aname,String acolor,String atype,String aram,String aharddisk,int aprice,String astate)//设置属性值的方法{ pc_name=aname; //计算机品牌pc_color=acolor; //计算机颜色pc_type=atype; //CPU型号pc_ram=aram; //内存容量pc_harddisk=aharddisk; //硬盘容量pc_price=aprice; //价格pc_state=astate; //计算机状态}void setstate(String astate) //设置状态属性的方法{ pc_state=astate;}void setram(String aram) //设置内存属性的方法{ pc_ram=aram;}public String pc_open() //定义计算机打开的方法{ setstate("打开");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println(" * ");System.out.println(" * * * ");System.out.println("* * * * *");System.out.println("-------------------");return pc_state;}public String pc_close() //定义计算机关闭的方法{ setstate("关闭");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println("请稍后,正在关闭计算机");System.out.println("-------------------");return pc_state;}public String pc_hitch() //定义计算机挂起的方法{ setstate("挂起");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println("启动计算机请按Ctrl+Alt+Delete键");System.out.println("-------------------");return pc_state;}void printcomputer() //输出的方法{ if(pc_price>0)System.out.println("计算机品牌:"+pc_name+" 颜色:"+pc_color+" CPU型号:"+pc_type+" 内存容量:"+pc_ram+"\n硬盘容量:"+pc_harddisk+" 价格:"+pc_price+" 工作状态:"+pc_state);elseSystem.out.println("计算机品牌: 未知"+" 工作状态:"+pc_state);System.out.println("---------------------------------");}}class Mycomputer {public static void main(String[] args) {Computer stu1=new Computer(); //创建计算机类的对象stu1;//调用方法setcomputer设置计算机信息stu1.setcomputer("Dell","黑","PentiumⅣ","256k","20G",7096," 良好");stu1.printcomputer(); //输出计算机的信息Computer stu2=new Computer(); //创建计算机类的对象stu2;stu2.setcomputer("联想","黑","PentiumⅣ","512k","40G",7296," 良好");stu2.printcomputer(); //输出计算机的信息stu1.pc_open();stu2.pc_close();stu1.pc_hitch();stu2.setram("1024");stu1.printcomputer(); //输出计算机的信息stu2.printcomputer(); //输出计算机的信息Computer stu3=new Computer();stu3.setstate("打开");stu3.printcomputer(); //输出计算机的信息}}10.6 //////////////////////////////////package mypackage.factorial;class Factorial{private int n;public Factorial(int n){this.n=n;}private boolean testN(int n){if (n>=0){return true;}else{System.out.println("请输入非负数!");return false;}}public int Factorial(int n) {if (n==0) return 1;return n*Factorial(n-1);}public void print(){if (testN(n)) System.out.println(n+"!="+Factorial(n));}}////////////////////////////////////////////////////////////////////package mypackage.test;import mypackage.factorial.Factorial;class TestFactorial {public static void main(String [] args) {int n=Integer.parseInt(args[0]);Factorial f=new Factorial(n);f.print();}}10.7(1) //////////////////////////////////////////////////////////class Employee {int id;private String name;public void setId(int id) {this.id=id;}public void setName(String name) {=name;}}class Manager extends Employee{public void setId(byte id){this.id=id;}private int departmentID;public void setDepartmentID(int id) {departmentID=id;}}public class ExtendsExam1 {public static void main(String [] args) {Employee e=new Manager();}}(2) //////////////////////////////////////////////////////////class A{static int a=10;static int id=1;static String go(){return "20";}public static String fun(){return "20";}}class B extends A{}public class ExtendsExam2{public static void main(String [] args) {Employee e=new Manager();System.out.println("B.a="+B.a);System.out.println("B.id="+B.id);System.out.println("B.go()="+B.go());System.out.println("B.fun="+B.fun());}}(3) //////////////////////////////////////////////////////////class SuperClass {int x;SuperClass( ) {x=3;System.out.println("in SuperClass : x=" +x);}void doSomething( ){System.out.println(" in SuperClass.doSomething()");}}class SubClass extends SuperClass{int x;SubClass( ) {super( );x=5;System.out.println(" in SubClass :x=" +x);}void doSomething( ) {super.doSomething( );System.out.println(" in SubClass.doSomething()");System.out.println(" super.x="+super.x+" sub.x="+x);}}public class ExtendsExam3 {public static void main(String args[]) {SubClass sub=new SubClass();sub.doSomething();}}10.8(1) //////////////////////////////////////////////////////////class MethodOverload{void receive(int i) {System.out.println("excuted receive(int i)");}void receive(int x, int y) {System.out.println("excuted receive(int x, int y)");}void receive(double d) {System.out.println("excuted receive(double d)");}void receive(String s) {System.out.println("excuted receive(String s)");}}public class MethodOverloadExam1 {public static void main(String args[]) {MethodOverload mo=new MethodOverload();mo.receive(1);mo.receive(2,3);mo.receive(12.56);mo.receive("very interesting, isn’t it?");}}(2) //////////////////////////////////////////////////////////public class xEmployee { //一个构造函数使用另一个构造函数的某方面效果String name;int salary;public xEmployee(String s, int n) {name = s;salary = n;}public xEmployee(String s){this(s, 0);//……// this调用必须作为构造方法中第一个语句}public xEmployee(int n){this("Unknown", n);//……// this调用必须作为构造方法中第一个语句}public xEmployee(){this( "Unknown" );//……// this调用必须作为构造方法中第一个语句}public static void main(String [] args) {xEmployee s1=new xEmployee ("欧阳振国",5200);xEmployee s2=new xEmployee ("欧阳振国");xEmployee s3=new xEmployee (6000);xEmployee s4=new xEmployee ();System.out.println( +"---"+s1.salary);System.out.println( +"---"+s2.salary);System.out.println( +"---"+s3.salary);System.out.println( +"---"+s4.salary);}}(3) //////////////////////////////////////////////////////// 错误原因:SubClass中的fun() 无法覆盖SuperClass中的fun(),被覆盖的方法为final ////////////////////////////////////////////////////////////class SuperClass {int i=1;public final int fun() {return 1;}public void go() {System.out.println(fun());}}class SubClass extends SuperClass {int i=2;public int fun() {return 2;}}public class MethodOverrideExma{public static void main(String [] args) {SuperClass s=new SubClass();s.go();}}10.9(1) ///////////////////////////////////////////////interface A{}interface B{}interface C extends A{}interface D extends A,B,C{}(2) ///////////////////////////////////////////////interface V olume{double calculateV olume();}class Circle implements V olume{double r;public Circle(double r){this.r=r;}public double calculateV olume(){return 3.14*r*r*r;}}class Rectangle implements V olume{double l,w,h;public Rectangle(double l,double w,double h){this.l=l;this.w=w;this.h=h;}public double calculateV olume(){return l*w*h;}}class Test{public static void main (String [] args){Circle c=new Circle(2);System.out.println ("球的体积额为:"+c.calculateV olume());Rectangle r=new Rectangle(1,2,3);System.out.println ("长方体的体积为:"+r.calculateV olume());}}10.10 ///////////////////////////////////////////////class Employee{String name;int number;int age;int salary;public Employee(String name,int number,int age,int salary){ =name;this.number=number;this.age=age;this.salary=salary;}}class EmployeeTest{static Employee [] e=new Employee[5];public static int average(String type){int sum=0;for (int i=0;i<e.length;i++){if (type.equals("age")) sum=sum+e[i].age;if (type.equals("salary")) sum=sum+e[i].salary;}return sum/e.length;}public static int minimum(String type){int min=0;if (type.equals("age")){min=e[0].age;for (int i=1;i<e.length;i++){if (e[i].age<min) min=e[i].age;}}if (type.equals("salary")){min=e[0].salary;for (int i=1;i<e.length;i++){if (e[i].salary<min) min=e[i].salary;}}return min;}public static int maximum(String type){int max=0;if (type.equals("age")){max=e[0].age;for (int i=1;i<e.length;i++){if (e[i].age>max) max=e[i].age;}}if (type.equals("salary")){max=e[0].salary;for (int i=1;i<e.length;i++){if (e[i].salary>max) max=e[i].salary;}}return max;}public static void main(String [] args){e[0]=new Employee("张三",1,25,1500);e[1]=new Employee("李四",2,30,2800);e[2]=new Employee("王五",3,45,4500);e[3]=new Employee("刘六",4,28,2400);e[4]=new Employee("赵七",5,32,3000);if (args.length==2){if (args[0].equals("age")){ if(args[1].equals("min")) {System.out.println("最小年龄是"+minimum("age"));}else if(args[1].equals("max")) {System.out.println("最大年龄是"+maximum("age"));}else if(args[1].equals("avg")) {System.out.println("平均年龄是"+average("age"));}elseSystem.out.println("输入不正确,请正确输入!");}else if(args[0].equals("salary")){if(args[1].equals("min") ) {System.out.println("最低工资是"+minimum("salary"));}else if(args[1].equals("max")) {System.out.println("最高工资是"+maximum("salary"));}else if (args[1].equals("avg")) {System.out.println("平均工资是"+average("salary"));}elseSystem.out.println("输入不正确,请正确输入!");}else System.out.println("输入不正确,请正确输入!");}else System.out.println("输入不正确,请正确输入!");}}10.11(1)///////////////////////////////////////////////class Exer10_11_1{public static void main (String [] args){String s1=args[0];String s2=args[1];if(s1.equals(s2)){System.out.println ("s1==s2");}else if(pareTo(s2)>0){System.out.println ("s1>s2");}else{System.out.println ("s1<s2");}}}(2)///////////////////////////////////////////////class Exer10_11_2{public static void main (String [] args){StringBuffer s=new StringBuffer("Hello java!");System.out.println ("原始字符串:"+s);s=s.replace(6,s.length(),"world!");System.out.println ("替换后:"+s);s=s.insert(6,"new ");System.out.println ("插入后:"+s);s=s.delete(6,10);System.out.println ("删除后:"+s);s=s.append(" Hello java!");System.out.println ("追加后:"+s);s=s.reverse();System.out.println ("翻转后:"+s);}}10.12(1)///////////////////////////////////////////////class Exer10_12_1{public static void main (String [] args){try {String s=args[0];}//此处可能产生的异常类,应该为ArrayIndexOutOfBoundsExceptioncatch (NumberFormatException ex) {System.out.println ("格式转换错误!");}}}// 使用如下的方式之一,可以捕获并处理异常// catch (ArrayIndexOutOfBoundsException ex) {// System.out.println ("格式转换错误!");// }///////////////// catch (IndexOutOfBoundsException ex) {// System.out.println ("格式转换错误!");// }///////////////// catch (Exception ex) {// System.out.println ("格式转换错误!");// }//ng.Object// ng.Throwable// ng.Exception// ng.RuntimeException// ng.IndexOutOfBoundsException// ng.ArrayIndexOutOfBoundsException(2)//////////////////////////////////////////////////class Exer10_12_2{public static void main (String [] args){try {int i=Integer.parseInt(args[0]);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println ("请输入整数!");}}}(3)//////////////////////////////////////////////////class Exer10_12_3{public static void main (String [] args){try {//System.exit(0); //在此处执行System.exit()方法,finally块无法执行String s=args[0];int i=Integer.parseInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");System.exit(0);//如果出现IndexOutOfBoundsException异常,会执行System.exit()方法//则finally块无法执行//return;}catch (NumberFormatException ex) {System.out.println ("请输入整数!");return;//如果出现NumberFormatException异常,会执行finally块}finally {System.out.println ("执行finally块!");}}}(4)//////////////////////////////////////////////////class Exer10_12_4{public static void main (String [] args){try {String s=args[0];int i=Integer.parseInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println ("请输入整数!");}catch(Exception ex){System.out.println ("产生其他异常!");}}}(5)//////////////////////////////////////////////////class Exer10_12_5{public static int getInt(String s) throws NumberFormatException{for(int i=0;i<s.length();i++){if(s.charAt(i)<'0' || s.charAt(i)>'9'){throw new NumberFormatException("请输入数值型数据!");}}int i=Integer.parseInt(s);return i;}public static void main (String [] args){try {String s=args[0];int i=getInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println (ex.getMessage());}catch(Exception ex){System.out.println ("产生其他异常!");}}}10.13 //////////////////////////////////////////////////import java.io.*;import java.util.*;class Exer10_13{public static void main (String [] args){String dir;String cdate,size,name;int filecount=0,dircount=0;long allsize=0,longsize=0;try{dir=args[0]; //dir是已定义的String对象}catch(ArrayIndexOutOfBoundsException e){dir="./"; //考虑没有参数传入时,dir的值是当前目录}File f=new File(dir);if(!f.exists()){System.out.println("文件或目录不存在!");System.exit(0);}if(f.isFile()){long l=stModified();Date date=new Date(l);cdate=date.toLocaleString();long len =f.length();allsize+=len;name=f.getName();filecount++;System.out.println (cdate+" "+len+" "+name);}else{File [] list=f.listFiles();for(int i=0;i<list.length;i++){if(list[i].isDirectory()){long l=list[i].lastModified();Date date=new Date(l);cdate=date.toLocaleString();name=list[i].getName();dircount++;System.out.println (cdate+"\t<DIR>\t\t\t\t"+name);}else{long l=list[i].lastModified();Date date=new Date(l);cdate=date.toLocaleString();long len =list[i].length();allsize+=len;name=list[i].getName();filecount++;System.out.println (cdate+"\t\t\t"+len+"\t\t"+name);}}}longsize=allsize/1024;System.out.println ("\n"+filecount+"个文件"+longsize+"个字节");System.out.println (dircount+"个文件夹");}}10.14 //////////////////////////////////////////////////import java.io.*;class Exer10_14{static FileInputStream fis;static FileOutputStream fos;public static void main (String [] args){String source=args[0];String dest=args[1];int size=0,i=0;try {fis=new FileInputStream(source);fos=new FileOutputStream(dest);byte[] b=new byte[255];while((i=fis.read(b))!=-1){System.out.println (new String (b,0,i));size+=i;fos.write(b);}fis.close();fos.close();System.out.println ("复制文件完毕!共"+size+"字节!");}catch (Exception ex) {ex.printStackTrace();}finally { }}}10.15 //////////////////////////////////////////////////import java.io.*;class Exer10_15{public static void main (String [] args){try {int n=Integer.parseInt(args[0]);RandomAccessFile ra=new RandomAccessFile("student.dat","r");if(n*19>ra.length()) {System.out.println("记录号超出范围!");return;}ra.seek((n-1)*19);String sno=Integer.toString(ra.readInt());String name=ra.readUTF();int age=ra.readInt();char grade=ra.readChar();boolean sex=ra.readBoolean();System.out.println (sno+"\t"+name+"\t"+age+"\t"+grade+"\t"+sex);ra.close();} catch (Exception ex) {System.out.println ("产生错误!");System.out.println (ex.getMessage());}finally { }}}10.16 //////////////////////////////////////////////////(1)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_1 extends JFrame{JButton [] button;public Exer10_16_1(){button =new JButton[5];for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);this.getContentPane().add(button[i]);}this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));//this.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));//this.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));this.setSize(200,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_1();}}(2)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_2 extends JFrame{JButton [] button;public Exer10_16_2(){button =new JButton[5];for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);}this.getContentPane().setLayout(new BorderLayout());this.getContentPane().add(button[0],BorderLayout.NORTH);this.getContentPane().add(button[1],BorderLayout.WEST);this.getContentPane().add(button[2],BorderLayout.CENTER);this.getContentPane().add(button[3],BorderLayout.SOUTH);this.getContentPane().add(button[4],BorderLayout.EAST);this.setSize(200,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_2();}}(3)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_3 extends JFrame{JButton [] button;public Exer10_16_3(){button =new JButton[13];this.getContentPane().setLayout(new GridLayout(4,4));// this.getContentPane().setLayout(new GridLayout(3,5));// this.getContentPane().setLayout(new GridLayout(5,3));// this.getContentPane().setLayout(new GridLayout(13,0));// this.getContentPane().setLayout(new GridLayout(0,13));for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);this.getContentPane().add(button[i]);}this.setSize(400,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_3();}}10.17(1)//////////////////////////////////////////////////import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Exer10_17_1 extends JFrame{JTextArea text=new JTextArea(15,20);JTextField tx=new JTextField(10);JButton button=new JButton("发送");public Exer10_17_1(){this.getContentPane().setLayout(new FlowLayout());this.getContentPane().add(text);this.getContentPane().add(tx);this.getContentPane().add(button);tx.addKeyListener(new KeyAdapter(){public void keyPressed(KeyEvent e){if(e.getKeyCode()==KeyEvent.VK_ENTER){send();}}});button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){send();}});this.setSize(300,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}private void send(){text.append(tx.getText()+"\n");}public static void main (String [] args){new Exer10_17_1();}}(2)//////////////////////////////////////////////////import javax.swing.*;import java.awt.*;public class Exer10_17_2 extends JFrame{Exer10_17_2(){this.setSize(300,350);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public void paint(Graphics g){int x,y,i;g.drawLine(10,40,300,40); //从(10,40)开始到(300,40)画一条黑色直线g.setColor(Color.red);g.drawRect(10,50,50,30); //在(10,50)到(50,30)处画一个红色的矩形框g.drawOval(100,50,40,40); //在(100,50)处画一个半径为40的红色的圆形g.setColor(Color.blue);g.fillOval(170,50,90,40); //在(170,50)处画一个宽为90,高为40的蓝色的实心椭圆g.setColor(Color.pink); //绘制字符串Font fo=new Font("楷体_GB2312",Font.ITALIC|Font.BOLD,32);g.setFont(fo);g.drawString("我们都很快乐!",10,130);Image im=null; //显示图片im=getToolkit().getImage("b.jpg");g.drawImage(im,10,170,200,160,this);}public static void main(String args[]){new Exer10_17_2();}}(3)//////////////////////////////////////////////////import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Exer10_17_3 extends JFrame implements ActionListener{ // 类EventExample实现ActionListener接口,成为事件监听器JPanel p;JPanel p1;JTextField number;JTextField name;JTextField age;JTextArea summary;JButton ok;JButton cancel;public Exer10_17_3 (){super("ActionEvent事件演示示例");p=new JPanel();p1=new JPanel();number=new JTextField (5);name=new JTextField (18);age=new JTextField ("20");summary=new JTextArea("请在此输入个人简介!",4,20);ok=new JButton("确定");ok.addActionListener(this); //注册,添加监听器cancel=new JButton("取消");cancel.addActionListener(this); //注册,添加监听器p.add(new Label("学号:"));p.add(number);p.add(new Label("姓名:"));p.add(name);p.add(new Label("年龄:"));p.add(age);p.add(new Label("个人简介:"));p1.add(ok);p1.add(cancel);this.getContentPane().add(p,BorderLayout.NORTH);this.getContentPane().add(summary);this.getContentPane().add(p1,BorderLayout.SOUTH);this.setSize(600,300);this.setV isible(true);}public void actionPerformed(ActionEvent e){ //重写接口中的全部方法if ((JButton)e.getSource()==ok){ //判断是否为ok按钮发生的事件summary.setText("你输入的学号是:"+number.getText()+" 姓名是:"+name.getText()+" 年龄是:"+age.getText());}else{number.setText("");name.setText("");age.setText("");summary.setText("");}}public static void main(String [] args){new Exer10_17_3 ();}}10.18 ///////////////////////////////////////////////////*操作数据库程序DataBaseOperator.java*/import java.sql.*;class DataBaseOperator{static Connection stucn;static Statement stust;static ResultSet sturs;public static boolean ConnDB(String DSName,String UserName,String Password){ //连接数据库boolean ConnOk=false;try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");System.out.println ("数据库驱动程序加载成功......");stucn=DriverManager.getConnection("jdbc:odbc:"+DSName,UserName,Password);ConnOk=true;System.out.println ("数据库连接成功......");}catch (Exception ex) {System.out.println ("数据库连接失败......");}return ConnOk;}public static boolean searchTable(String SQLString){ //查询数据。
J a v a-2实用教程实验指导模版代码-CAL-FENGHAI.-(YICAI)-Company One1上机实践1 初识JAVA ...................................................................................... 错误!未定义书签。
实验1一个简单的应用程序............................................................................ 错误!未定义书签。
实验2一个简单的J AVA A PPLET程序................................................................. 错误!未定义书签。
实验3联合编译................................................................................................ 错误!未定义书签。
上机实践2 基本数据类型与控制语句 ............................................................ 错误!未定义书签。
实验1输出希腊字母表.................................................................................... 错误!未定义书签。
实验2回文数.................................................................................................... 错误!未定义书签。
实验3猜数字游戏............................................................................................ 错误!未定义书签。
Java实用教程第二版课程设计1. 简介Java是一种跨平台的面向对象编程语言,已经成为当今最流行的编程语言之一。
而Java实用教程则是一本专注于教授Java编程的书籍。
本文旨在设计一套Java实用教程第二版课程,以帮助学生更好地掌握Java编程技能。
2. 课程目标本课程旨在让学生掌握Java编程的基本知识和技能,能够独立地完成基础Java编程任务。
具体目标如下:1.掌握Java基础语法和语言特性;2.熟悉Java面向对象编程思想;3.能够使用Java编写基本的应用程序、Web应用程序和数据库应用程序;4.掌握Java开发框架和工具,如Spring、Hibernate等。
3. 课程内容3.1 Java基础语法1.基本数据类型2.运算符3.控制流语句4.数组和字符串5.类和对象6.包和访问控制7.接口和抽象类3.2 面向对象编程1.继承和多态2.接口和抽象类3.内部类4.异常处理3.3 Java应用程序开发1.Java Swing用户界面编程2.Java标准I/O3.文件和目录操作4.网络编程5.多线程编程6.日期和时间API7.正则表达式8.JDBC编程3.4 Java Web应用程序开发1.Servlet API2.JSP API3.Web应用程序架构4.Spring MVC框架3.5 Java数据库应用程序开发1.JDBC编程2.Hibernate框架介绍3.Spring Data JPA介绍4. 课程设计本课程采用理论教学与实践训练相结合的教学模式。
具体设计如下:4.1 理论教学老师将学生分成若干个小组,每个小组都需要阅读Java实用教程第二版中的相关章节,并在课上与老师进行讨论。
同时,老师还会通过实例讲解来加深学生的理解,例如,对于Java多线程编程这一章节,老师可以通过编写一个多线程下载器的示例程序来进行讲解。
4.2 实践训练实践训练是本课程的重点,学生需要完成若干个实践项目来巩固所学知识。