设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形
2012-03-28 17:40
573 查看
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 苗影
* 完成日期: 2012 年 3 月 28 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
经验积累:
复杂的问题可以分步解决,用点构成的三角形,就要先把相关点的计算单独构造函数
看似复杂的问题其实很简单,生活也是这样。
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 苗影
* 完成日期: 2012 年 3 月 28 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#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);// 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; } void CPoint::input() //输入坐标点 { char ch; cout<<"请输入坐标点(格式x,y ):"; while(1) { cin>>x>>ch>>y; if (ch==',') break; cout<<"输入的数据格式不符合规范,请重新输入"; } } // 输出坐标点 void CPoint::output() { cout<<"("<<x<<", "<<y<<")"; } double CPoint :: distance(CPoint p) const // 两点之间的距离 { double h; h=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)); return h; } void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z) { A=X; B=Y; C=Z; } float CTriangle ::perimeter(void)//求周长 { float s; s=A.distance(B)+B.distance(C)+C.distance(A); return s; } float CTriangle::area(void)//求面积 { float h,t,a,b,c; a=A.distance(B); b=B.distance(A); c=C.distance(A); { t=(a*a+b*b-c*c)/(2*a*b); h=(sqrt(1-t*t)*a*b)/2; } return h; } bool CTriangle:: isRightTriangle() { double a,b,c; a=A.distance(B); b=B.distance(A); c=C.distance(A); if((abs(a*a-b*b-c*c)<1e-7)||(abs(b*b-a*a-c*c)<1e-7)||(abs(c*c-b*b-a*a)<1e-7)) return true; else return false; } bool CTriangle::isIsoscelesTriangle() { double a,b,c; a=A.distance(B);
b=B.distance(A); c=C.distance(A); if(a==b||b==c||a==c) return true; else return false; } void main(void) { CTriangle T(CPoint(1,4),CPoint(1,2),CPoint(4,5)); cout<<"三点所构成的三角形周长是:"<<T.perimeter()<<endl; cout<<"三点所构成的三角形面积是:"<<T.area()<<endl; cout<<"这三点所构成的"<<(T.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl; cout<<"这三点所构成的"<<(T.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl; }
经验积累:
复杂的问题可以分步解决,用点构成的三角形,就要先把相关点的计算单独构造函数
看似复杂的问题其实很简单,生活也是这样。
相关文章推荐
- 设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 《C++第六周实验报告4-1》---设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- C++第六周任务4设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 第六周任务四设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 第六周实验指导--任务五--设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长。
- 第六周实验指导--任务四--设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长。
- 第六周实验报告 任务4 设计一个三角形类 输入三角形的三个顶点 求面积周长
- 控制台输入三条边长,判断是否能构成三角形。如果能构成,输出三角形的周长,并且告知该三角形是什么类型(锐角、直角、钝角),再判断下该三角形是 等腰、等边还是不等边三角形。
- 判断输入的三个数据是否可以构成一个三角形
- 判断一个点是否在三角形内(面积法,三个点求三角形面积)
- 判断三个数是否能够组成一个三角形
- 我要学C#语言程序设计【解题篇】(二):输入三个整数,判断是否能够组成三角形
- 一个窗口,用户输入三个数,你判断能否构成三角形以及面积
- 输入三个坐标,判断能否构成三角形,如果能,输出其周长和面积。
- 4.设计一个Email邮箱注册应用程序。要求:用户输入完成单击“立即注册”按,判断“密码”和“确认密码”文本框内容是否一致,如果一致在立即注册按钮上方显示用户输入的邮件地址,运行结果如图所示。
- 输入三个点的坐标,实现判断此三角形是不是直角三角形,并输出此三角形的周长。
- 从键盘输入三个整数,判断是否能构成三角形
- 写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,
- 判断三个参数是否能构成一个三角形
- 从键盘任意输入三角形的三边长为a,b,c,编程判断a,b,c的值能否构成一个三角形,若能,请算出面积·若不能就输出不能构成三角形。