Lập trình C# - Tính diện tích và chu vi Shape

Viết chương trình C# thực hiện các công việc sau:

  • Tạo lớp trừu tượng Shape với các trường radius, length, width. Khai báo hai phương thức trừu tượng tính diện tính Area và tính chu vi Cirumference
  • Tạo lớp Circle kế thừa từ Shape và thực thi các phương thức của lớp Shape
  • Tạo lơps Rectangle kế thừa từ Shape và thực thi các phương thức của lớp Shape
  • Trong Main viết code để test chương trình.

Bước 1: Kích chuột phải vào Solution chọn Add -> New Project ->Nhập tên (AbstractShap)-> Chọn OK.

Bước 2Tạo lớp trừu tượng Shape và code theo gợi ý sau:

using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractShap
{
    abstract class Shap
    {
        private float radius;
        private float length;
        private float width;
        public float Radius
        {
            get
            {
                return this.radius;
            }
            set
            {
                if (value < 0)
                    Console.WriteLine("Radius phải lớn hơn 0");
                else
                    this.radius = value;
            }
        }
        public float Length
        {
            get
            {
                return this.length;
            }
            set
            {
                if (value < 0)
                    Console.WriteLine("Chiều dài phải lớn hơn 0");
                else
                    this.length = value;
            }
        }
        public float Width
        {
            get
            {
                return this.width;
            }
            set
            {
                if (value < 0)
                    Console.WriteLine("Chiều rộng phải lớn hơn 0");
                else
                    this.width = value;
            }
        }

        public abstract float Area(); //Tính diện tích
        public abstract float Cirumference(); // Tính chu vi
    }
}

Bước 3: Tạo lớp Circle kế thừa lớ Shape và code theo gợi ý sau:

using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractShap
{
    class Circle:Shap
    {
        public void Input()
        {
            try
            {
                Console.WriteLine("Nhập bán kính");
                Radius = float.Parse(Console.ReadLine());
            }
            catch(Exception ex)
            {
                Console.WriteLine("Bán kính phải là số");
            }
        }
        public override float Area()
        {
            return 3.14F * Radius * Radius;
        }
        public override float Cirumference()
        {
            return 2 * 3.14F * Radius;
        }
    }
}

Bước 4Tạo lớp Rectangle kế thừa lớp Shape và code theo gợi ý sau:

using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractShap
{
    class Rectangle:Shap
    {
        public void Input()
        {
            try
            {
                Console.WriteLine("Nhập chiều dài");
                Length = float.Parse(Console.ReadLine());
                Console.WriteLine("Nhập chiều rộng");
                Width = float.Parse(Console.ReadLine());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Chiều dài hoặc chiều rộng phải là số");
            }
        }
        public override float Area()
        {
            return Length * Width;
        }
        public override float Cirumference()
        {
            return 2 * Length * Width;
        }
    }
}

Bước 5Trong Program code test như sau:

using System;
using System.Text;

namespace AbstractShap
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            // Khai tạo hình chữ nhật
            Rectangle rc = new Rectangle();
            // Nhập thông tin hình chữ nhật
            rc.Input();
            // in thông tin hình chữ nhật
            Console.WriteLine("Diện tích hình chữ nhật: {0}",rc.Area());
            Console.WriteLine("Chu vi hình chữ nhật:{0}", rc.Cirumference());
            // Khởi tạo hình tròn
            Circle c = new Circle();
            // Nhập thông tin hình tròn
            c.Input();
            // in thông tin hình tròn
            Console.WriteLine("Diện tích hình tròn: {0}", c.Area());
            Console.WriteLine("Chu vi hình tròn:{0}", c.Cirumference());
            Console.ReadKey();
        }
    }
}

Xem ví dụ

Bước 6: Nhấn Ctrl+F5 để chạy và xem kết quả

Nhập chiều dài
10
Nhập chiều rộng
20
Diện tích hình chữ nhật: 200
Chu vi hình chữ nhật:400
Nhập bán kính
6
Diện tích hình tròn: 113.04
Chu vi hình tròn:37.68