Java程序设计实验指导书答案可编辑.docx
- 文档编号:4367686
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:36
- 大小:65.46KB
Java程序设计实验指导书答案可编辑.docx
《Java程序设计实验指导书答案可编辑.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验指导书答案可编辑.docx(36页珍藏版)》请在冰豆网上搜索。
Java程序设计实验指导书答案可编辑
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("点的当前坐标为:
("+x+","+y+")");
}
};
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]上的所有素数,要求写出程序的运行结果。
publicclassPrime{
publicstaticvoidmain(String[]args){
inti,j;
outer:
for(i=200;i<=300;i++){
for(j=2;j if(i%j==0) continueouter; } System.out.print(i+""); } } } 运行结果: 211223227229239241251257263269271277281283293 实验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"学号: "+getStudentID()+"\n班号: "+getClassID()+"\n姓名: "+getName()+"\n性别: "+getSex()+"\n年龄: "+getAge(); } } publicclassStudentDemo{ publicstaticvoidmain(String[]args){ Students1=newStudent(90221,2,"Tom","male",20); System.out.println(s1.toString()); } } 运行结果: 学号: 90221 班号: 2 姓名: Tom 性别: male 年龄: 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; privateintclassA,classB,classC; publicStudent(Stringname,intclassA,intclassB,intclassC){ this.name=name; this.classA=classA; this.classB=classB; this.classC=classC; } publicStringgetName(){ returnname; } publicintgetAverage(){ return(classA+classB+classC)/3; } } classUnderGraduateextendsStudent{ publicUnderGraduate(Stringname,intclassA,intclassB,intclassC){ super(name,classA,classB,classC); } publicvoidisPass(){ if(getAverage()>=60) System.out.println("本科生"+getName()+"的三科平均分为: "+getAverage()+",可以拿到学士学位。 "); else System.out.println("本科生"+getName()+"的三科平均分为: "+getAverage()+",不能拿到学士学位。 "); } } classGraduateextendsStudent{ publicGraduate(Stringname,intclassA,intclassB,intclassC){ super(name,classA,classB,classC); } publicvoidisPass(){ if(getAverage()>=80) System.out.println("研究生"+getName()+"的三科平均分为: "+getAverage()+",可以拿到硕士学位。 "); else System.out.println("研究生"+getName()+"的三科平均分为: "+getAverage()+",不能拿到硕士学位。 "); } } publicclassStudentDemo{ publicstaticvoidmain(String[]args){ UnderGraduates1=newUnderGraduate("Tom",55,75,81); Graduates2=newGraduate("Mary",72,81,68); s1.isPass(); s2.isPass(); } } 运行结果: 本科生Tom的三科平均分为: 70,可以拿到学士学位。 研究生Mary的三科平均分为: 73,不能拿到硕士学位。 假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资: (1)经理(Manager)——每月获得一份固定的工资 (2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成。 (3)一般工人(Worker)——则按他每月工作的天数计算工资。 根据上述要求试用类的继承和相关机制描述这些功能,并编写一个JavaApplication程序,演示这些类的用法。 (提示: 应设计一个雇员类(Employee)描述所有雇员的共图特性,这个类应该提供一个计算工资的抽象方法ComputeSalary(),使得可以通过这个类计算所有雇员的工资。 经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。 ) abstractclassEmployee{ p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 实验 指导书 答案 编辑