78 lines
1.9 KiB
C++
78 lines
1.9 KiB
C++
#pragma once
|
|
#include <iostream>
|
|
#include "Square.h"
|
|
#include "SquarePrism.h"
|
|
#include <vector>
|
|
|
|
class UserInteraction
|
|
{
|
|
public:
|
|
|
|
int numberOfSquares;
|
|
int numberOfSquarePrisms;
|
|
|
|
std::vector<Square> squareList;
|
|
std::vector<SquarePrism> squarePrismList;
|
|
|
|
void getUserInput() {
|
|
std::cout << "Enter number of squares:\n";
|
|
std::cin >> this->numberOfSquares;
|
|
|
|
std::cout << "Enter number of square prisms:\n";
|
|
std::cin >> this->numberOfSquarePrisms;
|
|
};
|
|
|
|
void execute() {
|
|
getUserInput();
|
|
setData();
|
|
displayData();
|
|
};
|
|
|
|
void setData() {
|
|
|
|
srand(time(NULL));
|
|
for (size_t i = 0; i < numberOfSquares; i++)
|
|
{
|
|
squareList.push_back(Square(rand() % 101));
|
|
}
|
|
|
|
for (size_t i = 0; i < numberOfSquarePrisms; i++)
|
|
{
|
|
squarePrismList.push_back(SquarePrism(rand() % 101, rand() % 101));
|
|
}
|
|
};
|
|
|
|
void displayData() {
|
|
|
|
double maxSquareArea = 0;
|
|
int maxSquareAreaIndex;
|
|
|
|
double maxSquarePrismDiagonal = 0;
|
|
int maxSquarePrismDiagonalIndex;
|
|
|
|
for (size_t i = 0; i < squareList.size(); i++)
|
|
{
|
|
if (squareList[i].getArea() > maxSquareArea) {
|
|
maxSquareArea = squareList[i].getArea();
|
|
maxSquareAreaIndex = i;
|
|
}
|
|
std::cout << "Square; index = " << i << "; side = " << squareList[i].side << "; area = " << squareList[i].getArea() << "\n";
|
|
}
|
|
std::cout << "Max Square Area = " << maxSquareArea << " at Square with index " << maxSquareAreaIndex << "\n\n";
|
|
|
|
|
|
for (size_t i = 0; i < squarePrismList.size(); i++)
|
|
{
|
|
if (squarePrismList[i].getDiagonal() > maxSquarePrismDiagonal) {
|
|
maxSquarePrismDiagonal = squarePrismList[i].getDiagonal();
|
|
maxSquarePrismDiagonalIndex = i;
|
|
}
|
|
std::cout << "Square Prism; index = " << i << "; side = " << squarePrismList[i].side << "; height = " << squarePrismList[i].height << "; diagonal = " << squarePrismList[i].getDiagonal() << "\n";
|
|
}
|
|
std::cout << "Max Square Prism Diagonal = " << maxSquarePrismDiagonal << " at Square Prism with index " << maxSquarePrismDiagonalIndex << "\n\n";
|
|
};
|
|
|
|
|
|
};
|
|
|