C#编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出
2024-08-28 21:13:32
编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出
(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); }
}
}
运行结果:
最新文章
- norflash驱动编写笔记
- Service Broker应用(2):不同server间的数据传输,包含集群
- php版本引起的const问题
- object.bind()方法的低版本兼容
- ::after::before清除浮动原理
- <;转>;Hibernate的优、缺点(局限性)
- BZOJ 1087 题解【状压DP】
- wamp2.5虚拟站点建立
- sysbench测试服务器性能
- Linux 网卡驱动设备程序设计(1)
- mysql主从复制-linux版本
- 用Dockerfile构建docker image
- CodeIgniter学习一:基础知识
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- oracle 树形表结构查询 排序
- 最新的极光推送服务器端代码(java服务器后台向手机端自定义推送消息)
- 【Flask】 使用Flask-Moment进行日期时间的管理
- Ubuntu18.04多个版本GCC编译器的切换
- 1、mysql初识
- python 数据分析库介绍
热门文章
- svelte组件:Svelte3自定义Navbar+Tabbr组件|svelte自定义插件
- Java编程学习笔记(基础篇)
- LGP6008题解
- 新建vue3.0 项目—步骤详细介绍
- Net Framework 中托管代码与非托管代码的区别
- ASP.NET Core 6 Minimal API的模拟实现
- 4月2日 python学习总结
- 程序语言与编程实践4->; 蓝桥杯C/C++备赛记录2 | 第二周学习训练
- S2-045(RCE远程代码执行)
- [转载]详解ssh端口转发(二)