不同形状的面积

本文介绍了一个使用C#实现的不同形状面积计算程序,包括圆形和矩形。通过抽象类和继承,展示了面向对象编程中多态性的应用。文章包含了完整的代码示例,适合初学者理解和实践。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 不同形状的面积
{
    class Program
    {
        static void Main(string[] args)
        {
            Square s = new Square(20, 30);
            Circle c = new Circle(10);
            s.Area();
            c.Area();
            Console.ReadKey();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 不同形状的面积
{
    class Circle:Figure 
    {
        public Circle(double a):base(a,a)
        { }
        public override void Area()
        {
            Console.WriteLine("圆的面积是:{0}", 3.14 * x * y);
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 不同形状的面积
{
   abstract  class Figure
    {
        protected double x = 0, y = 0;
        public Figure(double a,double b)
        {
            x = a;
            y = b;
        }
        public abstract void Area();
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 不同形状的面积
{
    class Square:Figure
    {
        public Square(double a, double b) : base(a, b)
        { }
        public override void Area()
        {
            Console.WriteLine("矩形面积是:{0}", x * y);
        }
    }
}

以下是一个基于面向对象思想的示例代码,实现了循环计算不同形状面积。 ``` // 定义一个 Shape 类,作为所有形状的基类 class Shape { public: // 定义一个虚函数,用于计算面积 virtual double calculateArea() = 0; }; // 定义一个 Circle 类,继承自 Shape 类 class Circle : public Shape { public: // 构造函数,传入圆的半径 Circle(double radius) : radius_(radius) {} // 实现 Shape 类的虚函数,计算圆的面积 virtual double calculateArea() { return 3.1415926 * radius_ * radius_; } private: double radius_; }; // 定义一个 Rectangle 类,继承自 Shape 类 class Rectangle : public Shape { public: // 构造函数,传入矩形的长宽 Rectangle(double length, double width) : length_(length), width_(width) {} // 实现 Shape 类的虚函数,计算矩形的面积 virtual double calculateArea() { return length_ * width_; } private: double length_; double width_; }; // 定义一个 Triangle 类,继承自 Shape 类 class Triangle : public Shape { public: // 构造函数,传入三角形的底高 Triangle(double base, double height) : base_(base), height_(height) {} // 实现 Shape 类的虚函数,计算三角形的面积 virtual double calculateArea() { return 0.5 * base_ * height_; } private: double base_; double height_; }; int main() { // 创建一个 Shape 类型的指针数组,用于存储不同形状的对象 Shape* shapes[3]; // 创建不同形状的对象,并将指针存储到数组中 Circle circle(1.0); Rectangle rectangle(2.0, 3.0); Triangle triangle(4.0, 5.0); shapes[0] = &circle; shapes[1] = &rectangle; shapes[2] = &triangle; // 循环计算每个形状面积,并输出结果 for (int i = 0; i < 3; i++) { double area = shapes[i]->calculateArea(); std::cout << "Shape " << i+1 << " area: " << area << std::endl; } return 0; } ``` 在上述代码中,我们定义了一个 Shape 类作为所有形状的基类,并在其中定义了一个虚函数 calculateArea(),用于计算面积。然后,我们分别定义了 Circle、Rectangle Triangle 类,分别继承自 Shape 类,并实现了 calculateArea() 函数,用于计算圆、矩形三角形的面积。 在主函数中,我们创建了一个 Shape 类型的指针数组,用于存储不同形状的对象。然后,我们创建了不同形状的对象,并将指针存储到数组中。最后,我们循环计算每个形状面积,并输出结果。 这种方式可以很方便地实现不同形状面积计算,并且可以很容易地扩展到其他形状。同时,我们还可以使用方法的重载来支持不同参数类型的形状面积计算。例如,我们可以为 Rectangle 类增加一个重载的 calculateArea() 函数,用于计算正方形的面积
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值