编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出

(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 Lab06_2
{
public interface Ishape {
void initialize();
decimal getPerimeter();
decimal getArea();
}
public interface IDisplayresult {
void showResult(); }
public class Square:Ishape,IDisplayresult{
decimal l;
public void initialize() {
Console.WriteLine("请输入正方形边长:");
do
{
l = decimal.Parse(Console.ReadLine());
if (l <= 0)
{
Console.WriteLine("输入数据错误,请重新输入:");
}
} while (l <= 0);
}
public decimal getPerimeter()
{
return 4*l;
}
public decimal getArea()
{
return l*l;
}
public void showResult()
{
Console.WriteLine("该正方体的周长:{0}",getPerimeter());
Console.WriteLine("该正方体的面积:{0}", getArea());
}
}
public class Circle : Ishape, IDisplayresult
{
static decimal pi = 3.14M;
decimal r;
public void initialize()
{
Console.WriteLine("请输入圆形的半径:");
do
{
r = decimal.Parse(Console.ReadLine());
if (r <= 0)
{
Console.WriteLine("输入数据错误,请重新输入:");
}
} while (r <= 0);
}
public decimal getPerimeter()
{
return 2*r*pi;
}
public decimal getArea()
{
return pi * r * r;
}
public void showResult()
{
Console.WriteLine("该圆形的周长:{0}", getPerimeter());
Console.WriteLine("该圆形的面积:{0}", getArea());
}
}
class Program
{
static void Main(string[] args)
{
int i;
Square sq=new Square();
Circle cr=new Circle();
do
{
Console.WriteLine("请选择 1:正方形 2:圆形 3:退出");
i = int.Parse(Console.ReadLine());
switch (i)
{
case 1: sq.initialize(); sq.showResult(); break;
case 2: cr.initialize(); cr.showResult(); break;
case 3: Console.WriteLine("感谢您的使用!!!"); break;
default: Console.WriteLine("输入数据错误,请重新输入:"); break;
}
Console.Write("\n请按任意键继续...");
Console.ReadKey();
Console.Clear();
} while (i !=3); }
}
}

运行结果:

C#编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出的更多相关文章

  1. C#编写一个控制台应用程序,可根据输入的月份判断所在季节

    编写一个控制台应用程序,可根据输入的月份判断所在季节 代码: using System; using System.Collections.Generic; using System.Linq; us ...

  2. C#编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出

    编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出. 代码: using System; using System.Collections.Generic; using Syst ...

  3. H面试程序(1)编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的 下一秒

    编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒. 如输入 2004 年 12 月 31 日 23 时 59 分 59 秒,则输出 2005年 1 月 1 日 0 时 0 分 0 秒. ...

  4. C#设计编写一个控制台应用程序

    设计编写一个控制台应用程序,练习类的继承. (1) 编写一个抽象类 People,具有"姓名","年龄"字段,"姓名"属性,Work 方法. ...

  5. Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,

    36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口 ...

  6. Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    #29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...

  7. java基础,继承类题目:编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类 E

    21.编写一个Java应用程序,该程序包括3个类:Monkey类.People类和主类 E.要求: (1) Monkey类中有个构造方法:Monkey (String s),并且有个public vo ...

  8. 完全不借助VS,编写C#控制台应用程序

    (因为这个必须要借助控制台,所以必须是控制台应用程序) csc.exe是微软.NET Framework 中的C#编译器 步骤如下: 1)用记事本写一个控制台应用程序的代码,保存在E盘,test.cs ...

  9. 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */

    namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...

随机推荐

  1. Goland的GC回收机制

    Goland的GC回收机制 GC触发的条件 阈值:默认内存扩大一倍,启动gc 定期:默认2min触发一次gc,src/runtime/proc.go:forcegcperiod 手动:runtime. ...

  2. 基于消息队列(RabbitMQ)实现延迟任务

    一.序言 延迟任务应用广泛,延迟任务典型应用场景有订单超时自动取消:支付回调重试.其中订单超时取消具有幂等性属性,无需考虑重复消费问题:支付回调重试需要考虑重复消费问题. 延迟任务具有如下特点:在未来 ...

  3. 组合拳 | 本地文件包含漏洞+TFTP=Getshell

    文章声明 安全文章技术仅供参考,此文所提供的信息为漏洞靶场进行渗透,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作. 本文所提供的工具仅用于学习,禁止用于其他,未经授权,严禁转载,如需转 ...

  4. Kubernetes:服务与负载均衡

    Blog:博客园 个人 参考:Service | Kubernetes.<Kubernetes进阶实战> 有了 Workload,我们可以方便地管理多实例的应用,但是要想能够方便地访问应用 ...

  5. npm vue项目的创建

    一.创建项目之前需要先下载一个node.js 官方网址:https://nodejs.org/en/  二.创建 (1)建一个文件夹,进入这个文件夹输入cmd打开小黑窗: Vue.js文档:https ...

  6. 基于python 实现KNN 算法

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/7 14:50 # @Author : gylhaut # @Site ...

  7. SpringSecurity-5.11-课堂笔记-01

  8. 使用Resource文件实现应用程序多语言

    写在前面: 1.创建资源文件 资源文件命名规则为:文件名(自定义)+cultrueInfo.Name+.resx后缀名 如:A.en-US.resx A.zh-CN.resx 这样命名应用程序代码会根 ...

  9. Debian与Ubuntu到底有什么不同,应该如何选择?

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 在CentOS转向CentOS Stream之后,这意味着它将变得不可靠. 但是幸好,仍然有非常优秀的Linux发行版本在等我们.其中比较有知名度 ...

  10. Ubuntu18.04..5 配置国内镜像源:解决E: Failed to fetch

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 问题描述 使用 sudo apt get-install 出现 E: Failed to fetch问题. 更换镜像源 错误原因:绝大多数情况下, ...