java程序设计方案JDK和NetBeans实现宋波主编课后答案打印版Word格式.docx
《java程序设计方案JDK和NetBeans实现宋波主编课后答案打印版Word格式.docx》由会员分享,可在线阅读,更多相关《java程序设计方案JDK和NetBeans实现宋波主编课后答案打印版Word格式.docx(39页珍藏版)》请在冰点文库上搜索。
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<
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{
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。
12.System.out.println("
1!
+...+20!
="
+sum)。
13.}
14.}
4.编写程序,随机产生一个(50,100)之间的整数并判断其是否为素数。
01.publicclassRandomPrimeTest{
03.inti=(int)(Math.random()*49+51)。
04.System.out.println("
Therandomnumberis:
+i)。
05.intj。
06.for(j=2。
i。
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"
5.编写程序,输出从1到9的乘法口诀表。
01.publicclassMultiTableTest{
03.for(inti=1。
=9。
04.for(intj=1。
05.System.out.print(i+"
*"
+j+"
+i*j+"
06.}
07.System.out.println()。
09.}
10.}
6.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。
t.length。
08.System.out.println(t[i])。
09.}
3.请完成下面程序,使得程序可以输出"
hi"
01.publicclassCar{
02.privateclassEngine{
03.Engine(){
04.drive()。
05.}
07.publicstaticvoidmain(String[]args){
08.newCar().go()。
09.}
10.voidgo(){
11.newEngine()。
13.voiddrive(){
14.System.out.println("
15.}
16.}
4.应用抽象类及继承编写程序,输出本科生及研究生的成绩等级。
要求:
首先设计抽象类Student,它包含学生的一些基本信息:
姓名、学生类型、三门课程的成绩和成绩等级等。
其次设计Student类的两个子类:
本科生类Undergraduate和研究生类Postgraduate,二者在计算成绩等级时有所区别,具体计算标准如表所示。
最后创建测试类进行测试。
学生成绩等级
本科生标准
研究生标准
平均分85-100:
优秀
平均分90-100:
平均分75-85:
良好
平均分80-90:
平均分65-75:
中等
平均分70-80:
平均分60-65:
及格
平均分60-70:
平均分60以下:
不及格
//抽象类Student
01.abstractclassStudent{
02.finalstaticintCOURSE_COUNT=3。
03.privateStringname。
04.privateStringtype。
05.privateint[]scores。
06.privateStringgrade。
07.publicStudent(Stringname){
08.this.name=name。
10.publicvoidsetName(Stringname){
11.this.name=name。
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。
Student.COURSE_COUNT。
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){
研究生"
=90)
=80)
=70)
//测试类
01.publicclassStudentTest{
02.publicstaticvoidmain(String[]args){
03.Student[]s=newStudent[10]。
04.int[][]scores=newint[10][Student.COURSE_COUNT]。
05.for(inti=0。
5。
06.for(intj=0。
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())。
12.for(inti=5。
10。
13.for(intj=0。
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。
21.System.out.print(s[i].getName()+"
22.System.out.print(s[i].getType()+"
23.c=s[i].getScores()。
24.for(intj=0。
25.System.out.print(c[j]+"
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题的要求输出本科生及研究生的成绩等级。
将学生成绩等级定义成枚举类,其它功能不变,完成类的定义并进行测试。
//抽象类
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。
25.publicvoidsetName(Stringname){
26.this.name=name。
28.publicStringgetName(){
29.returnname。
31.publicvoidsetType(Stringtype){
32.this.type=type。
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.}
07.publicGradecalculateGrade(){
17.returnGrade.DISTINCTION。
19.returnGrade.MERIT。
21.returnGrade.AVERAGE。
23.returnGrade.PASS。
25.returnGrade.FAIL。