sum+=x[i];
}
System.out.println("Max="+x[x.length-1]);
System.out.println("Min="+x[0]);
System.out.println("Average="+sum/x.length);
}
}
2.编写一个学生类Student:
属性包括:
学号(id)、姓名(name)、英语成绩(eng)、数学成绩(math)、计算机成绩(comp)和总成绩(sum)
方法包括:
构造方法、各属性的set方法、各属性的get方法、toString方法(输出学生的全部信息)、sum方法(计算总成绩)。
解答:
publicclassStudentimplementsSerializable{
//属性定义
publicStudent(Stringid,Stringname,inteng,intmath,intcomp){
this.id=id;
this.name=name;
this.eng=eng;
this.math=math;
p=comp;
sum();//计算总成绩}
publicStudent(Students){
this.id=s.id;
this.name=newString(s.name);
this.eng=s.eng;
this.math=s.math;
p=p;
sum();//计算总成绩}
publicvoidsetId(Stringid){this.id=id;}
publicvoidsetName(Stringname){
this.name=name;}
publicvoidsetEng(inteng){
this.eng=eng;sum();}
publicvoidsetMath(intmath){
this.math=math;sum();}
publicvoidsetComp(intcomp){
p=comp;sum();}
publicStringgetId(){returnid;}
publicStringgetName(){returnname;}
publicintgetEng(){returneng;}
publicintgetMath(){returnmath;}
publicintgetComp(){returncomp;}
publicintgetSum(){returnsum;}
voidsum(){this.sum=eng+math+comp;}
publicStringtoString(){
returngetId()+"\t"+getName()+"\t"+getEng()+"\t"+getMath()+"\t"+getComp()+"\t"+getSum();}}
3.设计一个一元二次方程类,并为这个类添加异常处理。
解答:
publicclassOperation{
publicstaticvoidmain(String[]args)
{
Strings="";
doublea,b,c,r1,r2;
System.out.print("求二元一次方程的根");
System.out.print("请键入第一个系数a");
try
{
BufferedReaderin=newBufferedReader(
newInputStreamReader(System.in));
s=in.readLine();
}catch(IOExceptione){}
a=Double.parseDouble(s);
System.out.print("请键入第二个系数b");
try
{
BufferedReaderin=newBufferedReader(
newInputStreamReader(System.in));
s=in.readLine();
}catch(IOExceptione){}
b=Double.parseDouble(s);
System.out.print("请键入第三个系数c");
try
{
BufferedReaderin=newBufferedReader(
newInputStreamReader(System.in));
s=in.readLine();
}catch(IOExceptione){}
c=Double.parseDouble(s);
r1=(-b+Math.sqrt(b*b-4*a*c))/(2*a);
r2=(-b-Math.sqrt(b*b-4*a*c))/(2*a);
System.out.print("该二元一次方程的根为:
"+r1+"和"+r2);
}
}
4.编写一个应用程序创建两个线程,一个线程打印输出1~1000之间所有3的倍数,另外一个线程打印输出1000~2000之间所有5的倍数。
解答:
classThread1extendsThread{
publicThread1(Stringmsg){
super(msg);
}
publicvoidrun(){
intsum=0;
for(inti=1;i<=1000;i++){
if(i%3==0)
System.out.println(i);
}
}
}
classThread2extendsThread{
publicThread2(Stringmsg){
super(msg);
}
publicvoidrun(){
intsum=0;
for(inti=1000;i<=2000;i++){
if(i%5==0)
System.out.println(i);
}
}}
publicclassExam5{
publicstaticvoidmain(String[]args){
Thread1x=newThread1("Thread1");
Thread2y=newThread2("Thread2");
x.start();
y.start();
}
}
5.水仙花数是指这样的三位数,其个位、十位和百位三个数的平方和等于这个三位数本身,请编写程序打印输出所有(100~999之间)的水仙花数。
解答:
publicclassNarcissus{
publicstaticvoidmain(Stringargs[]){
inti,j,k,n=100,m=1;
while(n<1000){
i=n/100;
j=(n-i*100)/10;
k=n%10;
if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n)
System.out.println("找到第"+m+++"个水仙花数:
"+n);
n++;
}
m=1;
//或者使用下面的方法
for(n=100;n<1000;n++){
i=n/100;
j=(n-i*100)/10;
k=n%10;
if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n)
System.out.println("找到第"+m+++"个水仙花数:
"+n);
n++;
}
}
}
6.编写程序随机生成10个1到200之间的正整数,打印输出这些随机数并求它们的最大值、最小值、平均值。
解答:
importjava.util.Arrays;
publicclassTest{
publicstaticvoidmain(String[]args){
int[]a=newint[10];
doublesum=0;
for(inti=0;ia[i]=(int)(Math.random()*200+1);
sum+=a[i];
System.out.print(a[i]+"");
}
Arrays.sort(a);
System.out.println("\nmin="+a[0]);
System.out.println("max="+a[a.length-1]);
System.out.println("average="+(sum/a.length));
}
}
7.按以下要求定义一个类Circle描述一个圆,并完成相应的操作:
(1)实例属性:
圆心x坐标(xpoint)、圆心y坐标(ypoint)和半径(radius)。
(2)构造方法:
给3个属性赋初值。
(3)实例方法(area):
求圆的面积。
(4)实例方法(circumference):
求圆的周长。
(5)重写toString()方法,返回圆心坐标和半径。
(6)实例化这个类,调用方法完成信息的输出。
解答:
classCircle{
privatedoublexpoint;
privatedoubleypoint;
privatedoubleradius;
publicCircle(doublex,doubley,doubler){
xpoint=x;
ypoint=y;
radius=r;
}
publicdoublearea(){
returnMath.PI*radius*radius;
}
publicdoublecircumference(){
return2*Math.PI*radius;
}
publicStringtoString(){
return"圆心:
("+xpoint+","+yp