一、图形打印(30分)
编写一个程序,输出如下图所示的杨辉三角(10行)。
按如下要求完成程序的编写:
1、使用Eclipse新建一个Java Project,名称为:B1。在B1中添加StarPrinter.java文件。(5分)
2、在StarPrinter类中定义main方法,使用嵌套循环,输出如下图所示的5×5的直角三角形。(25分)
示例代码
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
样例输出
示例代码
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(),所以可写可不写。
一、图形打印(30分)
编写一个程序,输出如下图所示的九九乘法表。
按如下要求完成程序的编写:
1、使用Eclipse新建一个Java Project,名称为:A1。在A1中添加TablePrinter.java文件。(5分)
2、在TablePrinter类中定义main方法,编写程序,输出如下图所示的九九乘法表。(25分)
样例输出
示例代码
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
6、在ShapeTestor类的main方法中编写如下程序:
(1)创建一个Circle类对象,半径为2,调用area()方法计算面积,并输出。输出格式参见样例输出。(3分)
(2)依次创建3个Rectangle类对象,长宽分别为(3,4)、(2,3)、(1,2)。(3分)
(3)创建一个ArrayList
(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