Программа в которой ввод информации должен осуществляется через массив

Помогите понять как исправить программу.

Нужно вывести сведения о расписании занятий каждого преподавателя по дням недели Сведения о расписании занятий:

  • день недели;
  • номер занятия;
  • название предмета;
  • фамилия преподавателя.

Обязательно должна быть структура и ввод данных через массив

#include <iostream>
#include <string>
using namespace std;
struct Raspisanie
{
  string day;
  string subject;
  int numberofclass;
  string surname;
};
void printinformation(Raspisanie raspisanie )
{
    cout<<"day:"<<raspisanie.day<<"\n";
    cout<<"subject:"<<raspisanie.subject<<"\n";
    cout<<"number of class:"<<raspisanie.numberofclass<<"\n";
    cout<<"surname:"<<raspisanie.surname<<"\n";
 }
int main() 
{
    string mass1[4]={};
    for (int i=0; i<4;i++)
    { 
        cout<<("Введите исходные данные соответсвующие расписанию на понедельник");
        cin>>mass1[i];
    }
     string mass2[4]={};
    for (int i=0; i<4;i++)
    { 
        cout<<("Введите исходные данные соответсвующие расписанию на вторник");
        cin>>mass2[i];
    }
    string mass3[4]={};
    for (int i=0; i<4;i++)
    { 
        cout<<("Введите исходные данные соответсвующие расписанию на среду");
        cin>>mass3[i];
    }
    string mass4[4]={};
    for (int i=0; i<4;i++)
    { 
        cout<<("Введите исходные данные соответсвующие расписанию на четверг");
        cin>>mass4[i];
    }
    string mass5[4]={};
    for (int i=0; i<4;i++)
    { 
        cout<<("Введите исходные данные соответсвующие расписанию на пятницу");
        cin>>mass5[i];
    }   


    Raspisanie monday =mass1;
    Raspisanie tuesday=mass2;
    Raspisanie wednesday =mass3;
    Raspisanie thursday = mass4;
    Raspisanie friday=mass5;
    printinformation (monday);
    printinformation (tuesday);
    printinformation (wednesday);
    printinformation (thursday);
    printinformation (friday);

    return 0;
} 

Ответы (1 шт):

Автор решения: Miracle-

Конечно же этот код максимально странный, но он будет работать с Вашим кодом так, как вы этого хотите исходя из исходника:

Raspisanie(string data[]) {
        this->day = data[0];
        this->subject = data[1];
        this->numberofclass =  atoi(data[2].c_str());
        this->surname = data[3];
    }

Добавив конструктор вы сможете инициализировать те значения, которые содержатся в структуре. numberofclass является переменной типа int,поэтому такое приведение. Очевидно, что лучше поменять на string.

Симпотное решение - это сделать string-массив(опять же исходя из исходника), чтобы можно было проходиться по циклу, а не самостоятельно приписывать индексы. Осталось поработать над логикой вашей программы.

→ Ссылка