Java面向对象程序设计--自己写的课后答案--

开启答案之旅
<span style="font-size:24px;color:#FF0000;"><strong>                                                        第一章</strong></span>
Ps:这些都是我自己写的,有些与题目要求的方法不一致,但基本上都能实现!本来准备一章写一篇微博,但发现第二章就没人看了,所以我还是吧所有的都写到一个里面的<img alt="大笑" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif" />

第一题
package A;

import java.util.Scanner;

public class F {

	public static void main(String args[]) {
		Scanner reader = new Scanner(System.in);
		System.out.println("请输入一个整数时间:");
		int time = reader.nextInt();
		if (time < 0 || time > 24) {
			System.out.println("输入的不是一个合法时间");
		} else if (time > 12) {
			System.out.println("12小时制为" + (time - 12) + "点");
		} else {
			System.out.println("12小时制为" + time + "点");
		}
	}
}
第二题
package A;

import java.util.Scanner;

public class A {
	

	public static void main(String[] args) {
		int y;
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入一个数:");
		int x=reader.nextInt();
    if(x<1)
    {
    	y=x;
    System.out.println(y);
	}
    else if(x<10){
    	
    	y=2*x-1;
    	 System.out.println(y);
    }
    else
    {
    	y=3*x-11;
    	 System.out.println(y);
    	 System.out .println();
    }
	}
}
第三题

package A;

import java.util.Scanner;

import sun.net.www.content.text.plain;

public class B {

	public static void main(String[] args) {
		Scanner reader = new Scanner(System.in);
		System.out.println("请输入一个成绩:");
		int score = reader.nextInt();
		if (score < 0 || score > 100) {
			System.out.println("这不是一个合法的成绩");
		} else {
			char dengji;
			switch (score) {
			case 90:
				dengji = 'A';
				break;
			case 80:
				dengji = 'B';
				break;
			case 70:
				dengji = 'C';
				break;
			case 60:
				dengji = 'D';
				break;
			default:
				dengji = 'E';	
			}
			System.out.println("成绩是:" + score + "," + "相应的等级是:"+dengji);
		}
	}
}

第四题

package A;
import java.util.Scanner;
public class C {

	public static void main(String[] args) {
		int a = 7;
		System.out.println("今天是星期" + a);
		int b;
		Scanner reader = new Scanner(System.in);
		System.out.println("请输入一个日期:");
		int n = reader.nextInt();
		b = n % 7;
		System.out.println("n天后是星期" + b);
	}
}
第五题

package A;

import java.util.Scanner;

public class D {

	public static void main(String[] args) {
		Scanner reader = new Scanner(System.in);
		System.out.println("请输入一个数:");
		int n = reader.nextInt();
		for (int i = 0; i < n; i++) {
			System.out.print("*");
		}
	}
}

第六题

while实现

public class SumDemo1 {
 public static void main(String[] args) {
  int sum = 0, i = 0;
  while(i<=100){
   if(i%2==0)
    sum = sum+i;
   i++;
  }
  System.out.println("0--100之间所有偶数的和是"+sum);
 }
} 
do。。。while实现

public class SumDemo2 {
 public static void main(String[] args) {
  int sum = 0, i = 0;
  do{
   if(i%2==0)
sum = sum+i;
   i++;
  }while(i<=100);
  System.out.println("0--100之间所有偶数的和是"+sum);
 }
}

for实现

public class SumDemo3 {
 public static void main(String[] args) {
  int sum = 0, i = 0;
  for( ; i<=100; i=i+2)
   sum = sum+i;
  System.out.println("0--100之间所有偶数的和是"+sum);
 }
}

第七题

就实现一个吧。。。

for循环实现

public class Factorial3 {
 public static void main(String[] args) {
  int num = Integer.parseInt(args[0]);
  int result = 1;
  if(num<1)
   System.out.println("应输入大于1的整数");
  else{
   int i;
   for( i=1; i<=num; i++)
    result = result*i;
   System.out.println(num+"的阶乘是"+result);
  }
 }
} 
第八题

int i, j;
		for (i = 9; i >= 1; i--) {
			for (j = 1; j <= i; j++) {
				System.out.print(i + " x " + j + " = " + i * j + " ");
			}
			System.out.println();
		}

第二章

第一题

定义一个描述长方体的类Box,类中有三个整型的成员变量length、width和height,分别表示长方体的长、宽和高。定义setInfo(int,int,int)方法设置这三个变量的值;定义volumn()方法求长方体的体积并返回整型结果;定义area()方法求长方体的表面积整型结果;定义toString()方法把长方体的长、宽和高,以及长方体的体积和表面积转化为字符串并返回字符串。
编写Java应用程序,测试类Box,使用类中定义的各个方法,并将其结果输出。

  1. package A;  
  2.   
  3. class Box {  
  4.     int width;  
  5.     int height;  
  6.     int depth;  
  7.   
  8.     int volum() {  
  9.         return width + height + depth;  
  10.     }  
  11.   
  12.     int area() {  
  13.         return 2 * (width * height + width * depth + height * depth);  
  14.     }  
  15.   
  16.     void setInfo(int w, int h, int d) {  
  17.         width = w;  
  18.         height = h;  
  19.         depth = d;  
  20.     }  
  21.   
  22.     public String toString() {  
  23.         System.out.printf(  
  24.                 "长为:" + height + "宽为:" + width + "高为:" + depth + '\n' + "体积为:" + volum() + '\n' + "面积为:" + area());  
  25.         return null;  
  26.     }  
  27. }  
  28.   
  29. public class E {  
  30.   
  31.     public static void main(String[] args) {  
  32.         Box myBox = new Box();  
  33.         myBox.setInfo(123);  
  34.         myBox.toString();  
  35.     }  
  36.   
  37. }  
运行结果:


第二题

定义一个圆形类Circle,类中有一个用来描述半径的double型成员变量r,定义setR(double)方法初始化半径;定义getArea()方法求圆形的面积并返回double类型结果;定义getPerimeter()方法求圆形的周长并返回double类型结果。
编写Java应用程序,使用Circle类创建两个对象,通过相应方法分别设置不同的半径值,计算各自的面积及周长并显示结果。

  1. package A;  
  2.   
  3. public class H {  
  4.           
  5.         double banjing;  
  6.         double PI=3.14;  
  7.           
  8.         public void setR(double r){  
  9.             banjing=r;  
  10.         }  
  11.           
  12.         double getArea(){  
  13.             return PI*banjing*banjing;  
  14.         }  
  15.           
  16.         double getPerimeter(){  
  17.             return 2*PI*banjing;  
  18.         }  
  19.           
  20.         public void showInfo(){  
  21.             System.out.println("半径为"+banjing+"的圆的面积是:"+PI*banjing*banjing+"    "+"周长是:"+2*PI*banjing);  
  22.         }  
  23.       
  24.   
  25.     public static void main(String[] args) {  
  26.         H x1=new H();  
  27.         H x2=new H();  
  28.         x1.setR(1);  
  29.         x2.setR(2);  
  30.         System.out.println("第一个圆的半径是:"+x1.banjing);  
  31.         System.out.println("第一个圆的面积是:"+x1.getArea());  
  32.         System.out.println("第一个圆的周长是:"+x1.getPerimeter());  
  33.         System.out.println();  
  34.         System.out.println("第二个圆的半径是:"+x2.banjing);  
  35.         System.out.println("第二个圆的面积是:"+x2.getArea());  
  36.         System.out.println("第二个圆的周长是:"+x2.getPerimeter());  
  37.         System.out.println("--------------------------------------");  
  38.         x1.showInfo();  
  39.         x2.showInfo();  
  40.       
  41.   
  42.     }  
  43.   
  44. }  
运行结果:



第三章

1
编写程序,计算如下表达式的值,将结果输出。
(1) 3.5+1/2+56%10
(2) 3.5+1.0/2+56%10
(3) int a = 4%3*7+1

package A;

public class A {

	public static void main(String[] args) {
		double a=3.5;
		int b=1/2;
		int c=56%10;
		double d=1.0/2;	
		
		
		double sum=a+b+c;
		double sum1=a+d+c;
		int e=4%3*7+1;
		System.out.println("结果是"+sum);

		System.out.println("结果是"+sum1);
	
		System.out.println("结果是"+e);

	}

}

运行结果如下:


2
下列语句执行后变量a、b、c、d的值分别是多少?
int a=5,b=8,c,d;
c=(a++)* b;
d=(++a) * b;

package A;

public class B {

	public static void main(String[] args) {
     int a=5,b=8,c,d;
     c=(a++)*b;
     d=(++a)*b;
    System.out.println("a的值是"+a);
    System.out.println("b的值是"+b);
    System.out.println("c结果是"+c);
    System.out.println("d结果是"+d);
	}

}

运行结果如下:


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

package A;

import java.util.Scanner;


public class C {
	public static void main(String[] args)
{	
    Scanner reader=new Scanner(System.in);
    String ch[]=new String[5];
    System.out.println("请输入五个字符串:");
    for(int i=0;i<5;i++)
    {
    	ch[i]=reader.next();
    }
    System.out .println("正向输出为:");
    for(int j=0;j<5;j++)
    {
	System.out .print(ch[j]+" ");
	}
    System.out .println("");
    System.out .println("反向输出为:");
	for(int k=4;k>=0;k--)
	{
	System.out .print(ch[k]+" ");
	}  
}
}
结果如下图:

4
定义一个实型数组用来存放学生成绩,提示用户确定成绩的个数,根据个数创建数组。提示用户输入每个成绩,为各数组元素赋值。询问用户要查找第几个同学的成绩,显示相应的查询结果,如果超出个数范围则进行相应提示。

package A;
import java.util.Scanner;
public class D {

	public static void main(String[] args) {
		int a,b,c=0;
	    Scanner reader=new Scanner(System.in);
	    double score[]=null;	 
	    System.out .println("你想输入几个成绩:");
	    a=reader.nextInt();
	    if(a<=0)
	    	System.out .println("错误,请重新输入!");
	    else
	    {
	    	score=new double[a];
	    	for(int i=0;i<a;i++)
	    	{
	    		System.out.println("请输入第"+(i+1)+"个同学的成绩:");
	    		score[i]=reader.nextDouble();
	    	}
	    }

		while(c!=1){
		    System.out.println("请输入您要查找的第几个同学的成绩:");
	     b=reader.nextInt();
		    if(b<=a&&b>0){
		    	for(int j=1;j<=a;j++)
		    	{
		    		if(j==b)
			        System.out.println("第"+b+"个同学的成绩是:"+score[j-1]);
		    		}
		    }
		    else
		    	System.out.println("错误,请重新输入!");
      
		}
		}
	}
	


结果如下图:


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

package A;

import java.util.Scanner;


public class  F{
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		double score[] = null;
		int m,a=0,b=0;
		double n;
		System.out.println("您要输入多少个同学的成绩?");
		m=reader.nextInt();
		if(m<=0)
			System.out.println("个数错误!");
		else{
			score=new double[m];
			for(int i=0;i<m;i++){
				System.out.print("请输入第"+(i+1)+"个同学的成绩:");
				score[i]=reader.nextDouble();
			}
		}	
		System.out.println();
		while(a!=1){
			System.out.println("请输入你要查询的成绩:");
			n=reader.nextDouble();
			if(n>=0&&n<=100){
				for(int j=0;j<m;j++){
					if(score[j]==n){
						System.out.println("这是第"+(j+1)+"个同学的成绩!");
						b=b+1;
					}
				}
				if(b==0){
					System.out.println("没有该成绩!");
				}
			}
			else
				System.out.println("成绩有误!");
		}
	}
}
结果如下图:

6
提示用户输入一个整数,再提示用户输入一个符号。在屏幕上输出该整数个这样的符号。

package A;
import java.util.Scanner;
public class E {

	public static void main(String[] args) {
     Scanner reader=new Scanner(System.in);
     System.out .println("请输出一个整数:");
	int n=reader.nextInt();

	System.out .println("请输出一个符号:");
    String m=reader.next();

	for(int i=0;i<n;i++)
	{
		System.out .print(m);
		}
	}

}
结果如下图:



第四章

1
编写Java应用程序,定义一个计算两个整数和的函数static int add(int op1,int op2)。在main()方法中声明两个整型变量,分别赋值,调用add()得到它们的和,在屏幕上输出结果。

public class a {
	public static void main(String[] args) {
		int a=1;
		int b=2;
		System.out.println("1+2="+add(a,b));
	}
	
	
	public static int add(int op1,int op2){
		int sum;
		sum=op1+op2;
		return sum;
	}
}
public class Test {
	public static void main(String[] args) {
		float a=(float) 3.141546789;
		double b=3.141546789;
		f x=new f();
		System.out.println("单精度实数四舍五入后得到的数据为"+x.round(a));
		System.out.println("双精度实数四舍五入后得到的数据为"+x.round(b));
	}
}

结果如下:



2
编写程序,定义一个方法public static void abs(int a),用来求绝对值并输出结果。在main方法中从命令行读入一个整数,调用这个结果求它的绝对值。

import java.util.Scanner;
public class b {

	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入一个数:");
		int a=reader.nextInt();
		System.out.print(a);
		abs(a);
	}
	
	
	public static void abs(int a){
		if(a<0){
			System.out.println("的绝对值为"+-a);
		}
		else
			System.out.println("的绝对值为"+a);
	}
}

结果如下:




3
在第2题的基础上,修改abs成为带返回值的方法,即public static int abs(int a),实现相同的功能。

import java.util.Scanner;
public class c {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入一个数:");
		int n=reader.nextInt();
		System.out.println("请输入一个符号:");
		String ch=reader.next();
		draw(n,ch);
	}
	
	
	public static void draw(int n,String ch){
		for(int i=0;i<n;i++){
			if(i%5==0){
				System.out.println();
			}
			System.out.print(ch);
		}
	}
}



4
定义一个方法public static void draw(int n,char ch),实现输出n个ch符号。在main方法中提示用户输入相应数据,调用draw方法输出图形。
public class Draw {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入一个数:");
		int n=reader.nextInt();
		System.out.println("请输入一个符号:");
		String ch=reader.next();
		draw(n,ch);
	}
	
	
	public static void draw(int n,String ch){
		for(int i=0;i<n;i++){
			if(i%5==0){
				System.out.println();
			}
			System.out.print(ch);
		}
	}
}



5
求数值累加和的方法。
import java.util.Scanner;
public class d {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入一个数:");
		int n=reader.nextInt();
		System.out.println("1到"+n+"的累加和是"+He(n));
	}
	

	public static int He(int n) {
		int sum=0;
		for(int i=1;i<=n;i++){
			sum=sum+i;
		}
		return sum;
	}
}

结果如下:




6
定义一个类Initial,类的内部重载initArr()方法,分别实现对整型数组、双精度型数组、字符串数组的初始化功能,数组作为方法的参数,方法体内提示用户为数组元素输入数据,然后显示所有元素。
在main方法中创建三种类型的数组,创建Initial类的对象,分别调用initArr()方法进行初始化。

import java.util.Scanner;


public class Initial {
	Scanner reader=new Scanner(System.in);
	void initArr(int a[]){
		System.out.print("初始化之后,整形数组每个元素值为");
		for(int i=0;i<a.length;i++){
			a[i]=0;
			System.out.print(a[i]+" ");
		}
		System.out.println();
		
		
		System.out.print("输入元素:");
		for(int i=0;i<a.length;i++){
			int m=reader.nextInt();
			a[i]=m;
		}
		
		
		System.out.print("显示元素:");
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
	}
	
	
	void initArr(double b[]){
		System.out.print("初始化之后,双精度实数型数组每个元素值为");
		for(int i=0;i<b.length;i++){
			b[i]=0;
			System.out.print(b[i]+"   ");
		}
		System.out.println();
		
		
		System.out.print("输入元素:");
		for(int i=0;i<b.length;i++){
			double m=reader.nextDouble();
			b[i]=m;
		}
		
		
		System.out.print("显示元素:");
		for(int i=0;i<b.length;i++){
			System.out.print(b[i]+" ");
		}
	}
	
	
	void initArr(String c[]){
		System.out.print("初始化之后,字符串数组每个元素值为");
		for(int i=0;i<c.length;i++){
			c[i]="0";
			System.out.print(c[i]+"  ");
		}
		System.out.println();
		
		
		System.out.print("输入元素:");
		for(int i=0;i<c.length;i++){
			String m=reader.next();
			c[i]=m;
		}
		
		
		System.out.print("显示元素:");
		for(int i=0;i<c.length;i++){
			System.out.print(c[i]+" ");
		}
	}
}
测试类

import java.util.Scanner;


public class Test {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.println("输入整形数组的长度:");
		int a=reader.nextInt(); 
		System.out.println("输入双精度型数组的长度:");
		int b=reader.nextInt(); 
		System.out.println("输入字符串数组的长度:");
		int c=reader.nextInt(); 
		
		int x[]=new int[a];
		Initial a1=new Initial();
		a1.initArr(x);
		System.out.println();
		

		double y[]=new double[b];
		Initial b1=new Initial();
		b1.initArr(y);
		System.out.println();
		

		String z[]=new String[c];
		Initial z1=new Initial();
		z1.initArr(z);
		
	}
}



7
定义一个类MathDemo,类的内部重载round()方法,分别实现对单精度、双精度类型数据进行四舍五入的功能,要处理的实型数据作为参数,方法体最后将得到的结果返回。
在main方法中定义float与double类型变量,分别赋好初值,创建MathDemo类的对象,调用round()方法,将结果显示在屏幕上。

import java.util.Scanner;


public class MathDemo {
	float round(float a){
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入要保留几位小数:");
		int n=reader.nextInt();
		int m=1;
		for(int i=1;i<=n;i++){
			m=m*10;
		}
		float b=(int) (a*m+0.5);
		a=b/m;
		return a;
	}
	
	double round(double b){
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入要保留几位小数:");
		int n=reader.nextInt();
		int m=1;
		for(int i=1;i<=n;i++){
			m=m*10;
		}
		double c=(int) (b*m+0.5);
		b=c/m;
		return b;
	}
}
测试类:

public class Test {
	public static void main(String[] args) {
		float a=(float) 3.141546789;
		double b=3.141546789;
		MathDemo x=new MathDemo();
		System.out.println("单精度实数四舍五入后得到的数据为"+x.round(a));
		System.out.println("双精度实数四舍五入后得到的数据为"+x.round(b));
	}
}


 


  • 20
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值