java程序设计基于JDK6和NetBeans实现宋波主编课后作业答案打印版.docx
- 文档编号:30540446
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:38
- 大小:27.94KB
java程序设计基于JDK6和NetBeans实现宋波主编课后作业答案打印版.docx
《java程序设计基于JDK6和NetBeans实现宋波主编课后作业答案打印版.docx》由会员分享,可在线阅读,更多相关《java程序设计基于JDK6和NetBeans实现宋波主编课后作业答案打印版.docx(38页珍藏版)》请在冰豆网上搜索。
java程序设计基于JDK6和NetBeans实现宋波主编课后作业答案打印版
java程序设计——基于JDK6和NetBeans实现课后答案
第一章课后作业答案
1.试说明JavaApplication与JavaApplet的不同之处。
答案:
Java的用户程序分为两类:
JavaApplication和JavaApplet,这两类程序在组成结构和执行机制上都有一定的差异,主要体现在以下几方面:
(1)运行方式不同。
JavaApplication是完整的程序,可以独立运行;JavaApplet程序不能单独运行,它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行。
(2)运行工具不同。
JavaApplication程序被编译以后,用普通的Java解释器就可以使其边解释边执行;而JavaApplet必须通过网络浏览器或者Applet观察器才能执行。
(3)程序结构不同。
每个JavaApplication程序必定含有一个并且只有一个main()方法,程序执行时,首先寻找main()方法,并以此为入口点开始运行;而Applet程序则没有含main()方法的主类,这也正是Applet程序不能独立运行的原因。
尽管Applet没有含有main()方法的主类,但Applet一定有一个从java.applet.Applet派生的类,它是由Java系统提供的。
(4)受到的限制不同。
JavaApplication程序可以设计成能进行各种操作的程序,包括读/写文件的操作,但是JavaApplet对站点的磁盘文件既不能进行读操作,也不能进行写操作。
然后,由于Applet的引入,使Web页面具有动态多媒体效果和可互交性能,这使由名为超文本、实为纯文本的HTML语言编写成的Web页面真正具有了超文本功能,不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,Applet使Web页面增加了按钮等功能,从而增加了交互性。
2.Java程序的最小程序单位是什么?
答案:
Java语言以类作为程序的基本单位。
3.下载并安装JDK1.6以及JavaAPI文档,编译并运行例1-1。
答案:
实践题。
4.编写一个Java应用程序,在屏幕上输出“欢迎进入Java奇妙世界!
”的字符串。
答案:
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("欢迎进入Java奇妙世界!
");
}}
5.下面程序的功能是:
计算并打印输出两个整数a和b之间的最大值,请填空。
01publicclassMax{
02publicstaticvoidmain(Stringargs[]){
03intmax;
04inta=3;
05intb=5;
06if(a>b){
07max=a;
08}
09else{
10max=b;
11}
12System.out.println(max);
13}
14}
【运行结果】5
第2章Java语言基础
1.请完成下面程序,使得程序的输出结果如右图所示。
01.
*
**
***
****
*****
******
*******
********
*********
**********
publicclassLoopControl{
02.publicstaticvoidmain(String[]args){
03.outer:
for(inti=0;i<10;i++){
04.for(intj=0;j<10;j++){
05.if(j>i){
06.System.out.println();
07.continueouter;
08.}
09.System.out.print("*");
10.}
11.}
12.}
13.}
2.编写程序,输出英文字母A~Z及其对应的Unicode编码值。
01.publicclassCharUnicodeTest{
02.publicstaticvoidmain(String[]args){
03.for(charc='A';c<='Z';c++){
04.System.out.print("Character:
"+c);
05.System.out.println("\t"+"Unicode:
"+(int)c);
06.}
07.}
08.}
3.编写程序,计算1!
+2!
+3!
+…+20!
的和。
01.publicclassNestedLoopTest{
02.publicstaticvoidmain(String[]args){
03.longsum=0;
04.longfac;
05.for(inti=1;i<21;i++){
06.fac=1;
07.for(intj=1;j<=i;j++){
08.fac=fac*j;
09.}
10.sum=sum+fac;
11.}
12.System.out.println("1!
+2!
+...+20!
="+sum);
13.}
14.}
4.编写程序,随机产生一个(50,100)之间的整数并判断其是否为素数。
01.publicclassRandomPrimeTest{
02.publicstaticvoidmain(String[]args){
03.inti=(int)(Math.random()*49+51);
04.System.out.println("Therandomnumberis:
"+i);
05.intj;
06.for(j=2;j
07.if(i%j==0)break;
08.}
09.if(j==i)
10.System.out.println(i+"isaprimenumber");
11.else
12.System.out.println(i+"isnotaprimenumber");
13.}
14.}
5.编写程序,输出从1到9的乘法口诀表。
01.publicclassMultiTableTest{
02.publicstaticvoidmain(String[]args){
03.for(inti=1;i<=9;i++){
04.for(intj=1;j<=i;j++){
05.System.out.print(i+"*"+j+"="+i*j+"\t");
06.}
07.System.out.println();
08.}
09.}
10.}
第4章Java面向对象高级特性
1.指出下面程序中出现编译错误的行数及其原因。
01.publicclassOuter{
02.privateclassInner{
03.staticStringname=newString("Inner");
04.publicvoidmethod(){
05.System.out.println(name);
06.}
07.}
08.publicstaticvoidmain(String[]args){
09.Innera=newOuter().newInner();
10.a.method();
11.}
12.}
上述代码中第3行会出现编译错误,内部类Inner中的成员变量不能定义为static。
2.请完成下面程序,使得程序可以输出枚举常量值:
RED、GREEN和BLUE。
01.publicclassBall{
02.publicenumT{
03.RED,GREEN,BLUE
04.}
05.publicstaticvoidmain(String[]args){
06.Ball.T[]t=Ball.T.values();
07.for(inti=0;i 08.System.out.println(t[i]); 09.} 10.} 11.} 3.请完成下面程序,使得程序可以输出"hi"。 01.publicclassCar{ 02.privateclassEngine{ 03.Engine(){ 04.drive(); 05.} 06.} 07.publicstaticvoidmain(String[]args){ 08.newCar().go(); 09.} 10.voidgo(){ 11.newEngine(); 12.} 13.voiddrive(){ 14.System.out.println("hi"); 15.} 16.} 4.应用抽象类及继承编写程序,输出本科生及研究生的成绩等级。 要求: 首先设计抽象类Student,它包含学生的一些基本信息: 姓名、学生类型、三门课程的成绩和成绩等级等。 其次设计Student类的两个子类: 本科生类Undergraduate和研究生类Postgraduate,二者在计算成绩等级时有所区别,具体计算标准如表所示。 最后创建测试类进行测试。 学生成绩等级 本科生标准 研究生标准 平均分85-100: 优秀 平均分90-100: 优秀 平均分75-85: 良好 平均分80-90: 良好 平均分65-75: 中等 平均分70-80: 中等 平均分60-65: 及格 平均分60-70: 及格 平均分60以下: 不及格 平均分60以下: 不及格 //抽象类Student 01.abstractclassStudent{ 02.finalstaticintCOURSE_COUNT=3; 03.privateStringname; 04.privateStringtype; 05.privateint[]scores; 06.privateStringgrade; 07.publicStudent(Stringname){ 08.this.name=name; 09.} 10.publicvoidsetName(Stringname){ 11.this.name=name; 12.} 13.publicStringgetName(){ 14.returnname; 15.} 16.publicvoidsetType(Stringtype){ 17.this.type=type; 18.} 19.publicStringgetType(){ 20.returntype; 21.} 22.publicvoidsetScores(int[]scores){ 23.this.scores=scores; 24.} 25.publicint[]getScores(){ 26.returnscores; 27.} 28.publicvoidsetGrade(Stringgrade){ 29.this.grade=grade; 30.} 31.publicStringgetGrade(){ 32.returngrade; 33.} 34.publicabstractStringcalculateGrade(); 35.} //本科生类 01.publicclassUndergraduateextendsStudent{ 02.publicUndergraduate(Stringname,int[]scores){ 03.super(name); 04.this.setType("本科生"); 05.this.setScores(scores); 06.} 07.publicStringcalculateGrade(){ 08.intaverage; 09.intsum=0; 10.int[]scores; 11.scores=this.getScores(); 12.for(inti=0;i 13.sum+=scores[i]; 14.} 15.average=sum/Student.COURSE_COUNT; 16.if(average>=85) 17.return"优秀"; 18.elseif(average>=75) 19.return"良好"; 20.elseif(average>=65) 21.return"中等"; 22.elseif(average>=60) 23.return"及格"; 24.else 25.return"不及格"; 26.} 27.} //研究生类 01.publicclassPostgraduateextendsStudent{ 02.publicPostgraduate(Stringname,int[]scores){ 03.super(name); 04.this.setType("研究生"); 05.this.setScores(scores); 06.} 07.publicStringcalculateGrade(){ 08.intaverage; 09.intsum=0; 10.int[]scores; 11.scores=this.getScores(); 12.for(inti=0;i 13.sum+=scores[i]; 14.} 15.average=sum/Student.COURSE_COUNT; 16.if(average>=90) 17.return"优秀"; 18.elseif(average>=80) 19.return"良好"; 20.elseif(average>=70) 21.return"中等"; 22.elseif(average>=60) 23.return"及格"; 24.else 25.return"不及格"; 26.} 27.} //测试类 01.publicclassStudentTest{ 02.publicstaticvoidmain(String[]args){ 03.Student[]s=newStudent[10]; 04.int[][]scores=newint[10][Student.COURSE_COUNT]; 05.for(inti=0;i<5;i++){ 06.for(intj=0;j 07.scores[i][j]=(int)(Math.random()*61+40); 08.} 09.s[i]=newUndergraduate("本科生"+(i+1),scores[i]); 10.s[i].setGrade(s[i].calculateGrade()); 11.} 12.for(inti=5;i<10;i++){ 13.for(intj=0;j 14.scores[i][j]=(int)(Math.random()*61+40); 15.} 16.s[i]=newPostgraduate("研究生"+(i-4),scores[i]); 17.s[i].setGrade(s[i].calculateGrade()); 18.} 19.int[]c; 20.for(inti=0;i<10;i++){ 21.System.out.print(s[i].getName()+"\t"); 22.System.out.print(s[i].getType()+"\t"); 23.c=s[i].getScores(); 24.for(intj=0;j 25.System.out.print(c[j]+"\t"); 26.} 27.System.out.println(s[i].getGrade()); 28.} 29.} 30.} 运行结果: 本科生1本科生939068良好 本科生2本科生768958中等 本科生3本科生796690良好 本科生4本科生958598优秀 本科生5本科生547853及格 研究生1研究生836186中等 研究生2研究生915785中等 研究生3研究生709655中等 研究生4研究生437562及格 研究生5研究生438061及格 5.应用枚举类编写程序,根据第4题的要求输出本科生及研究生的成绩等级。 要求: 将学生成绩等级定义成枚举类,其它功能不变,完成类的定义并进行测试。 //抽象类 01.abstractclassStudent{ 02.//枚举类定义 03.staticenumGrade{ 04.DISTINCTION("优秀"), 05.MERIT("良好"), 06.AVERAGE("中等"), 07.PASS("及格"), 08.FAIL("不及格"); 09.privateStringscoreGrade; 10.Grade(StringscoreGrade){ 11.this.scoreGrade=scoreGrade; 12.} 13.publicStringgetScoreGrade(){ 14.returnscoreGrade; 15.} 16.} 17.finalstaticintCOURSE_COUNT=3; 18.privateStringname; 19.privateStringtype; 20.privateint[]scores; 21.privateGradesgrade; 22.publicStudent(Stringname){ 23.this.name=name; 24.} 25.publicvoidsetName(Stringname){ 26.this.name=name; 27.} 28.publicStringgetName(){ 29.returnname; 30.} 31.publicvoidsetType(Stringtype){ 32.this.type=type; 33.} 34.publicStringgetType(){ 35.returntype; 36.} 37.publicvoidsetScores(int[]scores){ 38.this.scores=scores; 39.} 40.publicint[]getScores(){ 41.returnscores; 42.} 43.publicvoidsetGrade(Gradesgrade){ 44.this.sgrade=sgrade; 45.} 46.publicGradegetGrade(){ 47.returnsgrade; 48.} 49.publicabstractGradecalculateGrade(); 50.} //本科生类 01.publicclassUndergraduateextendsStudent{ 02.publicUndergraduate(Stringname,int[]scores){ 03.super(name); 04.this.setType("本科生"); 05.this.setScores(scores); 06.} 07.publicGradecalculateGrade(){ 08.intaverage; 09.intsum=0; 10.int[]scores; 11.scores=this.getScores(); 12.for(inti=0;i 13.sum+=scores[i]; 14.} 15.average=sum/Student.COURSE_COUNT; 16.if(average>=85) 17.returnGrade.DISTINCTION; 18.elseif(average>=75) 19.returnGrade.MERIT; 20.elseif(average>=65) 21.returnGrade.AVERAGE; 22.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 程序设计 基于 JDK6 NetBeans 实现 主编 课后 作业 答案 打印