編寫一個控制台應用程序,輸入正方形邊長或者半徑,計算其周長和面積並輸出
(1) 編寫兩個接口,接口 IShape 包含三個方法:initialize, getPerimeter, getArea。分別進行初始化、獲取邊長和面積,其返回值均為 decimal。接口 IDisplayresult 顯示計算結果。
(2) 編寫兩個類,Square(正方形)和 Circle(圓形),實現 IShape 和 IDisplayresult接口。
代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Lab06_2 { public interface Ishape { void initialize(); decimal getPerimeter(); decimal getArea(); } public interface IDisplayresult { void showResult(); } public class Square:Ishape,IDisplayresult{ decimal l; public void initialize() { Console.WriteLine("請輸入正方形邊長:"); do { l = decimal.Parse(Console.ReadLine()); if (l <= 0) { Console.WriteLine("輸入數據錯誤,請重新輸入:"); } } while (l <= 0); } public decimal getPerimeter() { return 4*l; } public decimal getArea() { return l*l; } public void showResult() { Console.WriteLine("該正方體的周長:{0}",getPerimeter()); Console.WriteLine("該正方體的面積:{0}", getArea()); } } public class Circle : Ishape, IDisplayresult { static decimal pi = 3.14M; decimal r; public void initialize() { Console.WriteLine("請輸入圓形的半徑:"); do { r = decimal.Parse(Console.ReadLine()); if (r <= 0) { Console.WriteLine("輸入數據錯誤,請重新輸入:"); } } while (r <= 0); } public decimal getPerimeter() { return 2*r*pi; } public decimal getArea() { return pi * r * r; } public void showResult() { Console.WriteLine("該圓形的周長:{0}", getPerimeter()); Console.WriteLine("該圓形的面積:{0}", getArea()); } } class Program { static void Main(string[] args) { int i; Square sq=new Square(); Circle cr=new Circle(); do { Console.WriteLine("請選擇 1:正方形 2:圓形 3:退出"); i = int.Parse(Console.ReadLine()); switch (i) { case 1: sq.initialize(); sq.showResult(); break; case 2: cr.initialize(); cr.showResult(); break; case 3: Console.WriteLine("感謝您的使用!!!"); break; default: Console.WriteLine("輸入數據錯誤,請重新輸入:"); break; } Console.Write("\n請按任意鍵繼續..."); Console.ReadKey(); Console.Clear(); } while (i !=3); } } }
運行結果: