《C++第六周实验报告4-1》---设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
2012-03-26 21:46
561 查看
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: CTriangle.cpp * 作 者: 计114-3 王兴锋 * 完成日期: 2012年 3 月 26 日 * 版 本 号: V 1.0 * 对任务及求解方法的描述部分 * 输入描述: 输入三角形的三个顶点 * 问题描述: (1)这个问题需要用到两个类,顶点类参照任务3中的CPoint类; (2)三角形类参考下面CTriangle类的声明; (3)充分利用CPoint类中已有的代码实现; (4)关于三条边的处理,可以增加三个私有属性,在初始化时求出来备用,也可以在需要时计算得到。 * 程序输出: 求出其面积、周长,并判断其是否为直角三角形和等腰三角形。 * 程序头部的注释结束 */ #include <iostream> #include <cmath> using namespace std; class CPoint { private: float x; // 横坐标 float y; // 纵坐标 public: CPoint(float xx = 0, float yy = 0); float Distance(CPoint p) const; // 两点之间的距离(一点是当前点,另一点为参数p) void input(); //以x,y 形式输入坐标点 void output(); //以(x,y) 形式输出坐标点 }; CPoint::CPoint(float xx, float yy) { x = xx, y = yy; } float CPoint::Distance(CPoint p) const { return sqrt((p.x-x)*(p.x-x) + (p.y-y)*(p.y-y)); } void CPoint::input() { char ch; do{ cout << "请输入点的坐标(例:x,y):" << endl; cin >> x >> ch >> y; }while(ch != ','); } void CPoint::output() { cout << "(" << 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; //三顶点 }; void CTriangle::setTriangle(CPoint &X, CPoint &Y, CPoint &Z) { A = X, B = Y, C = Z; } float CTriangle::perimeter(void) { return (A.Distance(B) + B.Distance(C) + C.Distance(A)); } float CTriangle::area(void) { float AB = A.Distance(B), BC = B.Distance(C), AC = A.Distance(C); float p = (AB + BC + AC)/2; return (sqrt(p * (p-AB) * (p-BC) * (p-AC))); } bool CTriangle::isRightTriangle() { float AB = A.Distance(B), BC = B.Distance(C), AC = A.Distance(C); return (AB*AB + BC*BC == AC*AC || AB*AB + AC*AC== BC*BC || AC*AC + BC*BC == AB*AB); } bool CTriangle::isIsoscelesTriangle() { float AB = A.Distance(B), BC = B.Distance(C), AC = A.Distance(C); return (AB == AC || AB == BC || AC == BC); } int main() { CPoint a(0, 0), b(1, 1), c(0, 2);//定义三个点 CTriangle ct(a, b, c); a.output(), b.output(), c.output(); cout << "构成的三角形:" << endl; cout << "周长为:" << ct.perimeter() << endl; cout << "面积为:" << ct.area() << endl; cout << (ct.isRightTriangle() ? "是" : "不是") << "直角三角形。" << endl; cout << (ct.isIsoscelesTriangle() ? "是" : "不是") << "等腰三角形。" << endl; cout << endl; CPoint a2(0, 0), b2(0, 3), c2(4, 0);//定义三个点 CTriangle ct2(a2, b2, c2); a2.output(), b2.output(), c2.output(); cout << "构成的三角形:" << endl; cout << "周长为:" << ct2.perimeter() << endl; cout << "面积为:" << ct2.area() << endl; cout << (ct2.isRightTriangle() ? "是" : "不是") << "直角三角形。" << endl; cout << (ct2.isIsoscelesTriangle() ? "是" : "不是") << "等腰三角形。" << endl; system("PAUSE"); return 0; } /* 这个题目更深度的体现了对象。 并将一个对象与另一个对象相联系。 两个对象的方法巧妙的结合,灵活调用。 能实现很好的功能。 类,是个好东西。 得好好学啊。哈哈、、、 */
相关文章推荐
- C++第六周任务4设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 第六周任务四设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形
- 设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 第六周实验指导--任务五--设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长。
- 第六周实验指导--任务四--设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长。
- 第六周实验报告 任务4 设计一个三角形类 输入三角形的三个顶点 求面积周长
- 利用5个标签,4个文本框,2个按钮,自己设计布局实现输入三边求三角形面积。界面如下所示。三角形类的编写可以使用实验4中已经写过的三角形类,当点击“判断三边”时,若能构成三角形,在标签5上显示“可以构成三角形!”,如不能构成三角形,在标签5上显示“不能构成三
- 控制台输入三条边长,判断是否能构成三角形。如果能构成,输出三角形的周长,并且告知该三角形是什么类型(锐角、直角、钝角),再判断下该三角形是 等腰、等边还是不等边三角形。
- 我要学C#语言程序设计【解题篇】(二):输入三个整数,判断是否能够组成三角形
- 《C++第九周实验报告4-1》---建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数, //完成矩阵的输入、输出、加、减、相等判断等操作。
- 一个窗口,用户输入三个数,你判断能否构成三角形以及面积
- 第六周任务四。用三角形的三个顶点 求出其面积 周长
- 输入三个坐标,判断能否构成三角形,如果能,输出其周长和面积。
- 判断三个数是否能够组成一个三角形
- 判断输入的三个数据是否可以构成一个三角形
- 判断一个点是否在三角形内(面积法,三个点求三角形面积)
- 输入任意3个整数 判断是否能组成三角形 它的面积是多少?
- 写一个方法void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形,、。。。。。
- 判断三个参数是否能构成一个三角形