Need help with file handling

Hey I need some help with file handling. I am making a math quiz. I am stuck on the last task of my work. This is the task specification. (any advice would be massively appreicanted!!)

The teacher wants to use the results from students taking these quizzes to log their performance. The
system should store the last three scores for each student. The teacher would like to be able to output
the results of the quiz for a particular class, sorted:
• in alphabetical order with each student’s highest score for the tests
• by the highest score, highest to lowest
• by the average score, highest to lowest.

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
#include <iostream>
#include <string>
#include <ctime>
#include <fstream>
#include <fstream>
using namespace std;

int answer;
int question;
int correct;
string name;
char classNo;

void getinfo();

void quiz();

int main(){

	getinfo();

	return 0;

}

void getinfo(){

	cout << "What class are you in?" << endl;
	cin >> classNo;
	cout << "What is your name?" << endl;
	cin >> name;

	if (classNo == '1'){
		cout << "You are in Mr Smith's class" << endl;
		quiz();
	}
	else if (classNo == '2'){
		cout << "You are in Mrs Heartfield's class" << endl;
		quiz();
	}
	else if (classNo == '3'){
		cout << "You are in Mr Neacy's class" << endl;
		quiz();
	}
	else { cout << "This class does not exist!"; getinfo(); }
}

void quiz(){



	while (question < 10){

		int A = rand() % 10 + 1;
		int B = rand() % 10 + 1;
		int operNum = rand() % 3 + 1;


		if (operNum == 1){
			answer = A + B;
			cout << "What is " << A << "+" << B << endl;
		}
		else if (operNum == 2){
			answer = A - B;
			cout << "What is " << A << "-" << B << endl;
		}
		else if (operNum == 3){
			answer = A * B;
			cout << "What is " << A << "*" << B << endl;
		}

		int userInput;
		cin >> userInput;

		if (userInput == answer){
			cout << "You are correct!" << endl;
			question = question + 1;
			correct = correct + 1;
		}
		else{
			cout << "You are incorrect" << endl;
			question = question + 1;
		}

	}

	if (correct > 5){
		cout << "Welldone you got " << correct << " / 10" << endl;
	}
	else if (correct == 0){
		cout << "You got nothing correct" << endl;
	}
	else{
		cout << "You only got " << correct << " / 10" << endl;
	}

	ofstream save;
	if (classNo == '1'){
		save.open("class1.txt", std::ios_base::app);
		save << name << " Scored: " << correct << endl;
		save.close();
	}
	else if (classNo == '2'){
		save.open("class2.txt", std::ios_base::app);
		save << name << " Scored: " << correct << endl;
		save.close();
	}
	else {
		save.open("class3.txt", std::ios_base::app);
		save << name << " Scored: " << correct << endl;
		save.close();
	}

	int x;		//just to stop the window from closing instantly
	cin >> x;
}


Please be more specific, What is it that you need help with? Are you having trouble with something? What about file handling is going wrong?
Atm moment the code just saves the students score in a text file in this format
name scored : score. If the same person from the same class does the quiz multiple times I do not want all different lines of this I want it to be like this name scored : score, score, score. But only store 3. This is very confusing and I have being watching tutorials for hours but can't seem to get my head around it.
Topic archived. No new replies allowed.