Passing a Struct array to Class Member functions

closed account (NU9GNwbp)
Edit postDelete postReport this postReply with quotePassing a Struct Array using Classes
by brb00136 ยป Sun Dec 11, 2011 12:31 pm

Hi all, I am working on a project that requires us to create a struct with several input items, call that struct in a class member function then display the results. What am I doing wrong? I plan to add several more functions for averaging the gpas, etc but for now I just want to input the info, then display it....HELP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <iostream>
#include <string>
#include <iomanip>
#include <cassert>
#include <cstdlib>

using namespace std;

//const float AverageGPA = 0; //gives GPA a value for testing

	const int NAME_LENGTH = 30; //total char length for a name
	const int ACAD_MAJOR_LENGTH = 40; //total length of academic major
	const int OBJECTS = 100;
	const int CLASS_SIZE = 40;
	const int CLASS_TITLE_SIZE = 32;
	const int CLASS_NUMBER_SIZE = 10;

struct Student
{
	
	char Name[NAME_LENGTH]; //Create a Name array
	char AcadMajor[ACAD_MAJOR_LENGTH]; //create academic major length
	int StudId; //variable for student id
	float GPA; //variable for GPA
	
};

class MyRoster
{
public:
    
	MyRoster();
	void FillRoster(Student Students[], int ClassSize); 
    //float AverageGPA(Student Students[], int ClassSize);
	void DisplayCourseRoster(char *pCourseTitle, char *pCourseNumber,Student Students[], int ClassSize);// add average 
	//float AverageGPA;
	


private:
   
	
};

//implementation of member functions
MyRoster::MyRoster()
{

}


void MyRoster::FillRoster(Student Students[], int ClassSize)
{
	
	for (int i = 0; i < ClassSize; i++)
	{
		cout << "Please enter student name: ";
		cin >> Students[i].Name;

		cout << "Please enter student major: ";
		cin >> Students[i].AcadMajor;

		cout << "Please enter student ID: ";
		cin >> Students[i].StudId;

		cout << "Please enter student gpa: ";
		cin >> Students[i].GPA;
		
	}


}

void MyRoster::DisplayCourseRoster(char *pCourseTitle, char *pCourseNumber, Student Students[], int ClassSize)
{
	cout << "Course Name : " << pCourseTitle <<endl;
	cout << "Course Number : "<< pCourseNumber <<endl;

	for( int i = 0; i < ClassSize; i++)
	{
		
		cout << "Name " << Students[i].Name <<endl;
		cout << "Major "<< Students[i].AcadMajor;
		cout << "Student Id "<< Students[i].StudId <<endl;
		cout << "GPA "<< Students[i].GPA <<endl;
		
	}

	cout <<endl;
	//cout <<"Average GPA "<< AverageGPA <<endl;
	
}

int main()
{
	int inputStudents = 0;			
	char *pCourseTitle;
	char *pCourseNumber;

	Student CourseRoster[CLASS_SIZE];//up to 40
	MyRoster objClass[OBJECTS]; //up to 100 obj can be created


	cout << "How many students are in your class?" <<endl;
	cin >> inputStudents;

	pCourseTitle = new char[CLASS_TITLE_SIZE];
	cout << "What is the name of the class?" <<endl;
	cin >> pCourseTitle;
	
	pCourseNumber = new char[CLASS_NUMBER_SIZE];
	cout << "What is the course Number? " <<endl;
	cin >> pCourseNumber;


	for(int i = 0; i < inputStudents; ++i)
	{
		objClass[i].FillRoster(CourseRoster, inputStudents);
	}
	

	for(int i = 0; i < inputStudents; ++i)
	{
		objClass[i].DisplayCourseRoster(pCourseTitle, pCourseNumber,CourseRoster, inputStudents);
	}

		

	system("pause");
	return 0;
}
Topic archived. No new replies allowed.