Nearth===019/c#类和对象, 继承(练习题4)

4、完成一个图形设计软件类的开发,在Shape-Point-Cirlce-Cylinder的继承形式,类的继承关系可以表示如下图,使用抽象类和多态特征计算圆面积的方法与计算圆柱体的表面积的方法,计算方法是不相同的,但都可以通过Area( )方法进行计算,不同对象的Area( )方法是不相同的,但对于调用者来说,使用很方便(既可以用派生类调用Area( )方法,也可以用基类调用Area( )方法);

给应用程序添加一个圆锥体类(Cone),该类继承自Circle类,并具有Height属性,并重载基类的Area和Volume方法,测试类的多态性。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//完成一个图形设计软件类的开发,在Shape-Point-Cirlce-Cylinder的继承形式,
//类的继承关系可以表示如下图,使用抽象类和多态特征计
//算圆面积的方法与计算圆柱体的表面积的方法,计算方法是不相同的,
//但都可以通过Area( )方法进行计算,不同对象的Area( )方法是不相同的,
//但对于调用者来说,使用很方便(既可以用派生类调用Area( )方法,也可以用基类调用Area( )方法);
//给应用程序添加一个圆锥体类(Cone),该类继承自Circle类,
//并具有Height属性,并重载基类的Area和Volume方法,测试类的多态性。

namespace ShapeDesinger
{
    class  Shape{
        public virtual void Area(){
           
        }
        public virtual void Volume(){
          
        }
        public virtual void getName(){ 
        
        }
    }
   class Point:Shape{
         public int x;
         public int y;
         public string shapeName;
         public string ShapeName{
             set {
                 shapeName = value;
             }
             get {
                 return shapeName;
             }
         }
         public int X{
            set{
                x = value;
            }
            get{
                return x;
            }
        }
        public int Y {
            set {
                y = value;
            }
            get {
                return y;
            }
        }
        public Point() { 
        
        }
        public Point(int x, int y,string shapeName)
        {
            this.x = x;
            this.y = y;
            this.shapeName = shapeName;
        }
        public override void Area()
        {
            Console.WriteLine("点的面积为0!");
        }
        public override void Volume()
        {
            Console.WriteLine("点的面积为0!");
        }
        public override void getName(){
            Console.WriteLine("你所操作的图形对象是:{0}",shapeName);
        }
        public virtual void ToString(){ 
        
        }
    }
    class Circle:Point {
        public double radius;
        public double Radius{
            set {
                radius = value;
            }
            get {
                return radius;
            }
        }
        public Circle(){ 
        
        }
        public Circle(double radius){
            this.radius = radius;
        }
        public Circle(double radius,string shapeName){
            this.radius = radius;
            this.shapeName = shapeName;
        }
        public void getRadius()
        {
            Console.WriteLine("圆的半径为:{0}",radius);
        }
        public override void Area()
        {
            Console.WriteLine("圆的面积为:{0}",2*3.14*radius);
        }
        public override void Volume()
        {
            Console.WriteLine("圆的体积为:0");
        }
        public override void getName()
        {
            Console.WriteLine("你所操作的图形对象是:{0}", shapeName);
        }
        public override void ToString() {
            
        }

    }
    class Cylinder:Circle {
        public double height;
        public double Height {
            set {
                height = value;
            }
            get {
                return height;
            }
        }
        public Cylinder(){ 
        
        }
        public Cylinder(double radius,double height,string shapeName){
            this.radius = radius;
            this.height = height;
            this.shapeName = shapeName;
        }
        public void getHeight()
        {
            Console.WriteLine("圆柱的高为:{0}",height);
        }
        public override void Area()
        {
            Console.WriteLine("圆柱的面积为:{0}",3.14*radius*radius*2+2*3.14*radius*height);
        }
        public override void Volume()
        {
            Console.WriteLine("圆柱的体积为:{0}",3.14*radius*radius*height);
        }
        public override void getName() {
            Console.WriteLine("你所操作的图形对象是:{0}", shapeName);
        }
        public override void ToString()
        {

        }

    }
    class Cone:Circle{
        public double height;
        public double Height {
            set {
                height = value;
            }
            get {
                return height;
            }
        }
        public Cone(){
        
        }
        public Cone(double radius,double height,string shapeName){
            this.radius = radius;
            this.height = height;
            this.shapeName = shapeName;
        }
        public override void Area()
        {
            Console.WriteLine("圆锥面积为:功能维护中,抱歉!");
        }
        public override void Volume()
        {
            Console.WriteLine("圆锥体积为:{0}", 3.14 * radius * radius * height);
        }
        public override void getName(){
            Console.WriteLine("你所操作的图形对象是:{0}", shapeName);
        }
    }
    class Rectengle:Point{
        public double length;
        public double width;
        public double Length {
            set {
                length = value;
            }
            get {
                return length;
            }
        }
        public double Width {
            set {
                width = value;
            }
            get {
                return width;
            }
        }
        public void getLength(){ 
        
        }
        public void getWidth(){ 
        
        }
        public override void Area()
        {

        }
        public override void Volume()
        {

        }
        public override void getName()
        {

        }
        public override void ToString()
        {

        }

    }
    class Cube : Rectengle {
        public double height;
        public double Height{
            set {
                height = value;
            }
            get {
                return height;
            }
        }
        public void getHeight(){ 
        
        }
        public override void Area()
        {

        }
        public override void Volume()
        {

        }
        public override void getName()
        {

        }
        public override void ToString()
        {

        }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("==================================");
            Console.WriteLine("欢迎使用图形操作系统");
            Console.WriteLine("==================================");
            bool b = true;
            while (b)
            {
                Console.Write("请输入你要操作的对象{0:操作对象,1:对点的操作,2:对圆的操作,3:圆柱,4:圆锥,5:矩形,6:四棱柱}-->");
                switch (Console.ReadLine())
                {
                    case "0"://操作图形
                        Console.WriteLine("功能暂未开放!抱歉!请重新选择····");
                        break;
                    case "1"://点
                       Console.WriteLine("请输入点的横坐标,纵坐标,以及操作形状:");
                       Point p = new Point(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), Console.ReadLine());
                       p.getName();
                       p.Area();
                       p.Volume();
                        break;
                    case "2"://圆
                        Console.WriteLine("请输入圆的半径,以及操作形状:");
                        Circle c = new Circle(int.Parse(Console.ReadLine()), Console.ReadLine());
                        c.getName();
                        c.getRadius();
                        c.Area();
                        c.Volume();
                        break;
                    case "3"://圆柱
                        Console.WriteLine("请输入圆柱的半径,高,以及操作形状:");
                        Cylinder cy = new Cylinder(double.Parse(Console.ReadLine()), double.Parse(Console.ReadLine()), Console.ReadLine());
                        cy.getName();
                        cy.getHeight();
                        cy.Area();
                        cy.Volume();
                        break;
                    case "4"://圆锥
                        Console.WriteLine("请输入操作图形的半径,高,以及操作形状:");
                        Cone cone = new Cone(double.Parse(Console.ReadLine()),double.Parse(Console.ReadLine()),Console.ReadLine());
                        cone.getName();
                        cone.Area();
                        cone.Volume();
                        break;
                    case "5":
                        Console.WriteLine("功能暂未开放!抱歉!请重新选择····");
                        break;
                    case "6"://柱体
                        Console.WriteLine("功能暂未开放!抱歉!请重新选择····");
                        break;
                    default:
                        b = false;
                        Console.WriteLine("退出图形操作系统!");
                        break;
                }
            }
        }
    }
}

运行结果:



小主人,你这么刻苦学习,真开心··············

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码字界陈冠希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值