Java期末练习题

 编程练习题1

一、图形打印(30分)

编写一个程序,输出如下图所示的杨辉三角(10行)。

如下要求完成程序的编写

1、使用Eclipse新建一个Java Project,名称为:B1。在B1中添加StarPrinter.java文件。(5分)

2、在StarPrinter类中定义main方法,使用嵌套循环,输出如下图所示的5×5的直角三角形。(25分)

  1. 样例输出

 

 

Java期末练习题_第1张图片

示例代码

public class StarPrinter {
public static void main(String[] args) {
	for(int i=0;i<5;i++) {//高度
		for(int j=0;j

 

二、面向对象程序设计(50分)

设计一个交通工具Vehicle抽象类和它的两个实现类:汽车Car和卡车Truck。

如下要求完成程序的编写

1、使用Eclipse新建一个Java Project,名称为:B2。在B2中添加VehicleTestor.java文件。(4分)

2、抽象类Vehicle的编写:

(1)在VehicleTestor.java文件中定义抽象类Vehicle。

(2)定义一个String类型的字段brand,代表小汽车的商标;(2分)

(3)定义一个String类型的字段color,代表小汽车的颜色;(2分)

(4)在Vehicle类中编写一个抽象方法showInfo(),方法无参数,返回值为void 类型。(4分)

3、Car类的编写:

(1)在VehicleTestor.java文件中添加一个类Car,该类继承自Vehicle类;(2分)

(2)定义一个构造方法,该构造方法接受两个String类型的参数,并保存到字段brand和color中;(4分)

(3)实现showInfo()方法,输出小汽车的商标和颜色。(3分)

4、Truck类的编写:

(1)在VehicleTestor.java文件中再添加一个类Truck,该类继承自Car类;(3分)

(2)定义一个构造方法,该方法接受两个String类型的参数,并保存到字段brand和color中。(2分)

(3)实现showInfo()方法,输出卡车的商标和颜色。(4分)

5、在VehicleTestor类的main方法中编写如下程序(输出格式参见样例输出。):

(1)创建一个Car对象,商标为保时捷,颜色为红色,调用方法showInfo()输出小汽车的信息。(4分)

(2)创建3个Truck对象,商标和颜色为(江铃,红色),(重汽,蓝色),(解放,灰色)。(8分)

(3)创建一个ArrayList集合对象,将上述3个Truck类的对象添加进集合,删除集合中的最后一个元素,输出删除后的结果并输出集合的长度。(8分)

样例输出

示例代码

import java.util.ArrayList;

public abstract class  Vehicle {
	public static void main(String[] args) {
		 Car car=new Car("保时捷","红色");
		 car.showInfo();
		 Truck t1=new Truck("江铃","红色");
		 Truck t2=new Truck("重汽","蓝色");
		 Truck t3=new Truck("解放","灰色");
		 ArrayList list=new ArrayList();
		 list.add(t1);
		 list.add(t2);
		 list.add(t3);
		 list.remove(2);
		 t1.showInfo();
		 t2.showInfo();
		 System.out.println("集合的长度为:"+list.size());
	}
 String brand;
 String color;
 public void  showInfo() {
	
 }
}
class Car extends Vehicle{
	public Car(String brand,String color) {
	 this.brand=brand;
	 this.color=color;
	}
	public void showInfo() {
		System.out.println("小汽车的商标为:"+brand+"颜色:"+color);
	}
}
class Truck extends Car{
	String brand;
	String color;
	public Truck(String brand,String color) {
		super(brand,color);
		this.brand=brand;
		this.color=color;
	}
	public void showInfo() {
		System.out.println("卡车的商标为:"+brand+"颜色:"+color);
	}
}

 注意:父类定义了有参的构造函数,子类必须自定义构造函数,并在构造函数的第一行调用父类的带参的构造函数super()。父类构造函数无参时,子类构造函数默认有super(),所以可写可不写。


 

编程练习题2

一、图形打印(30分)

编写一个程序,输出如下图所示的九九乘法表。

如下要求完成程序的编写

1、使用Eclipse新建一个Java Project,名称为:A1。在A1中添加TablePrinter.java文件。(5分)

2、在TablePrinter类中定义main方法,编写程序,输出如下图所示的九九乘法表。(25分)

样例输出

Java期末练习题_第2张图片

示例代码

public class TablePrinter {
public static void main(String[] args) {
	for(int i=1;i<10;i++) {
		for(int j=1;j<=i;j++) {
			System.out.print(i+"*"+j+"="+i*j+" ");
		}
		System.out.println();
	}
}
}

 

二、面向对象程序设计(50分)

设计一个形状Shape抽象类和它的两个实现类:圆Circle和矩形Rectangle,让Rectangle类实现Comparable接口,能根据面积进行排序。

如下要求完成程序的编写

1、使用Eclipse新建一个Java Project,名称为:A2。在A2中添加ShapeTestor.java文件。(4分)

2、在ShapeTestor.java文件中定义抽象类Shape。在Shape类中编写一个抽象方法area(),方法无参数,返回值为double类型。(4分)

3、Circle类的编写:

(1)在ShapeTestor.java文件中添加一个类Circle,该类继承自Shape类;(2分)

(2)定义一个double类型的字段r,代表圆的半径;(2分)

(3)定义一个构造方法,该构造方法接受一个double类型的参数,并保存到字段r中;(4分)

(4)实现area()方法,并编写程序计算圆的面积。π取3.14。(3分)

4、Rectangle类的编写:

(1)在ShapeTestor.java文件中再添加一个类Rectangle,该类继承自Shape类;(2分)

(2)定义两个double类型的字段width和height,分别代表矩形的宽和高;(2分)

(3)定义一个构造方法,该构造方法接受两个double类型的参数,并分别保存到字段width和height中;(4分)

(4)实现area()方法,并编写程序计算矩形的面积。(3分)

5、Comparable接口的实现(7分)

修改Rectangle类,使其实现Comparable接口,compareTo方法根据面积进行比较大小。java.lang.Comparable接口的相关信息如下:

Java期末练习题_第3张图片

6、在ShapeTestor类的main方法中编写如下程序:

(1)创建一个Circle类对象,半径为2,调用area()方法计算面积,并输出。输出格式参见样例输出。(3分)

(2)依次创建3个Rectangle类对象,长宽分别为(3,4)、(2,3)、(1,2)。(3分)

(3)创建一个ArrayList对象,将上述3个Rectangle类的对象添加进去,调用Collections.sort()方法,按面积由小到大的顺序对ArrayList中的元素进行排序。(3分)

(4)输出排序后的结果,每行输出一个Rectangle对象,格式如样例输出所示。(4分)

样例输出

示例代码

import java.util.ArrayList;
import java.util.Collections;

public  class ShapTestor {
  public static void main(String[] args) {
	 Circle c1=new Circle(2);
	 System.out.println("圆(半径为"+c1.r+")的面积是:"+c1.area());
	 Rectangle r1=new Rectangle(3,4);
	 Rectangle r2=new Rectangle(2,3);
	 Rectangle r3=new Rectangle(1,2);
	 ArrayList list=new ArrayList();
	 list.add(r1);
	 list.add(r2);
	 list.add(r3);
	 Collections.sort(list);
	 for(Rectangle o:list) {//按照题目要求输出
		 System.out.println("矩形("+o.width+","+o.height+")的面积是:"+o.area());
	 }
}
}
abstract class Shape{
	 abstract  double area();
}
class Circle extends Shape{
	double r;
	public Circle(double r) {
		super();
		this.r=r;
	}
	public double area() {
		return 3.14*r*r;
	}
}
class Rectangle extends Shape implements  Comparable{
	double width;
	double height;
	public Rectangle(double width,double height) {
		super();
	 this.width=width;
	 this.height=height;
	}
	public double area() {
		return width*height;
	}
	@Override
	public int compareTo(Rectangle o) {//升序排序
		if(this.area()>o.area()) {
			return 1;
		}else if(this.area()

 

主要就是compareTo的重写有点难度,这些练习题比较基础。

不懂的同学看一看: 一篇文章带你搞定 Java 中的 Comparable 接口

希望能帮助到大家期末复习,7.3考完一身轻松!!

写得时候比较晚,难免有些瑕疵,希望得到纠正。

此号用于对自身学习的记录和一些知识的分享,体验一下写博客感觉(滑稽)

联系方式:2059334611

你可能感兴趣的:(java,编程语言)