new to c++ and i have just 2 questions about project i did

so we have to make a program that grade several multiple-choice exams. i did the code, as shown, but i dont know[b] how to do a maximum score, average score, and minimum score for the output file.[/b] also, we have to Apply strlen( ) or the length( ) of string to the first line of the the data file for determining the number of questions in the problem. If a student gives more answers than necessary, the extra answers will be automatically truncated. On the other hand, if a student provides less number of answers, the remaining unanswered questions are considered as being answered wrongly. i dont know [b]how to do the last part of if the answers exceed, then the program cuts them autotmatically. and if there is less answers, the program counts rest as incorrect.[/b]
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
  #include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <assert.h>

using namespace std;

int openfiles(ifstream& infile, ofstream& outfile);

int main()
{
	int num_student = 4, count, length, score2, w[6];

	ifstream infile, curvingfile; char x;

	ofstream outfile; float score;

	string  key, answer, id;

	do {
		openfiles(infile, outfile);  // function calling

		infile >> key; // answer key

		for (int i = 0; i < num_student; i++) // loop over each student

		{
			infile >> id;

			infile >> answer;

			count = 0;

			length = key.size(); // length represents number of questions in exam from exam1.dat
								 // size is a string function....

			for (int j = 0; j < length; j++) // loop over each question
			{
				if (key[j] == answer[j])

					count++;
			}

			score = (float) count / length; 

			score2 = (int)(score * 100);

			outfile << id << "     " << score2 << "%";

			if (score2 >= 90)//<-----w[0]

				outfile << "A" << endl;

			else if (score2 >= 80)//<-----w[1]

				outfile << "B" << endl;

			else if (score2 >= 70)//<-----w[2]

				outfile << "C" << endl;

			else if (score2 >= 60)//<-----w[3]

				outfile << "D" << endl;

			else if (score2 >= 50)//<-----w[4]

				outfile << "E" << endl;

			else if (score2 < 50)//<-----w[5]

				outfile << "F" << endl;
		}
		cout << "Would you like to attempt a new trial? (y/n): ";

		cin >> x;
	
	} while (x == 'y' || x == 'Y');

	return 0;
}

int openfiles(ifstream& infile, ofstream& outfile)
{
	string name1, name2, name3, answerstring, curvedata;

	cin >> name1; name2; name3;
	if (name1 == "exit" || name2 == "exit" || name3 == "exit" ) return false;
	 
	cout << "Input the name for the exam file: ";

	cin >> name1;

	infile.open(name1.c_str());

	infile >> answerstring;

	cout << "Input the name for the curving file: ";

	cin >> name2;

	infile.open(name2.c_str());

	infile >> curvedata;

	cout << "Input the name for the output: ";

	cin >> name3;

	outfile.open(name3.c_str());

	return true;
}


this is due tomorrow so any help is appreciated!
Last edited on
Topic archived. No new replies allowed.