一. 填空题(共1题,100分)
1. (填空题)
package和 import语句的使用,jar文件的创建及使用
编写一个Java应用程序,具体要求如下:
该程序有两个源文件:SquareEquation.java中的SquareEquation类负责创建“一元2次方程”对象。 SquareEquation类中的方法getRoots() 负责计算一元2次方程的根,把SquareEquation类定义在tom.jiafei包中。
SunRise.java中的SunRise类是应用程序的主类,在主类中使用 SquareEquation类创建具体的一元2次方程,然后计算该一元2次方程的根。把SunRise类定义在moon.star包中。
请把【代码1】,【代码2】,【代码3】,【代码4】,【代码5】,【代码6】和【代码7】的语句补充完整。(注意:该程序在JDK中编译及执行)
提示:求一个数的平方根是使用java.lang包中的Math类中的sqrt静态方法。
程序模板如下:
SquareEquation.java
----------------------------------------
【代码1】 //把SquareEquation类定义在tom.jiafei包中
public class SquareEquation {
double a,b,c;
double root1,root2;
boolean boo;
public SquareEquation(double a,double b,double c) {
this.a=a;
this.b=b;
this.c=c;
if(a!=0)
boo=true;
else
boo=false;
}
public void getRoots() {
if(boo) {
System.out.println("是一元2次方程");
double disk=b*b-4*a*c;
if(disk>=0) {
【代码2】 //计算一元2次方程的根赋值给root1
【代码3】 //计算一元2次方程的根赋值给root2
System.out.printf("方程的根:%f,%f\n",root1,root2);
}
else {
System.out.printf("方程没有实根\n");
}
}
else {
System.out.println("不是一元2次方程");
}
}
public void setCoefficient(double a,double b,double c) {
this.a=a;
this.b=b;
this.c=c;
if(a!=0)
boo=true;
else
boo=false;
}
}
SunRise.java
----------------------------------------
【代码4】 //把SunRise类定义在moon.star包中
【代码5】 //使用tom.jiafei包中的类SquareEquation
public class SunRise {
public static void main(String args[]) {
SquareEquation equation=new SquareEquation(4,5,1);
【代码6】 //计算equation的根
equation.setCoefficient(-3,4,5);
【代码7】 //计算equation的根
}
}
回答以下问题:
(1)【代码4】和【代码5】的位置是否能够对调_____________(回答是或者否)?
(2)存放SquareEquation.class的目录结构应该是怎样的_____________?存放SunRise.class的目录结构应该是怎样的_____________?
(3)假设把该应用程序的源文件都放在同一目录下,如D:\,然后用命令javac SquareEquation.java得到SquareEquation.class文件应该放在D:\的什么目录_____________?用命令javac SunRise.java得到SunRise.class文件应该放在D:\的什么目录_____________?假设当前目录为D:\,该如何执行该应用程序_____________(写出执行该应用程序的命令)?
(4)若把第三题得到的SquareEquation.class放在D:\盘的相应目录下,SunRise.class放在E:\盘的相应目录下,也就是SquareEquation.class和SunRise.class放在计算机硬盘不同分区中,假设当前目录为E:\,该如何执行该应用程序_____________(写出执行该应用程序的命令,不使用classpath环境变量)?
(5) 接上题,如何把SquareEquation.java编译得到的字节码文件SquareEquation.class生成一个se.jar文件_____________(假设当前目录为D:\,写出生成se.jar文件的命令,se.jar文件也创建在D:\)?得到se.jar文件后,假设当前目录为E:\,该如何执行该应用程序_____________(写出执行该应用程序的命令)?当然也可以把se.jar 文件拷贝到 JRE的安装目录下的\lib\_____________子目录中,然后直接执行java moon.star.SunRise命令运行该应用程序。
(1) package tom.jiafei;
(2) root1=(-b+Math.sqrt(disk)/(2*a);
(3) root2=(-b+Math.sqrt(disk)/(2*a);
(4) package moon.star;
(5) import tom.jiafei.SquareEquation;
(6) equation.getRoots();
(7) equation.getRoots();
(8) 否
(9) \tom\jiafei;tom\jiafei
(10) \moon\star;moon\star
(11) \tom\jiafei;tom\jiafei
(12) \moon\star;moon\star
(13) java moon.star.SunRise
(14) java-cp d:\;moon.star.SunRise
(15) jar cf se.jar \tom\jiafei\SquareEquation.class
(16) java-cp d:\se.jar;moon.star.SunRise
(17) ext