(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(); } } }
运行结果: