Я не вижу значения с этой структурой
struct SPS
{
std::string Class;
std::string Teacher;
int noStudents;
};
struct SPS array[3][4][5];
Он отключен, пассивен и не предоставляет полезного кода, который помог бы вам в остальной части ваших усилий по программированию.
C ++ легко приспосабливается, позволяя каждому экземпляру выполнять уникальные функции. В частности, вы должны рассмотреть возможность реализации шоу (и заполнения) в классе. Эти функции позволяют каждому экземпляру с пользой работать с приложением ... то есть "show ()", "dump ()", "saveToFile ()", "restoreFromFile ()" и т. Д.
#include <iostream>
#include <sstream>
#include <string>
struct SPS
{
private: // for encapsulation
std::string Class;
std::string Teacher;
int noStudents;
public:
// class instance 'show's itself
std::string show()
{
std::stringstream ss;
ss << Class << ' ' << Teacher << " " << noStudents;
return ss.str();
}
// for this MCVE, a simple replacement for file i/o
void fill(int a, int b, int c)
{
std::string s =
std::to_string(a)
+ '.' + std::to_string(b)
+ '.' + std::to_string(c);
Class = "\n Class " + s;
Teacher = " Teacher " + s;
noStudents = c;
}
// add saveToFile(), restoreFromFile(), dump()
};
struct SPS array[3][4][5];
Примечание - ни однополевые get'ы, ни set'ers никогда не нужны ... это пустая трата времени программиста.
чтобы закончить этот MCVE, я предоставляю:
class T601_t // a simple test
{
public:
T601_t() = default;
~T601_t() = default;
int exec(int , char** )
{
fill3dArray();
show3dArray();
return 0;
}
private: // methods
// specific to this MCVE, a quick and dirty fill
void fill3dArray()
{
for (int a = 0; a<3; a++)
{
for (int b = 0; b<4; b++)
{
for (int c = 0; c < 5; c++)
{
array[a][b][c].fill(a, b, c);
// record -----^^^^ self filling
}
}
}
}
// your code would enter the a, b, and c from user prompts?
// or perhaps a file read?
// specific to this MCVE, invoke the show method of
// each element of the array
void show3dArray()
{
for (int a = 0; a<3; a++)
{
for (int b = 0; b<4; b++)
{
for (int c= 0; c<5; c++)
{
std::cout << array[a][b][c].show() << '\n';
// record ------------------^^^^ self showing
// it is trivial for this cout to prefix the show
// with a triple for readability or diagnostics
}
std::cout << "\n";
}
std::cout << "\n";
}
}
}; // class T601_t
int main(int argc, char* argv[])
{
T601_t t601;
return t601.exec(argc, argv);
}