ygccccdgl 2021-08-27 09:17 采纳率: 100%
浏览 106
已结题

C#问题 求解答 ——(求面积相关问题)

(1)随机生成2个长方形和2个正方形,输出对应面积。(指的是每个图形的面积)
(2)增加2个三角形,如何改动程序使改动最小。

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2021-08-27 09:32
    关注

    定义一个基类Shape,包含width,height,和计算面积的方法,然后三角形(需要另外新增一条边)继承自这个基类,重写下计算面积的方法就行。示例代码如下

    img

    
    using System;
    namespace ConsoleApp1
    {
        class Shape
        {
            public int width { get; set; }
            public int height { get; set; }
            public int GetArea()
            {
                return width * height;
            }
            public void ShowArea() { Console.WriteLine(width + "*" + height + "=" + this.GetArea()); }
        }
        class Triangle : Shape
        {
            public int thirdEdge { get; set; }
            public Triangle(int width, int height, int thirdEdge)
            {
                if (width + height < thirdEdge || width + thirdEdge < height || height + thirdEdge < width)
                {
                    throw new Exception("无法构成三角形");
                }
                this.width = width;
                this.height = height;
                this.thirdEdge = thirdEdge;
            }
            public new double GetArea()
            {
                double p = (double)(width + height + thirdEdge) / 2;
    
                return System.Math.Sqrt(p * (p - width)* (p - height) *(p - thirdEdge));
            }
            public new  void ShowArea() { Console.WriteLine("三角形【" + width + "," + height + "," + thirdEdge + "】面积:" + this.GetArea()); }
        }
        class Program
        {
            static void Main(string[] args)
            {
                var rnd = new Random(Guid.NewGuid().GetHashCode());
                int width, height,thirdEdge;
                width = rnd.Next(10, 20);
                height = rnd.Next(10,20);
                Shape p1 = new Shape {width=width,height=height };
                p1.ShowArea();
    
                width = rnd.Next(10, 20);
                height = rnd.Next(10, 20);
                Shape p2 = new Shape { width = width, height = height };
                p2.ShowArea();
    
                width = rnd.Next(10, 20);
                Shape p3 = new Shape { width = width, height = width };
                p3.ShowArea();
    
                width = rnd.Next(10, 20);
                Shape p4 = new Shape { width = width, height = width };
                p4.ShowArea();
    
    
                width = rnd.Next(10, 20);
                height = rnd.Next(10, 20);
                thirdEdge = rnd.Next(10, 20);
                Triangle t1 = new Triangle(width, height, thirdEdge);
                t1.ShowArea();
    
    
                Console.ReadKey();
            }
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月4日
  • 已采纳回答 8月27日
  • 创建了问题 8月27日

悬赏问题

  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 vue3加ant-design-vue无法渲染出页面
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏