关闭

第六周任务5(判断三角形是什么三角形)

标签: 任务distanceiostreamoutputcinput
472人阅读 评论(0) 收藏 举报
分类:
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:                              
* 作    者:   臧鹏               
* 完成日期:   2012   年  3 月   27   日
* 版 本 号:          

* 对任务及求解方法的描述部分
* 输入描述: 
* 问题描述:设计一个三角形类,能够输入三角形的三个顶点,求出其面积和周长,并判断是否为直角三角形和等腰三角形,利用多个文件 
* 程序输出: 
* 程序头部的注释结束
*/

//CTriangle.h


#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 input();  //以x,y 形式输入坐标点  
	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);//  
	double perimeter(void);//计算三角形的周长  
	double area(void);//计算并返回三角形的面积  
	bool isRightTriangle(); //是否为直角三角形  
	bool isIsoscelesTriangle(); //是否为等腰三角形  
private:  
	CPoint A,B,C; //三顶点  
};  

//CPoint.cpp

CPoint::CPoint(double xx,double yy)  
{  
	x=xx;  
	y=yy;  
}  

// 输入坐标点  
void CPoint::input()  
{  
	char a;  
	cout<<"请输入坐标点(格式x,y ):";  
	while(1)  
	{  
		cin>>x>>a>>y;  
		if (a==',') break;  
		cout<<"输入的数据格式不符合规范,请重新输入\n";  
	}  
}  

// 输出坐标点  
void CPoint::output()  
{  
	cout<<"("<<x<<","<<y<<")"<<endl;  
}  

// 求两点之间的距离  
double CPoint::distance(CPoint p) const  
{  
	return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
} 

//CTriangle.cpp 

void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z)  
{  
	A=X;  
	B=Y;  
	C=Z;  
}  

double CTriangle::perimeter(void)    
{    
	double a=B.distance(C),b=C.distance(A),c=A.distance(B); //求边长  
	return (a + b + c);    
}    

double CTriangle::area(void)    
{    
	double a=B.distance(C),b=C.distance(A),c=A.distance(B);  
	double s = (a + b + c) / 2;      
	return sqrt(s * (s - a) * (s - b) * (s - c));     
}   

bool CTriangle::isRightTriangle()//是否为直角三角形  
{  
	double a=B.distance(C),b=C.distance(A),c=A.distance(B);  
	if((abs(a*a-b*b-c*c)<1e-6)||(abs(b*b-a*a-c*c)<1e-6)||(abs(c*c-b*b-a*a)<1e-6))  
		return true;  
	else  
		return false;  
}  
bool CTriangle::isIsoscelesTriangle() //是否为等腰三角形  
{  
	double a=B.distance(C),b=C.distance(A),c=A.distance(B);  
	if((abs(a-b)<1e-6)||(abs(b-c)<1e-6)||(abs(c-a)<1e-6))  
		return true;  
	else  
		return false;  
}  


//main.cpp
void main(void)  
{  
	CTriangle Tri1(CPoint(0,0),CPoint(5,0),CPoint(0,5));    //定义三角形类的一个实例(对象)  
	cout<<"该三角形的周长为:"<<Tri1.perimeter()<<",面积为:"<<Tri1.area()<<endl<<endl;  
	cout<<"该三角形"<<(Tri1.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl;  
	cout<<"该三角形"<<(Tri1.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;  
	system("pause");  
}  


上机感言:

多文件包含其实要比用一个文件写到底好用,一是调理,特别是行数较多时,找错误也方便,二是好看,用项目多文件也是以后的需要,所以,以后尽量用多文件包含的方法

0
0
查看评论

Python判断三角形

#Copyright (c)2017, 东北大学软件学院学生 # All rightsreserved #文件名称:a.py # 作 者:孔云 #问题描述:编写程序,从键盘输入三条边,判断是否能够构成一个三角形。 #问题分析:组成三角形的条件是任意两边之和大于第三边,如果条件成立,...
  • u012369559
  • u012369559
  • 2017-09-13 15:57
  • 1030

一个简单的判断三角形形状的C程序

昨天写了一个判断三角形形状的程序,然后EZ发现了里面的无数个问题。 原本我的程序是 #include int main() { int a,b,c; scanf("%d,%d,%d",&a,&b,&c); if(a+b>c...
  • u013798387
  • u013798387
  • 2014-04-22 10:05
  • 2246

C++判断三角形

#include using namespace std; int main() {     double a,b,c;     int n,i;     cin>>n;  ...
  • u013602059
  • u013602059
  • 2014-02-06 11:47
  • 870

JAVA判断三角形的类型

JAVA判断三角形的类型
  • yuxiangaaaaa
  • yuxiangaaaaa
  • 2017-10-20 09:58
  • 475

判断两三角形是否相交

1,原理:在上篇文章中我们可以判断点是否在三角形内。这张判断两三角形是否相交,只需要判断三角形A的三个顶点不在三角形B内,三角形B的三个顶点不在三角形A则满足两三角形相离 代码如下:// test project main.go package main import ( "fmt&q...
  • shuanger_
  • shuanger_
  • 2015-07-27 11:01
  • 674

C语言 输入三角形的三边,判断三角形的类型,并输出它的类型和面积

输入三角形的三边,判断三角形的类型,并输出它的类型和面积  #include #include int main() { double a,b,c; double p,area; printf("请输入三角形的三边:\n"); scanf("...
  • Yangjiankang_0929
  • Yangjiankang_0929
  • 2015-04-05 08:40
  • 7267

检测两个三角形是否有重叠面积/相交的方法

为什么要写这篇文章呢? 在宾夕法尼亚大学的路径规划公开课第二周的课程中, 宾夕法尼亚大学Coursera运动规划公开课学习有感之二提到的那一周的作业用到的知识. 这个问题看似简单, 但是着实花了很长时间去想. 而且, 自己拍脑袋想的东西不一定完善, 方法总是有漏洞. 所以, 最后还是去Stack O...
  • yessharing
  • yessharing
  • 2017-02-15 23:12
  • 2393

UVA 11275 判断空间三角形是否相交

题意:训练指南292页#include#includeusing namespace std;struct Point3 { double x, y, z; Point3(double x=0, double y=0, double z=0):x(x),y(y),z(z) { } void r...
  • smilesundream
  • smilesundream
  • 2017-05-20 10:09
  • 191

C语言:判断三角形的类型

根据输入的三角形的三边判断三角形的类型,并输出其面积和类型。 #include #include #include int main() { float a, b, c; float s, area; printf("please input three line:\n")...
  • TwinkleCapricorns
  • TwinkleCapricorns
  • 2016-09-26 21:04
  • 3514

C语言(16)判断三角形

描述   小明非常喜欢研究三角形。现在,小明已经知道三角形的三条边,如果三条边能组成三角形,小明就会很高兴,他就会得到一个“YE”,如果他经过进一步的研究知道它又是等腰三角形, 他又会得一个“YE”,他再次研究出它又是一个等边三角形,当然,他又会得到一个“YE”。 小明当然不想自己判...
  • qq_36288184
  • qq_36288184
  • 2017-08-09 09:19
  • 243
    个人资料
    • 访问:317425次
    • 积分:4546
    • 等级:
    • 排名:第7762名
    • 原创:138篇
    • 转载:7篇
    • 译文:0篇
    • 评论:30条
    文章分类
    最新评论