一.程序要求

求三角形的面积,要求用“方法的参数数组”、“接口”、“构造函数”、“类继承”、至少四种方法实现三角形的面积的方法。

二.代码部分

using System;
using System.Xml.Linq;interface IPartOne
{void GetArea(double[] Area);
}
public class Sharp
{public double side1;public double side2;public double side3;public double bottom;public double top;public double angle;public double r;public double p;public double HalfPerimeter(){return (side1 + side2 + side3) / 2;}
}
class Method1 : Sharp, IPartOne
{public void GetArea(double[] Area){Sharp sharp1 = new Sharp();door:Console.WriteLine("请输入三边:");sharp1.side1 = Double.Parse(Console.ReadLine());sharp1.side2 = Double.Parse(Console.ReadLine());sharp1.side3 = Double.Parse(Console.ReadLine());if (sharp1.side1 + sharp1.side2 > sharp1.side3 && sharp1.side1 + sharp1.side3 > sharp1.side2 && sharp1.side2 + sharp1.side3 > sharp1.side1){double p = sharp1.HalfPerimeter();Area[0] = Math.Sqrt((p - sharp1.side1) * (p - sharp1.side2) * (p - sharp1.side3) * p);}else{Console.WriteLine("不存在该三角形 请重新输入");goto door;}}
}class Method2 : Sharp, IPartOne{public void GetArea(double[] Area){Console.WriteLine("请输入三角形的底和高:");Sharp sharp2 = new Sharp();sharp2.bottom = Double.Parse(Console.ReadLine());sharp2.top = Double.Parse(Console.ReadLine());Area[0] = (sharp2.top * sharp2.bottom) / 2;}}class Method3 : Sharp, IPartOne{public void GetArea(double[] Area){Console.WriteLine("请输入三角形的两边和夹角:");Sharp sharp3 = new Sharp();sharp3.side1 = Double.Parse(Console.ReadLine());sharp3.side2 = Double.Parse(Console.ReadLine());sharp3.angle = Double.Parse(Console.ReadLine());Area[0] = (sharp3.side1 * sharp3.side2 * Math.Sin((Math.PI / 180.0) * sharp3.angle)) / 2;}}class Method4 : Sharp, IPartOne{public void GetArea(double[] Area){Console.WriteLine("请输入三角形周长和内切圆半径:");Sharp sharp4 = new Sharp();sharp4.p = Double.Parse(Console.ReadLine());sharp4.r = Double.Parse(Console.ReadLine());Area[0] = (sharp4.r * sharp4.p) / 2;}}class Init{public bool InitFunc(){double[] Area = new double[1];Console.WriteLine("-----------------------------------------------------");Console.WriteLine("1.已知三边");Console.WriteLine("2.已知底和高");Console.WriteLine("3.已知两边以及夹角(角度制)");Console.WriteLine("4.已知三角形周长以及内切圆半径");Console.WriteLine("0.Exit");string s = Console.ReadLine();int a = Convert.ToInt32(s);switch (a){case 1:Method1 method1 = new Method1();method1.GetArea(Area);break;case 2:Method2 method2 = new Method2();method2.GetArea(Area);break;case 3:Method3 method3 = new Method3();method3.GetArea(Area);break;case 4:Method4 method4 = new Method4();method4.GetArea(Area);break;case 0:Console.WriteLine("程序已退出");return false;default:Console.WriteLine("输入错误 请重新输入");return true;}Console.WriteLine("面积是:{0}", Math.Round(Area[0], 3));return true;}}class Progremme{static void Main(){Init init = new Init();bool flag = true;while (flag){flag = init.InitFunc();}}}

三.程序说明

接口部分:IPartOne

类:形状Sharp、四种计算三角形的方法Method1-4(分别继承基类Sharp和接口)

用C#编写三角形面积计算程序(附源码)相关推荐

  1. Swing俄罗斯游戏编写详解(附源码)

    2019独角兽企业重金招聘Python工程师标准>>> 俄罗斯方块游戏是一个上手简单,老少皆宜的游戏,它的基本规则是移动.旋转和摆放游戏自动产生的各种方块,使之排列成完整的一行或多行 ...

  2. C#编写数据分析软件(附源码)

    这几天给开源彻底洗脑.东西就不多介绍了,现在源码分享出,之前写过几篇文章,这里给个传送们 MyTask1:  http://blog.csdn.net/k183000860/article/detai ...

  3. Web酒店管理系统(附源码及资源)

    Web酒店管理系统(附源码及资源) 一.系统概述: 二.系统功能分析 三.系统主要内容: 四.源码下载 五.总结 一.系统概述: 该系统通过Sublime Text编辑器编写完成,涉及到了htnl.c ...

  4. C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码...

    原文:C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github. ...

  5. cesium多边形描边_Cesium专栏-地形开挖2-任意多边形开挖(附源码下载)

    "任意多边形地形开挖" 是"地形开挖"的补充篇,在这节里,我们介绍关于如何使用任意多边形对地形进行开挖,同时,由于有不少小伙伴也咨询了关于"地形开挖& ...

  6. Django集成Markdown编辑器【附源码】

    专注内容写作的你一定不要错过markdown 简单介绍 markdown是一种标记语言,通过简单的标记语法可以使普通的文本内容具有一定的格式,使用非常简单,学习成本极低 目前各大Blog平台都已支持m ...

  7. 疯狂python讲义视频 百度云-疯狂Python讲义 PDF高清版附源码

    内容简介 本书全面,深入地介绍了Python编程的相关内容,大致可分为四个部分.*系统部分介绍了Python的基本语法结构,函数编程,类和对象,模块和包,异常处理等: 第二部分主要介绍Python常用 ...

  8. DSP:6678开发板NDK网口通信完整实现(附源码)

    如果出现图片打不开,或是显示异常,请点击下方链接阅读原文!!! DSP:6678开发板NDK网口通信完整实现(附源码) - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/ ...

  9. 8个前沿的 HTML5 CSS3 效果【附源码下载】

    作为一个前沿的 Web 开发者,对于 HTML5 和 CSS3 技术或多或少都有掌握.前几年这些新技术刚萌芽的时候,开发者们已经使用它们来小试牛刀了,如今这些先进技术已经遍地开发,特别是在移动端大显身 ...

最新文章

  1. 查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究
  2. gatb_core_components
  3. mongodb可视化工具连接报错
  4. kubernetes相关概念
  5. Web2.0时代,你得到什么?
  6. WEKA The workbench for machine learning
  7. 如何自行分析定位SAP BSP错误
  8. .NET Core完成向RyuJIT的迁移
  9. 两个富翁打赌_打赌您无法解决这个Google面试问题。
  10. linux如何调试脚本程序,调试Linux shell脚本的方法
  11. skyline 系列 1 - 简介、下载
  12. 基于鱼群算法的函数寻优
  13. 计算机表格怎么添加单下划线,如何在excel表格中添加并设置下划线
  14. 成长,从你发现自己写的代码很LOW开始
  15. 查看Win10序列号
  16. c语言程序设计学校运动会管理系统,C++实现学校运动会管理系统
  17. python分词考研英语真题词频(附结果)——读取word、nltk、有道智云API
  18. 第三方服务(文件,图片存储)
  19. 已有域名,如何建站。
  20. nth-child 与 nth-of-type

热门文章

  1. Ubuntu 查看电池损耗
  2. 卡尔曼滤波器 误差协方差矩阵
  3. 使用预训练语言模型预测阶段:GPU、CPU性能差别【Pegasus】
  4. 数学公式和符号的念法
  5. 西门子et200 分布式i/o_你真的了解西门子Profinet吗?从RT切换到IRT出问题
  6. 今日财富杂志今日财富杂志社今日财富编辑部2022年第21期目录
  7. nanomsg----pair1 的介绍
  8. 求解平稳分布matlab,随机过程课程设计--应用马尔科夫链的平稳分布预测空调市场的占有率.doc...
  9. SAP ABAP基础
  10. 数据结构清华大学公开课