Java程序设计实验指导书答案.docx
《Java程序设计实验指导书答案.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验指导书答案.docx(34页珍藏版)》请在冰豆网上搜索。
![Java程序设计实验指导书答案.docx](https://file1.bdocx.com/fileroot1/2023-5/23/d96a40ff-ac63-415e-9a56-91ba725ff6c1/d96a40ff-ac63-415e-9a56-91ba725ff6c11.gif)
Java程序设计实验指导书答案
第Ⅰ部分:
实验指导
实验1:
Java开发环境J2SE
一、实验目的
(1)学习从网络上下载并安装J2SE开发工具。
(2)学习编写简单的JavaApplication程序.
(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务
从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的JavaApplication程序,编译并运行这个程序。
三、实验内容
1.安装J2SE开发工具
Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java2SDK,可以从上进行下载。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:
\j2sdk1.4.1_03目录下。
教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具EditPlus
教师通过大屏幕演示EditPlus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java原程序的常用命令的用法。
3.编写并编译、运行一个JavaApplication程序。
创建一个名为HelloWorldApp的javaApplication程序,在屏幕上简单的显示一句话"老师,你好!
"。
publicclassHelloWorldApp{
publicstaticvoidmain(String[]args){
System.out.println("老师,你好!
");
}
}
4.编译并运行下面的JavaApplication程序,写出运行结果。
1:
publicclassMyClass{
2:
privateintday;
3:
privateintmonth;
4:
privateintyear;
5:
publicMyClass(){
6:
day=1;
7:
month=1;
8:
year=1900;
9:
}
10:
publicMyClass(intd,intm,inty){
11:
day=d;
12:
month=m;
13:
year=y;
14:
}
15:
publicvoiddisplay(){
16:
System.out.println(day+"-"+month+"-"+year);
17:
}
18:
publicstaticvoidmain(Stringargs[]){
19:
MyClassm1=newMyClass();
20:
MyClassm2=newMyClass(25,12,2001);
21:
m1.display();
22:
m2.display();
23:
}
24:
}
运行结果:
1-1-1900
25-12-2001
实验2:
Java基本数据类型
一、实验目的
(1)掌握javadoc文档化工具的使用方法。
(2)掌握Java语言转义字符的功能。
(3)理解“值传递”的过程。
二、实验任务
(1)利用javadoc文档化工具,将给定的JavaApplication源代码自动生成一系列说明文档。
(2)输入、运行给定的JavaApplication程序,写出运行结果,以验证Java语言转义字符的功能。
(3)按照要求编写JavaApplication程序。
三、实验内容
1.Javadoc文档化工具的使用
Java2SDK1.4.1中提供了一个文档自动生成工具,可以简化程序员编写文档的工作。
可以使用javadoc.exe命令启动Java文档化工具,自动生成Java程序文档。
输入下面给出的JavaApplication程序,利用javadoc命令生成该Java应用程序的文档,并使用浏览器IE显示生成的文档页面内容。
1:
/*Java编程技术chapter3,CommentTest.java
2:
版权所有:
新东方IT教育。
3:
作者:
zlg
4:
日期:
2001/07/01
5:
*/
6:
/**
7:
这是一个Java语言入门程序,定义类CommentTest。
其中含有main()方法,因此可以作为一
8:
个应用程序单独执行。
其功能是在默认的输出设备上输出字符串"Hi,你好!
"。
9:
*/
10:
publicclassCommentTest{
11:
//主方法,作为Java应用程序的默认入口。
12:
publicstaticvoidmain(Stringargs[]){
13:
System.out.println("Hi,你好!
");//输出"Hi,你好!
"
14:
}
15:
}
执行javadocCommentTest.java指令,生成文件:
CommentTest.html、package-frame.html、package-summary.html、package-tree.html、constant-values.html、overview-tree.html、index-all.html、deprecated-list.html、allclasses-frame.html、allclasses-noframe.html、index.html、help-doc.html。
2.输入下面的JavaApplication程序,写出运行结果。
1:
publicclassCharSample{
2:
publicstaticvoidmain(Stringargs[]){
3:
charch1='\b';
4:
charch2='\t';
5:
charch3='\n';
6:
charch4='\r';
7:
charch5='\"';
8:
charch6='\'';
9:
charch7='\\';
10:
System.out.println("沈阳"+ch1+"师范大学");
11:
System.out.println("沈阳"+ch2+"师范大学");
12:
System.out.println("沈阳"+ch3+"师范大学");
13:
System.out.println("沈阳"+ch4+ch3+"师范大学");
14:
System.out.println(ch5+"沈阳"+"师范大学"+ch5);
15:
System.out.println(ch6+"沈阳"+"师范大学"+ch6);
16:
System.out.println(ch7+"沈阳"+"师范大学"+ch7);
17:
}
18:
}
运行结果:
沈师范大学
沈阳师范大学
沈阳
师范大学
沈阳
师范大学
“沈阳师范大学”
‘沈阳师范大学’
\沈阳师范大学\
3.按下面的要求完成JavaApplication程序,写出程序的运行结果。
(1)定义一个Java类Point,用来描述平面直角坐标系中点的坐标,该类应该能描述点的横、纵坐标信息及一些相关操作,包括获取点的横、纵坐标,修改点的坐标,显示点的当前位置等。
(2)定义一个测试类javaTest,创建Point类的对象并对其进行有关的操作。
classPoint{
doublex,y;
publicvoidsetXY(doublea,doubleb){
x=a;
y=b;
}
publicdoublegetX(){
returnx;
}
publicdoublegetY(){
returny;
}
publicvoiddisp(){
System.out.println("点的当前坐标为:
("+getX()+","+getY()+")");
}
};
publicclassjavaTest{
publicstaticvoidmain(String[]args){
Pointp1=newPoint();
p1.disp();
p1.setXY(3.2,5.6);
p1.disp();
}
}
运行结果:
点的当前坐标为:
(0.0,0.0)
点的当前坐标为:
(3.2,5.6)
实验3:
Java流程控制
一、实验目的
(1)掌握Java运算符的用法。
(2)掌握表达式的使用和各种运算符的优先级控制。
(3)掌握结构化程序设计的基本结构。
二、实验任务
(1)输入根据给定的JavaApplication程序,写出运行结果,并说明程序所完成的功能。
(2)按照要求编写JavaApplication程序。
三、实验内容
1.输入如下所示的JavaApplication程序,写出运行结果,并说明程序的功能。
1:
importjava.io.*;
2:
publicclassfindNum{
3:
publicstaticvoidmain(Stringargs[]){
4:
Strings;
5:
doubled;
6:
inti;
7:
booleanb=false;
8:
do{
9:
try{
10:
System.out.println("请输入一个浮点数:
");
11:
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
12:
s=br.readLine();//以字符串方式读入
13:
i=s.indexOf('.');//找到小数点的位置
14:
d=Double.parseDouble(s);//将字符串转换成浮点数
15:
System.out.println(d+"整数部分为:
"+(long)d);
16:
if(i==-1)//若没有小数点,则没有小数部分
17:
System.out.println(d+"小数部分为:
0.0");
18:
else//若有小数点,则截取小数点后的字符串合成浮点数
19:
System.out.println(d+"小数部分为:
"+Double.parseDouble(((s.charAt(0)=='-')?
"-":
"")+"0."+s.substring(i+1,s.length())));
20:
b=false;
21:
}
22:
catch(NumberFormatExceptionnfe){
23:
System.out.println("输入浮点数格式有误。
\n");
24:
b=true;
25:
}
26:
catch(IOExceptionioe){
27:
b=false;
28:
}
29:
}
30:
while(b);//浮点格式错误时重新输入
31:
}//endofmain
32:
}//endofclass
运行结果:
请输入一个浮点数:
abc
输入浮点数格式有误
请输入一个浮点数:
3.14
3.14的整数部分为:
3
3.14的小数部分为:
0.14
程序功能:
通过IO类从命令行读入一个数字字符串,如果输入的字符串为非数字字符串,则提示异常,要求重新输入;如果输入的是一个没有小数点的数字字符串,则将其转换为Double型浮点数,最后完成将其小数部分和整数部分分别显示输出。
2.编写一个JavaApplication程序,输出区间[200,300]上的所有素数,要求写出程序的运行结果。
publicclassSearchPrime{
publicstaticvoidmain(Stringargs[]){
outer:
for(inti=200;i<=300;i++){
for(intj=2;j
if(i%j==0)
continueouter;
System.out.print(i+””);
}
}
}
运行结果:
211223229233239241251257263269271277281283293
实验4:
Java类与对象
一、实验目的
(1)掌握Java类的继承关系和派生方法。
(2)理解多态的概念与使用。
(3)掌握接口的定义和使用。
二、实验任务
(1)按要求编写一个Java程序。
(2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。
三、实验内容
1.编写一个Java程序片断,以定义一个表示学生的类Student。
这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。
2.为类Student增加一个方法publicStringtoString(),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。
编写一个JavaApplication程序,创建Student类的对象,并验证新增加的功能。
classStudent{
privatelongstudentID;
privateintclassID;
privateStringname;
privateStringsex;
privateintage;
publicStudent(longstudentID,intclassID,Stringname,Stringsex,intage){
this.studentID=studentID;
this.classID=classID;
this.name=name;
this.sex=sex;
this.age=age;
}
publiclonggetStudentID(){
returnstudentID;
}
publicintgetClassID(){
returnclassID;
}
publicStringgetName(){
returnname;
}
publicStringgetSex(){
returnsex;
}
publicintgetAge(){
returnage;
}
publicStringtoString(){
return"学号:
"+studentID+"\n班号:
"+classID+"\n姓名:
"+name+"\n性别:
"+sex+"\n年龄:
"+age;
}
}
publicclassStudentTest{
publicstaticvoidmain(Stringargs[]){
Studenta=newStudent(30021001,10,"张三","男",20);
System.out.println(a.toString());
}
}
运行结果:
学号:
30021001
班号:
10
姓名:
张三
性别:
男
年龄:
20
实验5:
Java继承与多态
一、实验目的
(1)掌握Java类的定义和使用方法。
(2)掌握对象的声明和使用。
(3)构造函数的概念和使用。
(4)掌握类及其成员的访问控制符的使用。
(5)掌握包的概念和使用。
二、实验任务
(1)输入根据给定的JavaApplication程序,写出运行结果。
(2)按照要求编写JavaApplication程序。
三、实验内容
1.阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。
1:
classSuperClass{
2:
intx;
3:
SuperClass(){
4:
x=3;
5:
System.out.println("inSuperClass:
x="+x);
6:
}
7:
voiddoSomething(){
8:
System.out.println("inSuperClass.doSomething()");
9:
}
11:
}
1:
classSubClassextendsSuperClass{
2:
intx;
3:
SubClass(){
4:
super();//调用父类的构造方法
5:
x=5;//super()要放在方法中的第一句
6:
System.out.println("inSubClass:
x="+x);
7:
}
8:
voiddoSomething(){
9:
super.doSomething();//调用父类的方法
10:
System.out.println("inSubClass.doSomething()");
11:
System.out.println("super.x="+super.x+"sub.x="+x);
12:
}
14:
}
1:
publicclassInheritance{
2:
publicstaticvoidmain(Stringargs[]){
3:
SubClasssubC=newSubClass();
4:
subC.doSomething();
5:
}
6:
}
运行结果:
inSuperClass:
x=3
inSubClass:
x=5
inSuperClass.doSomething()
inSubClass.doSomething()
super.x=3sub.x=5
2.假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。
根据上述要求,请完成以下Java类的设计:
(1)设计一个基类Student描述学生的共同特征。
(2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。
(3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。
(4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。
classStudent{
privateStringname;
privatedoublecourseA,courseB,courseC;
publicStudent(Stringname,doublecourseA,doublecourseB,doublecourseC){
this.name=name;
this.courseA=courseA;
this.courseB=courseB;
this.courseC=courseC;
}
publicStringgetName(){
returnname;
}
publicdoublegetAverage(){
return(courseA+courseB+courseC)/3;
}
}
classUnderGraduateextendsStudent{
publicUnderGraduate(Stringname,doublecourseA,doublecourseB,doublecourseC){
super(name,courseA,courseB,courseC);
}
publicvoidisPass(){
if(getAverage()>=60)
System.out.println("本科生"+getName()+"三门课程的平均分为:
"+getAverage()+"\n可以拿到本科生学位");
else
System.out.println("本科生"+getName()+"三门课程的平均分为:
"+getAverage()+"\n不能拿到本科生学位");
}
}
classGraduateextendsStudent{
publicGraduate(Stringname,doublecourseA,doublecourseB,doublecourseC){
super(name,courseA,courseB,courseC);
}
publicvoidisPass(){
if(getAverage()>=80)
System.out.println("研究生"+getName()+"三门课程的平均分为:
"+getAverage()+"\n可以拿到研究生学位");
else
System.out.println("研究生"+getName()+"三门课程的平均分为:
"+getAverage()+"\n不能拿到研究生学位");
}
}
publicclassStudentDemo{
publicstaticvoidmain(Stringargs[]){
UnderGraduates1=newUnderGraduate("张三",62,55,89);
Graduates2=newGraduate("李四",78,88,61);
s1.isPass();
s2.isPass();
}
}
运行结果:
本科生张三三门课程的平均分为:
68.66666666666667
可以拿到本科生学位
研究生李四三门课程的平均分为:
75.66666666666667
不能拿到研究生学位
实验6:
Java控制台程序设计
一、实验目的
(1)掌握Java命令行参数的使用方法。
(2)掌握Java程序与文件之间的基本输入输出操作
二、实验任务
(1)输入根据给定的JavaApplication程序,写出运行结果。
(2)编写JavaApplication程序,实现文件输入功能。
(3)编写JavaApplication程序,实现文件输出功能。
三、实验内容
1.输入如下所示的JavaApplication程序,用文字简述运行结果。
1:
importjava.util.Properties;
2:
importjava.util.Enumeration;
3:
publicclassTestp{
4:
publicstatic