我試圖用一個回圈來從一個類中無限地創建物件,除非輸入了一個特定的輸入。我想我已經完成了所有的作業,除了回圈。我知道如何在我的主函式中初始化一個物件,但我被卡住了,不知道如何使用一個回圈來無限地做這件事。我的代碼如下。
驅動檔案: #include <iostream>
#include " square.h"
using namespace std;
int main()
{
square1.square1;
square1.setSide()。
square1.calcArea()。
square1.calcPerimeter()。
square1.showData()。
頭檔案:
#pragma once
#include <string>
class square
{
public:
square()。
void setSide()。
double getSide() const;
void calcPerimeter();
void calcArea();
void showData;
private:
double squareSide。
double squarePerimeter;
double squareArea。
};
實作檔案:
#include <iostream>
#include <ioomanip>
#include " square.h"
square::square()
{
squareSide = 0;
squarePerimeter = 0;
squareArea = 0;
}
void square::setSide()
{
std::cout << "輸入一個邊長。"。
std::cin >> squareSide。
std::cout << "
"。
if (squareSide == -1)
{
std::cout << "Exiting program.
"。
exit(-1)。
}
while (std::cin.fail() || squareSide < 0)
{
std::cout << "
你必須輸入一個正數。請再試一次。
"。
std::cin.clear()。
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '
')。
std::cout << "輸入一個邊長。"。
std::cin >> squareSide。
}
}
double square::getSide() const
{
return squareSide。
}
void square::calcPerimeter()
{
squarePerimeter = 4 * getSide()。
}
void square::calcArea()
{
squareArea = getSide() * getSide()。
}
void square::showData()
{
std::cout << "廣場的邊長是。" << getSide() < < "
"。
std::cout << "這個正方形的周長是。" << getSide() * 4 << "
"。
std::cout << "廣場的面積是。" << getSide() * getSide() < < "
"。
uj5u.com熱心網友回復:
你可以在main中的代碼周圍添加一個do ... while回圈,并將squares存盤在一個vector<square>。
示例:
#include <limits> //你從這個頭使用 numeric_limits。
#include <utility> // move
#include <vector> // vector
int main() {
std::vector<square> squares。
std::string answer;
do{
square1.square1;
square1.setSide()。
square1.calcArea()。
square1.calcPerimeter()。
//將正方形移到向量中。
squares.push_back(std::move( square1))。
//詢問用戶是否要輸入另一個。
std::cout << "再走一次?"。
} while(std::cin >> answer && answer == "yes")。
//顯示你存盤的內容。
std::cout << "你存盤了" << squares.size() << " Square(s)
"。
for( square& sq : squares) {
sq.showData()。
std::cout << '
'。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/310469.html
標籤:
