问题 D: 接口实例(C#,IShape)

题目描述

接口实例。接口和类如下图所示,根据给出代码,补写缺失的代码,然后在Program类的静态Main方法中验证所实现的类。

using System;
namespace Myinterface
{
    public interface IShape
    {
        double Perimeter();
        double Area();
    }
    class Circle : IShape
    {
        public double Radius { get; set; }
        public Circle(double r)
        {
            Radius = r;
        }
        public double Area()
        {
            return Math.PI * Radius * Radius;
        }
        public double Perimeter()
        {
            return 2 * Math.PI * Radius;
        }
    }
    class Rectangle : IShape
    {
            /////////////////////////////////////////////////////////////////
            
            //请填写代码,实现输出矩形的面积和周长

            /////////////////////////////////////////////////////////////////
        
    }

    class Program
    {
        static void Main(string[] args)
        {
            double w, h;
            double.TryParse(Console.ReadLine(), out w);
            double.TryParse(Console.ReadLine(), out h);
            Rectangle r = new Rectangle(w, h);
            Console.WriteLine("area={0},Perimeter={1}",r.Area(), r.Perimeter());
        }
    }
}

输入

输入矩形长、高,如
10
3

输出

area=30,Perimeter=26

样例输入

10
3

样例输出

area=30,Perimeter=26

提示

需要考虑输入非数字、负数等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Collections.Generic;
using System.Text;
 
namespace 接口实例
{
    public interface IShape
    {
        double Perimeter();
        double Area();
    }
    class Circle : IShape
    {
        public double Radius { get; set; }
        public Circle(double r)
        {
            Radius = r;
        }
        public double Area()
        {
            return Math.PI * Radius * Radius;
        }
        public double Perimeter()
        {
            return 2 * Math.PI * Radius;
        }
    }
    class Rectangle : IShape
    {
        public double Height { get; set; }
        public double Length { get; set; }
        public Rectangle(double l, double h)
        {
            Height = h;
            Length = l;
        }
        public double Area()
        {
            if (Height <= 0 || Length <= 0)
            {
                return 0;
            }
            return Height * Length;
        }
        public double Perimeter()
        {
            if (Height <= 0 || Length <= 0)
            {
                return 0;
            }
            return (Height + Length) * 2;
        }
 
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            double w, h;
            double.TryParse(Console.ReadLine(), out w);
            double.TryParse(Console.ReadLine(), out h);
            Rectangle r = new Rectangle(w, h);
            Console.WriteLine("area={0},Perimeter={1}", r.Area(), r.Perimeter());
        }
    }
}

  

posted @   青衫客36  阅读(391)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
历史上的今天:
2018-04-02 1070: 打印学生的数据记录
2018-04-02 2767: 指针引出奇数因子
2018-04-02 1004: 1、2、3、4、5...
2018-04-02 1003: Redraiment的遭遇
点击右上角即可分享
微信分享提示