java面向对象程序设计董小园版解析.docx

上传人:b****1 文档编号:13736812 上传时间:2023-06-16 格式:DOCX 页数:70 大小:258.23KB
下载 相关 举报
java面向对象程序设计董小园版解析.docx_第1页
第1页 / 共70页
java面向对象程序设计董小园版解析.docx_第2页
第2页 / 共70页
java面向对象程序设计董小园版解析.docx_第3页
第3页 / 共70页
java面向对象程序设计董小园版解析.docx_第4页
第4页 / 共70页
java面向对象程序设计董小园版解析.docx_第5页
第5页 / 共70页
java面向对象程序设计董小园版解析.docx_第6页
第6页 / 共70页
java面向对象程序设计董小园版解析.docx_第7页
第7页 / 共70页
java面向对象程序设计董小园版解析.docx_第8页
第8页 / 共70页
java面向对象程序设计董小园版解析.docx_第9页
第9页 / 共70页
java面向对象程序设计董小园版解析.docx_第10页
第10页 / 共70页
java面向对象程序设计董小园版解析.docx_第11页
第11页 / 共70页
java面向对象程序设计董小园版解析.docx_第12页
第12页 / 共70页
java面向对象程序设计董小园版解析.docx_第13页
第13页 / 共70页
java面向对象程序设计董小园版解析.docx_第14页
第14页 / 共70页
java面向对象程序设计董小园版解析.docx_第15页
第15页 / 共70页
java面向对象程序设计董小园版解析.docx_第16页
第16页 / 共70页
java面向对象程序设计董小园版解析.docx_第17页
第17页 / 共70页
java面向对象程序设计董小园版解析.docx_第18页
第18页 / 共70页
java面向对象程序设计董小园版解析.docx_第19页
第19页 / 共70页
java面向对象程序设计董小园版解析.docx_第20页
第20页 / 共70页
亲,该文档总共70页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java面向对象程序设计董小园版解析.docx

《java面向对象程序设计董小园版解析.docx》由会员分享,可在线阅读,更多相关《java面向对象程序设计董小园版解析.docx(70页珍藏版)》请在冰点文库上搜索。

java面向对象程序设计董小园版解析.docx

java面向对象程序设计董小园版解析

 

第1章

了解Java

1.编写一个程序,将用户在命令行输入的24小时制时间转换为12小时制。

publicclassTimeTest{

publicstaticvoidmain(Stringargs[]){

inttime;

time=Integer.parseInt(args[0]);

if(time<0||time>24)

System.out.println("输入的不是一个合法时间!

");

elseif(time>12)

System.out.println("12小时制为"+(time-12)+"点");

else

System.out.println("12小时制为"+time+"点");

}

}

2.用户输入x的数值,根据如下规则输出计算后的结果y值。

x(x<1)

Y=2x-1(1<=x<10)

3x-11(x>=10)

publicclassCalculateTest{

publicstaticvoidmain(Stringargs[]){

floatx,y;

x=Float.parseFloat(args[0]);

if(x<1)

y=x;

elseif(1<=x&&x<10)

y=2*x-1;

else

y=3*x-11;

System.out.println(y);

}

}

3.编写一个Java应用程序,由命令行参数输入一个百分制成绩,要求打印出成绩等级“A”、“B”、“C”、“D”、“E”。

90分以上为“A”;80~89分为“B”;70~79分为“C”;60~69分为“D”;60分以下为“E”。

要求使用switch语句实现。

运行效果如图2所示:

图1

publicclassPrintGrade{

publicstaticvoidmain(String[]args){

doublescore=Double.parseDouble(args[0]);

if(score<0||score>100)

System.out.println("错误,不是一个合法的百分制成绩!

");

else{

ints=((int)score)/10;

chargrade;

switch(s){

case10:

case9:

grade='A';break;

case8:

grade='B';break;

case7:

grade='C';break;

case6:

grade='D';break;

default:

grade='E';

}

System.out.println("成绩是:

"+score+",相应的等级是"+grade);

}

}

}

4.假设今天是星期日,编写一个程序,求n天后是星期几。

要求:

n的数值由命令行输入;使用switch语句实现。

publicclassDateTest{

publicstaticvoidmain(String[]args){

intn=Integer.parseInt(args[0]);

switch(n%7){

case0:

System.out.println(n+"天后是星期天");break;

case1:

System.out.println(n+"天后是星期一");break;

case2:

System.out.println(n+"天后是星期二");break;

case3:

System.out.println(n+"天后是星期三");break;

case4:

System.out.println(n+"天后是星期四");break;

case5:

System.out.println(n+"天后是星期五");break;

case6:

System.out.println(n+"天后是星期六");break;

}

}

}

5.用户在命令行输入一个数字,按照数字输出相应个数的星号。

publicclassPrintStar{

publicstaticvoidmain(String[]args){

intn=Integer.parseInt(args[0]);

inti;

for(i=1;i<=n;i++)

System.out.print("*");

System.out.println();

}

}

6.编写程序,求0到100之间的偶数和。

要求:

分别用while语句、dowhile语句和for循环语句实现。

while实现:

publicclassSumDemo1{

publicstaticvoidmain(String[]args){

intsum=0,i=0;

while(i<=100){

if(i%2==0)

sum=sum+i;

i++;

}

System.out.println("0--100之间所有偶数的和是"+sum);

}

}

dowhile实现:

publicclassSumDemo2{

publicstaticvoidmain(String[]args){

intsum=0,i=0;

do{

if(i%2==0)

sum=sum+i;

i++;

}while(i<=100);

System.out.println("0--100之间所有偶数的和是"+sum);

}

}

for循环实现:

publicclassSumDemo3{

publicstaticvoidmain(String[]args){

intsum=0,i=0;

for(;i<=100;i=i+2)

sum=sum+i;

System.out.println("0--100之间所有偶数的和是"+sum);

}

}

7.输入一个大于1的整数,求1到这个数的阶乘。

用三种循环语句实现。

提示:

5的阶乘表示为5!

,计算公式:

5!

=1*2*3*4*5

while实现:

publicclassFactorial1{

publicstaticvoidmain(String[]args){

intnum=Integer.parseInt(args[0]);

intresult=1;

if(num<1)

System.out.println("应输入大于1的整数!

");

else{

inti=1;

while(i<=num){

result=result*i;

i++;

}

System.out.println(num+"的阶乘是"+result);

}

}

}

dowhile实现:

publicclassFactorial2{

publicstaticvoidmain(String[]args){

intnum=Integer.parseInt(args[0]);

intresult=1;

if(num<1)

System.out.println("应输入大于1的整数!

");

else{

inti=1;

do{

result=result*i;

i++;

}while(i<=num);

System.out.println(num+"的阶乘是"+result);

}

}

}

for循环实现:

publicclassFactorial3{

publicstaticvoidmain(String[]args){

intnum=Integer.parseInt(args[0]);

intresult=1;

if(num<1)

System.out.println("应输入大于1的整数!

");

else{

inti;

for(i=1;i<=num;i++)

result=result*i;

System.out.println(num+"的阶乘是"+result);

}

}

}

8.用for循环语句打印九九乘法表。

publicclassMultiplication{

publicstaticvoidmain(String[]args){

inti,j;

for(i=1;i<=9;i++){

for(j=1;j<=i;j++)

System.out.print(i*j+"\t");

System.out.println();

}

}

}

第2章

面向对象的“对象”

1.定义一个描述长方体的类Box,类中有三个整型的成员变量:

length、width和height,分别表示长方体的长、宽和高。

定义setInfo(int,int,int)方法设置这三个变量的值;定义volumn()方法求长方体的体积并返回整型结果;定义area()方法求长方体的表面积并返回整型结果;定义toString()方法把长方体的长、宽、高,以及长方体的体积和表面积转化为字符串并返回字符串。

编写Java应用程序,测试类Box,使用类中定义的各个方法,并将其结果输出。

classBox{

intlength,width,height;

publicsetInfo(intl,intw,inth){

length=l;

width=w;

height=h;

}

publicintvolumn(){

returnlength*width*height;

}

publicintarea(){

return(length*width+length*height+width*height)*2;

}

publicStringtoString(){

return"Length:

"+length+"width:

"+width+"height:

"+height

+"volumn:

"+volumn()+"area:

"+area();

}

}

publicclassBoxTest{

publicstaticvoidmain(String[]args){

Boxb=newBox();

b.setInfo(5,2,4);

System.out.println(b.toString());

}

}

2.定义一个圆形类Circle,类中有一个用来描述半径的double型成员变量r,定义setR(double)方法初始化半径;定义getArea()方法求圆形的面积并返回double类型结果;定义getPerimeter()方法求圆形的周长并返回double类型结果。

编写Java应用程序,使用Circle类创建两个对象,通过相应方法分别设置不同的半径值,计算各自的面积及周长并显示结果。

classCircle{

doubler;

voidsetR(doubleradius){

r=radius;

}

doublegetArea(){

return3.14*r*r;

}

doublegetPerimeter(){

return2*3.14*r;

}

}

publicclassCircleTest{

publicstaticvoidmain(String[]args){

Circlec1=newCircle();

Circlec2=newCircle();

c1.setR

(1);

c2.setR

(2);

System.out.println("c1的面积是"+c1.getArea()+

",c1的周长是"+c1.getPerimeter());

System.out.println("c2的面积是"+c2.getArea()+

",c2的周长是"+c2.getPerimeter());

}

}

第3章

对象的属性---变量详述

1.编写程序,计算如下表达式的值,将结果输出。

(1)3.5+1/2+56%10

(2)3.5+1.0/2+56%10

(3)inta=4%3*7+1

publicclassTest{

publicstaticvoidmain(String[]args){

System.out.println(3.5+1/2+56%10);

System.out.println(3.5+1.0/2+56%10);

inta=4%3*7+1;

System.out.println(a);

}

}

程序运行结果:

9.5

10.0

8

2.思考下列语句执行后变量a、b、c、d的值分别是多少:

inta=5,b=8,c,d;

c=(a++)*b;

d=(++a)*b;

执行后的结果是:

a=7b=8c=40d=56

3.自定义一个字符串数组,提示用户输入5个字符串,通过循环语句实现将用户输入的字符串存放到数组里,然后反向输出这五个字符串。

importjava.util.Scanner;

publicclassTest{

publicstaticvoidmain(String[]args){

Scannerreader=newScanner(System.in);

Stringstr[]=newString[5];

inti;

for(i=0;i<5;i++){

System.out.println("请输入第"+(i+1)+"个字符串");

str[i]=reader.next();

}

System.out.println("反向输出这5个字符串:

");

for(i=4;i>=0;i--)

System.out.println(str[i]);

}

}

4.定义一个实型数组用来存放学生成绩,提示用户确定成绩的个数,根据个数创建数组。

提示用户输入每个成绩,为各数组元素赋值。

询问用户要查找第几个同学的成绩,显示相应的查询结果,如果超出个数范围则进行相应提示。

importjava.util.*;

publicclassSearch1{

publicstaticvoidmain(String[]args){

Scannerreader=newScanner(System.in);

doublescore[];

System.out.println("您要输入多少个同学的成绩?

");

intnum=reader.nextInt();

score=newdouble[num];

for(inti=0;i

System.out.println("请输入第"+(i+1)+"个同学的成绩");

score[i]=reader.nextDouble();

}

System.out.println("您要查找第几个同学的成绩?

");

intindex=reader.nextInt();

if(index>=1&&index<=num-1)

System.out.println("第"+index+

"个同学的成绩是"+score[index-1]);

else

System.out.println("数据不在合法范围内,无法查找。

");

}

}

5.在第4题的基础上进行改写,修改查询条件:

询问用户要查找分数为多少的成绩,找到相应的成绩则显示第几位同学符合查询条件,找不到相应的成绩则显示没有该成绩,如果超出成绩范围则进行相应提示。

importjava.util.*;

publicSearch2{

publicstaticvoidmain(String[]args){

Scannerreader=newScanner(System.in);

doublescore[];

System.out.println("您要输入多少个同学的成绩?

");

intnum=reader.nextInt();

score=newdouble[num];

for(inti=0;i

System.out.println("请输入第"+(i+1)+"个同学的成绩");

score[i]=reader.nextDouble();

}

System.out.println("您要查找的成绩是?

");

doubles=reader.nextDouble();

booleanflag=false;

if(s>=0&&s<=100){

for(inti=0;i

if(score[i]==s){

System.out.println("第"+(i+1)+"个同学符合查询条件");

flag=true;

}

}

if(!

flag)

System.out.println("没有学生考该分数成绩");

}

else

System.out.println("成绩非法,不能查询。

");

}

}

6.提示用户输入一个整数,再提示用户输入一个符号。

在屏幕上输出该整数个这样的符号。

importjava.util.*;

classCharTest{

publicstaticvoidmain(String[]args){

Scannerreader=newScanner(System.in);

System.out.println("请输入一个整数");

intn=reader.nextInt();

System.out.println("请输入一个符号");

charch=reader.next().charAt(0);

for(inti=1;i<=n;i++)

System.out.print(ch);

System.out.println();

}

}

第4章

对象的行为---成员方法详述

1.编写Java应用程序,定义一个计算两个整数和的方法staticintadd(intop1,intop2)。

在main方法中声明两个整型变量,分别赋值,调用add()方法得到它们的和,在屏幕上输出结果。

publicclassAddTest{

publicstaticvoidmain(String[]args){

intnum1,num2;

num1=10;

num2=20;

System.out.println(num1+"+"+num2+"="+add(num1,num2));

}

staticintadd(intop1,intop2){

returnop1+op2;

}

}

2.编写程序,定义一个方法publicstaticvoidabs(inta),用来求绝对值并输出结果。

在main方法中从命令行读入一个整数,调用这个结果求它的绝对值。

importjava.util.Scanner;

publicclassDemo{

publicstaticvoidmain(String[]args){

Scannerreader=newreader(System.in);

System.out.println("请输入一个整数");

intn=reader.nextInt();

abs(n);

}

publicstaticvoidabs(inta){

if(a>=0)

System.out.println("绝对值是"+a);

else

System.out.println("绝对值是"+(-a));

}

}

3.在上述题目的基础上,修改abs成为带返回值的方法,即publicstaticintabs(inta),实现相同的功能。

importjava.util.Scanner;

publicclassDemo{

publicstaticvoidmain(String[]args){

Scannerreader=newreader(System.in);

System.out.println("请输入一个整数");

intn=reader.nextInt();

System.out.println("绝对值是"+abs(n));

}

publicstaticintabs(inta){

if(a>=0)

returna;

else

return-a;

}

}

4.定义一个方法publicstaticvoiddraw(intn,charch),实现输出n个ch符号。

在main方法中提示用户输入相应数据,调用draw方法输出图形。

importjava.util.Scanner;

publicclassMultiplication{

publicstaticvoidmain(String[]args){

Scannerreader=newScanner(System.in);

System.out.println("要显示哪个符号?

");

charc=reader.next().charAt(0);

System.out.println("要显示多少个?

");

intnum=reader.nextInt();

draw(num,c);

}

pub

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2