当前位置: 首页>C++>正文

組合體的組合類型有哪兩類,C++實驗03(03)組合類:Triangle類與Point類

組合體的組合類型有哪兩類,C++實驗03(03)組合類:Triangle類與Point類

題目描述
定義一個平面坐標系下的點類Point,有整型數據成員x,y坐標值。成員函數包括:(1)帶默認值的構造函數,默認值均為0;(2)拷貝構造函數;(3)置x,y坐標值;(4)取x,y的坐標值,參數為兩個整型量的引用,分別用于獲取x,y坐標值。(5)輸出函數,用于輸出x,y坐標值。(6)求兩個點之間距離的函數,參數是Point類的對象引用。
定義一個平面坐標系下的三角形類Triangle,數據成員為三個Point類的對象p1、p2、p3。成員函數包括:(1)帶參數的構造函數,參數為整型量x1,y1,x2,y2,x3,y3,分別是三角形三個頂點的坐標。(2)帶參數的構造函數,參數是三個Point類對象的引用。(3)求三角形周長。(4)求三角形面積。(5)輸出三角形的三個頂點坐標、周長和面積。
定義一個普通函數:判斷三個頂點坐標能否構成三角形。
main()中,從鍵盤輸入三個點坐標,判斷這三個點能否構成三角形,不能,則提示重新輸入,并重新輸入點坐標;能,則輸出三個頂點坐標、周長和面積。
輸入描述
三個點的坐標,如果不能構成三角形,再重新輸入三個點的坐標
輸出描述
三個頂點坐標
三角形周長、三角形面積
輸入樣例
0 0
1 1
2 2

組合體的組合類型有哪兩類,0 0
5 6
3 0
輸出樣例
頂點坐標不正確,不能構成三角形!請重新輸入坐標!
三角形三個頂點坐標為:
(0,0) (5,6) (3,0)
三角形周長為:17.1348,面積為:9

#include<iostream>
#include<cmath>
using namespace std;
class Point
{
public:Point(int a=0,int b=0){x=a;y=b;}Point(const Point &a)//拷貝構造函數{x=a.x;y=a.y;}void input(){cin>>x>>y;}int getx(int &x){return x;}int gety(int &y){return y;}void output(){cout<<"("<<x<<","<<y<<")";}double distance(Point &a){double dx=x-a.x,dy=y-a.y;return sqrt(dx*dx+dy*dy);}
private:int x,y;
};
class Triangle
{
public:Triangle(int x1,int y1,int x2,int y2,int x3,int y3){A=(x1,y1);B=(x2,y2);C=(x3,y3);}Triangle(Point &a,Point &b,Point &c){A=a;B=b;C=c;}double Len(){return A.distance(B)+B.distance(C)+C.distance(A);}double Area(){double s=Len()/2.0;return sqrt(s*(s-A.distance(B))*(s-B.distance(C))*(s-C.distance(A)));}void output(){	cout<<endl<<"三角形周長為:"<<Len()<<",面積為:"<<Area();}
private:Point A,B,C;
};
bool ifTriangle(Point &p1,Point &p2,Point &p3)
{	here:if((p1.distance(p2)+p2.distance(p3)>p3.distance(p1))&& (p1.distance(p2) + p3.distance(p1) > p2.distance(p3)) && (p2.distance(p3) + p3.distance(p1) > p1.distance(p2))){	cout << "三角形三個頂點坐標為:" << endl;p1.output();p2.output();p3.output();Triangle T(p1,p2,p3);T.output();}else{cout << "頂點坐標不正確,不能構成三角形!請重新輸入坐標!" << endl;return false;}}
int main()
{Point A,B,C;here:A.input();B.input();C.input();if (ifTriangle(A, B, C) == false){goto here;}return 0;
}

判斷是否是三角形

兩邊之和大于第三邊
或者(兩邊之差小于第三邊)
但是要列出3個
比如
a+b>c&&a+c>b&&b+c>a

if((p1.distance(p2)+p2.distance(p3)>p3.distance(p1))&& (p1.distance(p2) + p3.distance(p1) > p2.distance(p3)) && (p2.distance(p3) + p3.distance(p1) > p1.distance(p2)))```

https://www.nshth.com/cplus/326392.html
>

相关文章:

  • 組合體的組合類型有哪兩類
  • 基本組合邏輯實驗
  • 組合類析構
  • java point類
  • 實驗組合
  • 組合數公式
  • 類組合
  • 對比實驗
  • github 免費節點,BUMO:超級節點共建接口
  • 學習html/css基礎的重點筆記
  • 企業郵箱怎么群發郵件,企業會員郵件群發解決方案
  • esfp光模塊,闡述一下ecshop各模塊的功能_【光電通信】40G QSFP+ LR4 光模塊的設計與實現(一)...
  • lua編程軟件,QQ郵箱記事本模塊Lua實現小結
  • centos7.6鏡像下載,centos(7.9) minikube(v1.28.0) kaniko 構建鏡像
  • 計算機畢業設計ssm企業部門報銷管理g9d62系統+程序+源碼+lw+遠程部署
  • 鮑森詹森實驗過程,Ornstein-Uhlenbeck過程
  • 嵌入式的發展趨勢,我理解的嵌入式幾個發展方向
  • 51開發板,IMX6ULL_PRO嵌入式開發板介紹
  • 嵌入式軟件工程師,2023屆秋招內推指南|嵌入式開發|軟硬件
  • 剛畢業的大學生適合做什么工作,今天我的就業班的生活開始啦~~~
  • C語言-基礎知識練習習題1
  • 什么監控攝像頭最清晰,計算機為什么找不到攝像頭,為何電腦里找不到攝像頭設備?
  • 網易支付登錄,微信登陸和支付
  • 人工智能自我進化,復雜性思維中文第二版 十一、進化
  • firebase,Firebase 教程: iOS A/B 測試
  • mongodb可視化管理工具,Impala入門筆記---比Hive強大
  • 世界只是一個程序,程序的世界里,短暫的放空
  • 如何用爬蟲爬取網頁上的數據,新聞爬蟲及爬取結果查詢網站的搭建(一)
  • 爬蟲網站,新聞網站爬蟲及結果查詢
  • 深度卷積神經網絡,深度KWeaver:價值驅動,認知智能走向開源共創
  • sci論文翻譯神器,SCI科技論文英語翻譯的一點個人心得
  • 協議的定義,連接跟蹤TCP協議狀態轉換
  • 洛谷 T284709 怨念(resent)
  • 1330 小青蛙跳臺階
  • 動態規劃解決小青蛙跳臺階問題
  • 代碼記錄丨小青蛙和漢諾塔
  • 小青蛙爬井
  • 【基礎】小青蛙回來了