編寫一個程序,要求輸入三角形的3條邊,然后判斷是否合理,如果不合理,給出信息並要求重新輸入;如果合理,計算其面積並將結果存入文件中--p209_3


源程序:

#include < iostream >

#include < fstream >

#include < cmath >

#include < vector >

#include < iomanip >

#include < string >

using namespace std;

 

class Triangle  //建立三角形類

{

private:

  double sizeA, sizeB, sizeC, area;  //三條邊、面積

public:

  Triangle(double a = 0, double b = 0, double c = 0) //帶默認參數的構造函數

  {

    sizeA = a;

    sizeB = b;

    sizeC = c;

    double p = (sizeA + sizeB + sizeC) *0.5;

    area = sqrt(p * (p - sizeA) * (p - sizeB) * (p - sizeC));

  }

  void set_Tri(double a, double b, double c)  //為三條邊賦值的函數

  {

    sizeA = a;

    sizeB = b;

    sizeC = c;

    double p = (sizeA + sizeB + sizeC) *0.5;

    area = sqrt(p * (p - sizeA) * (p - sizeB) * (p - sizeC));

  }

  void set(vector<Triangle> &);  //用於輸入邊長並判斷是否合理,最后存入文件

};

//***************************************

//* 成員函數:set

//* 參    數:向量對象的引用

//* 返 回 值:無

//* 功    能:為向量賦值並將向量存入文件

//***************************************

void Triangle::set(vector<Triangle> &v)  //向量的類型為Triangle

{

  Triangle Tri;

  double a, b, c;

  while (1)

  {

    cout << "三角形,邊A:";

    cin >> a;

 

    if (a == -1)//a的長度輸入-1作為結束符

    {

      ofstream writeFile;

      char fileName[20];

      cout << "輸入要保存到的文件名(加后綴'.txt'):";

      cin >> fileName; //輸入文件名的時候加入文件名后綴“****.txt”

      cout << "保存到文件:" << fileName << endl;

      writeFile.open(fileName);

      if (writeFile.fail())

      {

        cout << "沒有正確建立文件!" << endl;

        return;

      }

      for (int i = 0; i < v.size(); i++)

      {

        writeFile << "第" << i + 1 << "個三角形: ";

        writeFile << v[i].sizeA << " " << v[i].sizeB << " " << v[i].sizeC << " " << v[i].area << endl;

      }

      writeFile.close();

      cout << "一共寫入" << v.size() << "個三角形信息" << endl;

      return;

    }

    cout << "三角形,邊B:";

    cin >> b;

    cout << "三角形,邊C:";

    cin >> c;

    if (a>0 && b>0 && c>0 && ((a + b)>c) && ((a + c)>b) && ((b + c)>a))  //任意兩邊之和應大於第三邊

    {

      Tri.set_Tri(a, b, c);

      v.push_back(Tri);

    }

    else

      cout << "不能組成三角形,重新輸入" << endl;

  }

}

void main()

{

  vector<Triangle> v_tri;

  Triangle tri;

  tri.set(v_tri);

}

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM