Это назначение класса, которое должно выполняться с использованием динамически создаваемого массива Course. Я пытаюсь прочитать каждую переменную-член внутри, конечно, внутри моего цикла for, но я не совсем уверен, как это сделать. Я сделал это с моей студенческой структурой, но разница в том, что я являюсь массивом, запутывает меня, потому что я не знаю, как с ним работать.
Моя проблема в функции readCourseArray
при попытке чтения в членах структуры. Если бы кто-нибудь мог сказать мне, как я это делаю, я был бы благодарен. Я знаю, что использование оператора new
не является идеальным, поскольку многие указатели не нужны, но это просто то, как мой инструктор требует, чтобы назначение было передано.
#include <iostream>
#include <string>
using namespace std;
struct Student
{
string firstName, lastName, aNumber;
double GPA;
};
struct Course
{
int courseNumber, creditHours;
string courseName;
char grade;
};
Student* readStudent();
Course* readCourseArray(int);
int main()
{
int courses = 0;
Student *studentPTR = readStudent();
Course *coursePTR = readCourseArray(courses);
delete studentPTR;
delete coursePTR;
system ("pause");
return 0;
}
Student* readStudent()
{ Student* student = new Student;
cout<<"\nEnter students first name\n";
cin>>student->firstName;
cout<<"\nEnter students last name\n";
cin>>student->lastName;
cout<<"\nEnter students A-Number\n";
cin>>student->aNumber;
return student;
}
Course* readCourseArray(int courses)
{
cout<<"\nHow many courses is the student taking?\n";
cin>>courses;
const int *sizePTR = &courses;
Course *coursePTR = new Course[*sizePTR];
for(int count = 0; count < *sizePTR; count++) //Enter course information
{
cout<<"\nEnter student "<<count<<"'s course name\n";
cin>>coursePTR[count]->courseName>>endl;
cout<<"\nEnter student "<<count<<"'s course number\n";
cin>>coursePTR[count]->courseNumber;
cout<<"\nEnter student "<<count<<"'s credit hours\n";
cin>>coursePTR[count]->creditHours;
cout<<"\nEnter student "<<count<<"'s grade\n";
cin>>coursePTR[count]->grade>>endl;
}
return coursePTR;
}