第六周项目四_private int nl_triangle = 0; private int is_triang-程序员宅基地

技术标签: C++  

/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: 三角形类.cpp
* 作者:李巧丽
* 完成日期: 2013年4月8日
* 版本号: v1.0
* 输入描述:无
* 问题描述:设计求三角形周长和面积的类。
* 程序输出:三角形的周长和面积
*/
#include <iostream>
#include <cmath>
using namespace std;
class CPoint
{
private:
    double x;       //横坐标
    double y;       //纵坐标
public :
    CPoint(double xx=0,double yy=0);
	double Distance(CPoint p) const;        //求两点之间的距离
    void intput();                          //输入点的坐标
	void output();                          //以(x,y) 形式输出坐标点

};
class CTriangle
{
public:
    CTriangle(CPoint &X,CPoint &Y,CPoint &Z):A(X),B(Y),C(Z){} //给出三点的构造函数
    void setTriangle(CPoint &X,CPoint &Y,CPoint &Z);//
    float perimeter(void);//计算三角形的周长
    float area(void);//计算并返回三角形的面积
    bool isRightTriangle(); //是否为直角三角形
    bool isIsoscelesTriangle(); //是否为等腰三角形
private:
    CPoint A,B,C; //三顶点
};
CPoint::CPoint(double xx,double yy)
{
	x=xx;
	y=yy;
}
// 求两点之间的距离
double CPoint::Distance(CPoint p) const
{
   return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
}
//输入坐标点
void CPoint::intput()
{
    char ch;
    cout<<"请按(x,y)的格式输入三角形的顶点:";
    while(1)
  {
    cin>>x>>ch>>y;
    if (ch==',') break;
    cout<<"输入的数据格式不符合规范,请重新输入\n";
  }
}
// 输出坐标点
void CPoint::output()
{
    cout<<"("<<x<<", "<<y<<")"<<endl;
}
//类的初始化
void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z)
{
	A=X;
	B=Y;
	C=Z;
}
//计算三角形周长
float CTriangle::perimeter(void)
{
	double a,b,c;
	a=B.Distance(C);
	b=C.Distance(A);
	c=A.Distance(B);
	return a+b+c;
}
//求三角形的面积
float CTriangle::area(void)
{
	double a=B.Distance(C),b=C.Distance(A),c=A.Distance(B);
	double p=(a+b+c)/2;
	return sqrt(p*(p-a)*(p-b)*(p-c));
}
//判断是否为直角三角形
bool CTriangle::isRightTriangle()
{
	double a=B.Distance(C),b=C.Distance(A),c=A.Distance(B);
	if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
	{
		return true;
	}
	else
		return false;
}
//是否为等腰三角形
bool CTriangle::isIsoscelesTriangle()
{
	double a=B.Distance(C),b=C.Distance(A),c=A.Distance(B);
	if((a==b)||(a==c)||(b==c))
	{
		return true;
	}
	else
		return false;
}
int main()
{
	CPoint X,Y,Z;
	X.intput();
    Y.intput();
    Z.intput();
	CTriangle Tri1(X,Y,Z);  //定义三角形类的一个实例(对象)
	cout<<"该三角形的周长为:"<<Tri1.perimeter()<<",面积为:"<<Tri1.area()<<endl<<endl;
	cout<<"该三角形"<<(Tri1.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl;
    cout<<"该三角形"<<(Tri1.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;
    return 0;
}

运行结果:

心得体会:用const还是不怎么熟练呐,差一点掉迷糊阵去!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lql19931103/article/details/8771085

智能推荐

JVM——Java Virtual Machine Garbage Collection (Java 虚拟机 垃圾回收原理以及性能调优)_java虚拟机-垃圾回收及性能调优-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏2次。本篇内容:Java Virtual Machine Garbage Collection (Java 虚拟机 垃圾回收)~ 文章专栏:JVM深入挖掘原理调优 更新周期:2022年4月16日 ~ 2022年4月24日个人简介:一只二本院校在读的大三程序猿,本着注重基础,打卡算法,分享技术作为个人的经验总结性的博文博主,虽然可能有时会犯懒,但是还是会坚持下去的,如果你很喜欢博文的话,建议看下面一行~(疯狂暗示QwQ)点赞 收藏 留言 一键三连 关爱程序猿,从你我做起本文目录._java虚拟机-垃圾回收及性能调优

Hexo+Yilia搭建github Pages个人博客_hexo+yilia点击随笔出现错误cannot get /tags/%e9%9a%8f%e7%ac-程序员宅基地

文章浏览阅读2.9k次。作为一个前端攻城狮,总有一个博客梦,想做一个好看的,有特色的博客,又不想从头开始造轮子,偶然的一天看到了别人用github pages搭的个人博客页,十分简洁大气,遂问了搭建方法,自己开始尝试,中途踩了不少的坑,花了半天的时间,看了这篇博客的亲们,肯定不会超过一个小时。_hexo+yilia点击随笔出现错误cannot get /tags/%e9%9a%8f%e7%ac%94/

Allocation failed - JavaScript heap out of memory-程序员宅基地

文章浏览阅读1.1k次。"分配失败 - JavaScript 堆内存不足" 这个错误消息表明你的 JavaScript 程序试图分配了太多内存,超出了 Node.js 可用的内存限制。你可以通过增加 Node.js 可用的内存限制来解决这个问题,例如通过命令行参数 --max-old-space-size。..._allocation failed - javascript heap out of memory

基于STM32单片机车牌识别系统摄像头图像处理光敏控灯设计22-030_stm32 摄像头识别车牌-程序员宅基地

文章浏览阅读318次,点赞9次,收藏7次。22-030、STM32单片机设计车牌识别系统摄像头图像处理系统设计光敏自动控制led开关设计产品功能描述:本系统有STM32F103RCT6单片机核心板、2.8寸TFT液晶屏显示、摄像头图像采集OV7670、蜂鸣器、LED电路、光敏电阻采集光照电路、组成。1、stm32单片机通过摄像头采集图像,并实时驱动TFT液晶屏显示相应图像。2、stm32单片机通过模式识别、匹配货的车牌的识别结果,并在屏幕上进行显示。3、识别主要过程包括图像采集、二值化分析、识别车牌区域、字符分割、字符匹配五个过程。4、车牌锁定后会_stm32 摄像头识别车牌

字节跳动测试工程师笔试题(2020研发笔试第一批——20200809)-程序员宅基地

文章浏览阅读4.5k次,点赞3次,收藏7次。测试岗的笔试题——四道编程题!!!!没错,就是四道编程题!!!什么都不能阻止我吐槽!!!字节跳动的出题官!良心何在?!!!一、完美字符串呵呵……这一题告诉我,字符串的坑是踩不完的?!二、最优连续子序列……三、塔罗牌n张牌,选出x张排成一排,要求牌的高和宽都比前一张的大,符合要求的选择中,x最大为多少?四、工厂产品?……大脑已无法运转,连题目都看不进去了……鬼知道是什么!!!..._字节跳动测试工程师笔试题

layui.open 传值_layui admin.open-程序员宅基地

文章浏览阅读4k次。场景:在文章编辑页面中点击插入图片按钮,弹出新窗口,完成选择后再获取选定的图片主窗口:{extend name="base/base" /}{block name="main"}<form id="form" method="post" class="layui-form layui-form-pane" action="{:url('/admin/article_chan..._layui admin.open

随便推点

【插播】PyCharm如何新建项目&汉化_pcharm新建python文件可以中文命名吗-程序员宅基地

文章浏览阅读302次。2」搜“中文语言包”,下C开头的那个。现在开始新建项目,点“新建项目”。先汉化,因为这样后面好弄。「1」点击Plugins。直接点“创建”,就可以了。「3」静待下载完毕。然后点Install。_pcharm新建python文件可以中文命名吗

中科方德服务器操作系统安装zabbix5(1),重难点整理-程序员宅基地

文章浏览阅读723次,点赞29次,收藏9次。【代码】中科方德服务器操作系统安装zabbix5(1),重难点整理。

Android错误之​error loading /system/media/audio/ui/Effect_Tick.ogg_/system/media/audio/ui/effect_tick.ogg: open faile-程序员宅基地

文章浏览阅读8.8k次。推荐资源站:https://zhimalier.com/原因: 创建调试了多个项目,产生了N多个log文件,这些文件可能产生了影响。解决: 重新建一个avd调试,若还是没解决,删除avd重启开发工具,建立avd再调试..._/system/media/audio/ui/effect_tick.ogg: open failed: enoent (no such file or

Python+Selenium基础篇之2-打开和关闭火狐浏览器_selenium打开火狐浏览器-程序员宅基地

文章浏览阅读1.1k次。版权声明:本文为CSDN博主「Anthony_tester」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/u011541946/article/details/64129041本节介绍如何初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器。要用selenium打开fiefox浏览器。首先需要去下载一个driver插件geckodriver.exe, 下载地址https://gith_selenium打开火狐浏览器

Unity Error—— XR OpenVR Error! 108 报错 解决方案_hmd not found(108)-程序员宅基地

文章浏览阅读5.1k次,点赞4次,收藏2次。错误描述:Unity XR: OpenVR Error! OpenVR failed initialization with error code VRInitError_Init_HmdNotFound: “Hmd Not Found (108)”!产生原因:VR项目由HTC设备 改成PICO 设备.在PICO 运行时报错,并自动调用SteamVR应用.尝试关闭BuildSettings-PlayerSettings-XRSettings 关闭VirtualRealitySupported 无效果._hmd not found(108)

nuxt静态部署_nuxt静态部署打包相对路径操作-程序员宅基地

文章浏览阅读1k次。以往在nuxt项目中,打包静态化部署的的文件如下:路径为绝对路径,当项目的域名为二级域名的时候,就不能打包为这绝对路径了。nuxt不同于vue项目,思索了许久,终于找到了配置的地方:nuxt项目中 nuxt.config.js :module.exports = {router: {base: "./"}}打包后的文件:补充知识:nginx部署,nuxt静态部署,路由跳转失效的问题nuxt静态部署..._nuxt3 服务端 静态打包 路由拦截

推荐文章

热门文章

相关标签