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

原创 2016年08月30日 17:44:14
开启答案之旅
<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));
	}
}




版权声明:本文为博主原创文章,未经博主允许不得转载。

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

java面向对象编程基础(三大特点)讲解

面向对象编程知识回顾                                          Java是基于面向对象概念的语言,允许在更高抽象层次上解决现实问题。面向...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Java面向对象编程(思想)简要介绍

什么是面向对象编程? 面向对象编程就是将现实世界中客观存在的事物抽象成计算机能识别的机器码,对于Java语言来说就是类。面向对象更符合人们的思维方式和思考模式。比如现实世界中有个汽车。那么抽...
  • fly_zxy
  • fly_zxy
  • 2015年04月29日 22:27
  • 872

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Java面向对象基础--类的设计及分析问题的方法---用户登录例子

1、用户登录的示例 首先要做的就是先把功能实现: public class LoginDemo01{ public static void main(String args[]){ if(ar...
  • waldmer
  • waldmer
  • 2013年09月17日 08:48
  • 1877

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

JAVA中的异常处理机制及异常分类

JAVA的异常处理机制:如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java面向对象程序设计--自己写的课后答案--
举报原因:
原因补充:

(最多只允许输入30个字)