zoukankan      html  css  js  c++  java
  • C# 类的继承问题 正方形周长面积计算问题

    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 Testing2_1
    {
        abstract class People
        {
            public String name;             //姓名
            public String Name              //姓名属性
            {
                get;
                set;
            }
            public String age;              //年龄
            public abstract void work();    //work方法
        }
        class Stu:People
        {
            public String school;           //增加学校的字段
            public override void work()
            {
                Console.WriteLine("这是Student类!");
            }
        }
        class Employer :People              //Empoyer类
        {
            public String workplace;
            public override void work()
            {
                Console.WriteLine("这是Employer类!");
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Stu stu = new Stu();
                Console.WriteLine("请输入学生的姓名:");
                stu.name=Console.ReadLine();
                Console.WriteLine("请输入学生的小名:");
                stu.Name = Console.ReadLine();
                Console.WriteLine("请输入学生的年龄:");
                stu.age = Console.ReadLine();
                Console.WriteLine("请输入学生的学校:");
                stu.school = Console.ReadLine();
                Console.WriteLine("学生的姓名:{0}", stu.name);
                Console.WriteLine("学生的小名:{0}", stu.Name);
                Console.WriteLine("学生的年龄:{0}", stu.age);
                Console.WriteLine("学生的学校:{0}", stu.school);
                stu.work();
                Employer emp = new Employer();
                Console.WriteLine("请输入员工的姓名:");
                emp.name = Console.ReadLine();
                Console.WriteLine("请输入员工的年龄:");
                emp.age = Console.ReadLine();
                Console.WriteLine("请输入员工的工作地点:");
                emp.workplace = Console.ReadLine();
                Console.WriteLine("员工的姓名:{0}", emp.name);
                Console.WriteLine("员工的年龄:{0}", emp.age);
                Console.WriteLine("员工的工作地点:{0}", emp.workplace);
                emp.work();
                Console.ReadLine();
                Console.ReadLine();
    
            }
        }
    }

    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 Testing2_2
    {
        public interface IShape
        {
            void initalize();               //初始化
            decimal getPerimeter();         //获取边长
            decimal getArea();              //获取面积
        }
        public interface IDisplayresult
        {
            void show();                    //结果显示
        }
        public class Square:IShape,IDisplayresult
        {
            public decimal sidelength;
            public void initalize()
            {
                Console.WriteLine("请输入正方形边长:");
                do
                {
                    sidelength = decimal.Parse(Console.ReadLine());
                    if (sidelength <= 0)
                    {
                        Console.WriteLine("输入错误!请重新输入:");
    
                    }
    
                }while (sidelength <= 0);
    
            }
            public decimal getPerimeter()       //正方形获取面积的实现
            {
                return 4 * sidelength;
            }
            public decimal getArea()
            {
                return sidelength * sidelength;
            }
            public void show()
            {
                Console.WriteLine("正方形周长:{0}", getPerimeter());
                Console.WriteLine("正方形面积:{0}", getArea());
            }
        }public class Circle:IShape,IDisplayresult
            {
                decimal radius;
                const decimal pi = 3.14M;
                public void initalize()             //圆形初始化实现
                {
                    Console.WriteLine("请输入圆形半径:");
                    do
                    {
                        radius = decimal.Parse(Console.ReadLine());
                        if(radius<=0)
                        {
                            Console.WriteLine("输入错误!请重新输入!");
    
                        }
                    } while (radius <= 0);
                }
                public decimal getPerimeter()
                {
                    return 2 * pi * radius;
                }
                public decimal getArea()
                {
                    return pi * radius * radius;
                }
                public void show()
                {
                    Console.WriteLine("圆形周长:{0}", getPerimeter());
                    Console.WriteLine("圆形面积:{0}", getArea());
                }
            }
        class Program
        {
            static void Main(string[] args)
            {
                Square squ = new Square();
                Circle cir = new Circle();
                int i = 0;
                Console.WriteLine("欢迎进入正方形圆形周长面积计算系统!");
                do
                {
                    Console.WriteLine("菜单选择;");
                    Console.WriteLine("1、正方形    2、圆形    3、退出");
                    Console.WriteLine("请输入操作:");
                    i = int.Parse(Console.ReadLine());
                    switch (i)
                    {
                        case 1:
                            squ.initalize();
                            squ.show();
                            break;
                        case 2:
                            cir.initalize();
                            cir.show();
                            break;
                        case 3:
                            Console.WriteLine("感谢您的使用!");
                            break;
                        default:
                            Console.WriteLine("输入错误!请重新输入!");
                            break;
                    }
                 
                } while (i != 3);
            }
        }
    }

     

  • 相关阅读:
    el-table背景色透明
    判断数组对象里的属性值是否重复
    :Duplicate keys detected: 'xxx'. This may cause an update error.
    钉钉微应用附件下载方案
    探索JS引擎工作原理
    js深度优先遍历和广度优先遍历实现
    微前端qiankun从搭建到部署的实践
    浏览器与Node的事件循环(Event Loop)有何区别?
    JS
    微信小程序预览Word文档
  • 原文地址:https://www.cnblogs.com/lx06/p/15686207.html
Copyright © 2011-2022 走看看