7-7 图形类及其矩形类和圆类的实现(Java for PTA)

  1. 定义抽象类Shape,包含两个抽象方法getArea()和getCircum(),分别实现获取图形的面积和周长。一个普通方法print()用于输出面积和周长。
  2. 基于Shape类定义矩形类Ranctangle和圆类Circle。圆类包含数据成员有半径,矩形类包含数据成员的有长、宽,每个类都要重写从Shape类继承的两个抽象方法getArea()和getCircum():计算并获取面积和周长。
  3. 在测试类中创建圆类和矩形类的对象,调用方法print()输出面积和周长。

编程要求:请在下面标注 【】 的位置添加代码。圆周率用:Math.PI

import java.util.Scanner;

//定义形状类Shape
【】class Shape{
    public 【】 double GetArea();   //定义抽象方法GetArea()
    public 【】 double GetCircum(); //定义抽象方法GetCircum()
    public void print()
    {
        System.out.println("周长:"+GetCircum()+" 面积:"+GetArea());
    }
}
//矩形类,从形状类Shape派生
class Rectangle 【】 Shape{
      double width;
      double length;
    public Rectangle(double wid,double len){
        this.width=wid;
        this.length=len;
    }
    //重写GetArea()方法
    【】

    //重写GetCircum()方法
    【】
    
}
//圆类,从形状类派生
class Circle extends Shape{
    public double radius;
    public Circle(double r){
      this.radius=r;
    }
     //重写GetArea()方法
    【】

    //重写GetCircum()方法
    【】
}
//测试类Test
public class Main {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        double radius = input.nextDouble();
        double width = input.nextDouble();
        double length = input.nextDouble();
        Circle cir = new Circle(radius);   //创建圆的对象cir
        cir.print();                       //输出圆的的信息        
        Rectangle rec = new Rectangle(width, length);  //创建矩形的对象rec        
        rec.print();             //输出矩形的的信息
    }
}

输入样例:

5
2 4

输出样例:

在这里给出相应的输出。例如:

周长:31.41592653589793 面积:78.53981633974483
周长:8.0 面积:12.0

import java.util.*;

//定义形状类Shape
abstract class Shape{
    public abstract double GetArea();   //定义抽象方法GetArea()
    public abstract double GetCircum(); //定义抽象方法GetCircum()
    public void print()
    {
        System.out.println("周长:"+GetCircum()+" 面积:"+GetArea());
    }
}

//矩形类,从形状类Shape派生
class Rectangle extends Shape{
    double width;
    double length;
    
    public Rectangle(double wid, double len){
        this.width = wid;
        this.length = len;
    }
    
    //重写GetArea()方法
    @Override
    public double GetArea(){
        return width * length;
    }

    //重写GetCircum()方法
    @Override
    public double GetCircum(){
        return 2 * (width + length);
    }
    
}

//圆类,从形状类派生
class Circle extends Shape{
    public double radius;
    
    public Circle(double r){
        this.radius = r;
    }
    
    //重写GetArea()方法
    @Override
    public double GetArea(){
        return Math.PI * radius * radius;
    }

    //重写GetCircum()方法
    @Override
    public double GetCircum(){
        return 2 * Math.PI * radius;
    }
}

//测试类Test
public class Main {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        double radius = input.nextDouble();
        double width = input.nextDouble();
        double length = input.nextDouble();
        Circle cir = new Circle(radius);   //创建圆的对象cir
        cir.print();                       //输出圆的信息        
        Rectangle rec = new Rectangle(width, length);  //创建矩形的对象rec        
        rec.print();             //输出矩形的信息
    }
}

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实验一 C++简单程序设计(2学时) 1.编程计算图形的面积。程序可以计算圆形、长方形、正方形的面积、运行时先提示用户选择图形型,然后,对圆形要求用户输入半径、对长方形要求用户输入长和宽的值,对正方形要求用户输入边长,计算出面积后将其显示出来。要求使用debug调试功能观察程序运行中变量值的变化情况。 2.定义一个表示时间的结构体,可以精确的表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。 实验二 函数的应用(2学时) 1.编写重载函数Max1,分别求出两个整数,两个双精度数,三个整数,三个双精度数的最大值。 2.使用重载函数模板重新实现上面的函数Max1。 要求:(1)练习重载函数的使用;(2) 练习函数模板的使用。 实验三 与对象(2学时) 1.声明一个Dog包含age、weight等属性,以及对这些属性操作的方法。实现并测试这个。 2.设计并测试一个名为Rectangle的矩形,其属性为矩形的左下角和右上角两个点的坐标,有成员函数能计算矩形的面积。 3.定义一个CPU包含等级、频率,电压等属性,并编写构造函数、析构函数,以及成员函数run、stop模拟CPU的状态。其中,等级为整型,频率为单位是兆赫兹的整数,电压为浮点型。要求自己设计各个属性的标识。 4.定义一个简单的Computer包含数据成员cpu、ram、cdrom等等,有两个成员函数run、stop。其中cpu为CPU的一个对象,ram为RAM的一个对象,cdrom为CDROM的一个对象,定义实现这个。 5.(必做)设计一个用于人事管理的People。考虑到通用性,可以只抽象出所有人员都 具有的属性:number(编号),sex(性别) ,birthday(出生日期),id(身份证号)等等。其中“出生日期”定义为一个“日期”内嵌子对象。用成员函数实现对人员函数的录入和显示。要求包括:编写构造函数和析构函数、拷贝构造函数、内联成员函数,的组合。 实验四 C++程序的结构(2学时) 1.编写程序,实现并测试客户机(Client)定义字符型静态数据成员ServerName[10],保存其服务器名称;整型静态数据成员ClientNum,记录定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中定义,在文件client.cpp中实现,在文件test.cpp中测试这个,观察相应的成员变量的取值的变化情况。 2、在实验三题目5编写的人员中设计适当的方法来实现中数据的共享性,并采用多文件结构实现程序。 3.(选做)定义X、Y、Z,函数h(X *),满足:X有私有成员i,Y的成员函数g(X *)是X的友元函数,实现对X的成员i加1,Z是X的友元,其成员函数f(X *)实现对X的成员i加5,函数h(X *)是X的友元函数,实现对X的成员i加10。在一个文件中声明,在一个文件中实现,在另一个文件中测试。 实验五 继承和派生(2学时) 1.设计并定义一个交通工具,并通过该派生出新的,编写程序定义这些并测试它; 2.(选做)声明一个基Shape,在此基础上派生Rectangle和Circle,二者都有GetArea()函数计算对象的面积,编写程序测试。 3.(选做)声明一个哺乳动物Mammal,再由此派生出狗Dog,定义一个Dog的对象,观察基与派生的构造函数和析构函数的调用顺序。 4.完善实验四第2题的程序,具体要求如下: 任务1:从people(人员)派生出student(学生),添加属性:学校、学院、专业、班号、入学成绩,设计相应的成员函数(构造函数,拷贝构造函数,录入函数,显示函数)。 任务2:从people派生出teacher(教师),添加属性:职务,部门,职称。并设计相应的成员函数。 任务3:从student派生出graduate(研究生),添加属性:导师,研究方向。并设计相应的成员函数。 任务4:编写程序来测试这个。 实验六 小型学生管理系统的设计与实现1(2学时) 设计学生、课程、成绩及相应的成员函数。要求能实现学生的信息、课程信息和成绩信息的增加、修改、删除与查询。 实验七 多态性(2学时) 1.定义Point,有坐标X和Y两个成员变量,对Point重载++和――运算符,实现对坐标值的改变。 2.定义一个车(Vehicle),有run,stop等成员函数,由此派生出自行车(bicycle)、汽车(car),由bicycle和car派生出摩托车(motocar),它们都包含run,stop等成员函数,编写相应的虚函数并测试
书名 版权 前言 第一部分 C#的基本数据型、数组型和图形基础第1章 C#语言基础 1.1 数据型 1.1.1 简单型 1.1.2 结构型 1.1.3 枚举型 1.1.4 数组型 1.1.5 型 1.1.6 型转换 1.2 1.3 接口 1.4 委托与事件 第2章 图形基础 2.1 笔和画刷 2.1.1 Pen 2.1.2 Brush 2.2 基本图形形状 2.2.1 点 2.2.2 直线和曲线 2.2.3 矩形、椭圆形和圆弧形 2.2.4 多边形 2.3 颜色 2.4 双倍缓存 第3章 坐标系统和颜色变换 3.1 坐标系统 3.2 颜色变换 第二部分 二维图形的基本算法 第4章 二维矩阵和变换 4.1 矩阵基础和变换 4.2 齐次坐标 4.2.1 齐次坐标中的缩放 4.2.2 齐次坐标中的平移 4.2.3 齐次坐标中的旋转 4.2.4 变换组合 4.2.5 C#中矩阵的定义 4.2.6 C#中的矩阵操作 4.2.7 C#中基本的矩阵变换 4.3 C#中图形对象的变换 基本变换 4.4 C#中的多对象变换 4.5 文字变换 第5章 二维线形图形 5.1 序列化和反序列化及二维图形的基本框架 5.1.1 C#序列化和反序列化 5.1.2 二维图形的基本框架 5.2 二维图形 5.2.1 简单实例 5.2.2 图例 5.2.3 符号 5.2.4 对数比例 5.2.5 图形的修饰 5.3 阶梯状图 5.4 多Y轴图 第6章 特殊二维图形 6.1 创建柱状图 6.1.1 水平柱状图 6.1.2 垂直柱状图 6.1.3 图形充填柱状图 6.1.4 重叠柱状图 6.2 饼状图 6.3 误差图 6.4 股票图 6.4.1 最高最低收盘价股票图 6.4.2 最高最低开盘收盘价股票图 6.4.3 最高最低价股票图 6.4.4 K线图(阴阳烛图) 6.5 面积图 6.6 综合图 第三部分 三维图形的相关知识及三维图形实现第7章 三维矩阵和变换 7.1 三维数学概念 7.1.1 操作三维对象 7.1.2 数学结构 7.2 三维中的基本矩阵和变换 7.2.1 C#中三维点和矩阵的操作 7.2.2 三维的基本变换 7.3 方位角和仰角 7.4 三维图形中的特殊坐标系统 7.4.1 球坐标系统 7.4.2 圆柱坐标系统 7.5 特殊坐标中的实际应用 7.5.1 球坐标示例 7.5.2 双缓存 第8章 三维图形 8.1 三维图形基础 8.1.1 Point3和Matrix3 8.1.2 ChartStyle 8.1.3 坐标轴 8.1.4 网格线 8.1.5 标签 8.2 三维折线图 8.3 三维图形函数包 8.3.1 ChartStyle2D 8.3.2 Point4 8.3.3 DataSeries 8.3.4 ChartFunctions 8.3.5 DrawChart 8.4 曲面图的实现 8.4.1 网格图 8.4.2 幕布网格图 8.4.3 瀑布网格图 8.4.4 曲面图 8.5 X-Y平面色彩图 8.6 轮廓图 8.6.1 轮廓图的算法 8.6.2 轮廓图的实现 8.7 组合图 8.7.1 三维体系中的X-Y色彩图 8.7.2 三维体系中的轮廓图 8.7.3 网格-轮廓组合图 8.7.4 曲面-轮廓组合图 8.7.5 填充曲面-轮廓组合图 8.8 三维柱状图 实现柱状图 8.9 切片图 切片图的实现 第四部分 C#中应用微软Office的Excel实现各种二维及三维图形第9章 应用 程序中的Excel图表 9.1 Excel和C#间的互操作 9.2 C#应用程序中的Excel图表示例 9.2.1 Excel图表对象模型 9.2.2 创建独立的Excel图表 9.2.3 创建嵌入式Excel图表 9.3 更多的Excel图表 9.3.1 柱状图 9.3.2 饼状图 9.3.3 面积图 9.3.4 圆环图 9.3.5 雷达图 9.3.6 股价图 9.3.7 曲面图 9.3.8 颜色映射 9.4 整合Excel图表到Windows Forms应用程序中 9.4.1 Windows窗体上的独立Excel图表 9.4.2 Windows窗体上的嵌入式Excel图表 第五部分 实现文件的相关知识 第10章 文件的读/写 10.1 C#文件读/写常用 10.1.1 System.IO.File和System.IO.FileI nfo 10.1.2 System.IO.Directory和System.Dir ectoryInfo 10.2 C#基于流的输入/输出 流的继承结构 10.3 文件读/写操作涉及的 10.4 一些常见的问题及其解决方案 参考文献

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

H._

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值