C#编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出

(1) 编写两个接口,接口 IShape 包含三个方法:initialize, getPerimeter, getArea。分

别进行初始化、获取边长和面积,其返回值均为 decimal。接口 IDisplayresult 显示计算结果。

(2) 编写两个类,Square(正方形)和 Circle(圆形),实现 IShape 和 IDisplayresult

接口。

using System;

namespace sy2_2
{
    class Program
    {
        public interface IShape 
        {
            void initialize();//初始化
            decimal getPerimeter();//获取周长
            decimal getArea();//获取面积
        }
        public interface IDisplayresult 
        {
            void show();//显示计算结果
        }
        
        public class Square : IShape, IDisplayresult//正方形
        {
            public decimal Slength;//边长
            public decimal getArea()//面积
            {
                return Slength * Slength;
            }

            public decimal getPerimeter()//周长
            {
                return Slength * 4;
            }

            public void initialize()//初始化
            {
                Console.WriteLine("请输入正方形边长");
                do
                {
                    Slength = decimal.Parse(Console.ReadLine());
                    if (Slength <= 0)
                    {
                        Console.WriteLine("边长不符合实际,请重新输入...");
                    }
                } while (Slength <= 0);
            }

            public void show()//输出结果
            {
                Console.WriteLine("正方形周长为{0},面积为{1}",getPerimeter(),getArea());
            }
        }

        public class Circle : IShape, IDisplayresult
        {
            const decimal PI = 3.14M;//定义pi值
            decimal Cradius;//半径
            
            public decimal getArea()//面积
            {
                return PI * Cradius * Cradius;
            }

            public decimal getPerimeter()//周长
            {
                return 2 * PI * Cradius;
            }

            public void initialize()//初始化
            {
                Console.WriteLine("请输入圆半径");
                do
                {
                    Cradius = decimal.Parse(Console.ReadLine());
                    if (Cradius <= 0)
                    {
                        Console.WriteLine("半径不符合实际,请重新输入...");
                    }
                } while (Cradius <= 0);
            }

            public void show()//输出结果
            {
                Console.WriteLine("圆的周长为{0},面积为{1}", getPerimeter(), getArea());
            }
        }

        static void Main(string[] args)
        {
            Square square = new Square();
            Circle circle = new Circle();
            square.initialize();
            square.show();
            circle.initialize();
            circle.show();
        }
    }
}

运行结果:

 

posted @ 2021-11-13 09:42  Arisf  阅读(615)  评论(0编辑  收藏  举报