.NET程序设计实验2
1.设计编写一个控制台应用程序,练习类的继承。
(1) 编写一个抽象类 People,具有”姓名”,”年龄”字段,”姓名”属性,Work 方法。
(2) 由抽象类 People 派生出学生类 Student 和职工类 Employer,继承 People 类,并
覆盖Work 方法。
(3) 派生类 Student 增加”学校”字段,派生类 Employer 增加”工作单位”字段。
(4) 在 Student 和 Employer 实例中输出各自不同的信息。
代码示例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace NET_test2_1 { public abstract class People{ String name; String age; public virtual void work() { } } public class Student : People { String school; public override void work(){ Console.WriteLine("子类学生学习中"); } } public class Employer : People { String workspace; public override void work() { Console.WriteLine("子类职工工作中"); } } class Program { static void Main(string[] args) { Student a = new Student(); Employer b=new Employer(); a.work(); b.work(); Console.ReadKey(); } } }
运行截图:
2.编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出。
(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 NET_test_2_2 { public interface IShape { void initialize(); //初始化 decimal getPerimeter();//获取边长 decimal getArea();//获取面积 } public interface IDisplayresult { void showresaults(); } public class square : IShape, IDisplayresult //正方形 { public decimal length; //边长 public void initialize() { Console.WriteLine("请输入正方形边长:"); do { length = decimal.Parse(Console.ReadLine()); if (length <= 0) { Console.WriteLine("输入错误,边长应大于0,请重新输入:"); } }while (length <= 0); } public decimal getPerimeter() { decimal Perimeter = 4 * length; return Perimeter; } public decimal getArea() { decimal Area = length * length; return Area; } public void showresaults() { Console.WriteLine("正方形周长:{0}", getPerimeter()); Console.WriteLine("正方形面积:{0}", getArea()); } } public class Circle : IShape, IDisplayresult //圆形 { decimal radius; const decimal pai = 3.14M; public void initialize() //初始化 { Console.WriteLine("请输入圆形半径:"); do { radius = decimal.Parse(Console.ReadLine()); if (radius <= 0) { Console.WriteLine("输入错误,半径应大于0,请重新输入:"); } } while (radius <= 0); } public decimal getPerimeter() { decimal Perimeter = 2 * pai * radius; return Perimeter; } public decimal getArea() { decimal Area = pai * radius * radius; return Area; } public void showresaults() { Console.WriteLine("圆形周长:{0}", getPerimeter()); Console.WriteLine("圆形面积:{0}", getArea()); } } class Program { static void Main(string[] args) { square square = new square(); Circle circle = new Circle(); int i; Console.WriteLine("请选择图形:"); do { Console.WriteLine("1.正方形"); Console.WriteLine("2.圆形"); Console.WriteLine("3.退出"); i = int.Parse(Console.ReadLine()); switch (i) { case 1: square.initialize(); square.showresaults(); break; case 2: circle.initialize(); circle.showresaults(); break; case 3: break; default: Console.WriteLine("输入错误"); break; } } while (i != 3); } } }
运行截图: