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
|
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <iomanip>
#include <string>
#include <cstring>
using namespace std;
void get_data(ifstream &inp, char first[], char last[], char answer[]);
void single_grade(char key[], char first[], char last[], char answer[], double grade[], int x);
void output(char key[], char first[], char last[], char answer[], double grade[]);
int main(){
string input_filename;
char first[9], last[9], answer[15], key[15];
double grade[10];
cout << "Enter the name of the file where the ungraded tests are located: ";
cin >> input_filename;
ifstream inp;
inp.open(input_filename.c_str());
inp >> key;
for(int i = 0; i < 9; i++){
get_data(inp, first, last, answer);
single_grade(key, first, last, answer, grade, i);
output(key, first, last, answer, grade);
}
inp.close();
return EXIT_SUCCESS;
}
void get_data(ifstream &inp, char first[], char last[], char answer[]){
int i = 0;
inp >> first >> last;
while(inp.peek() != '\n'){
inp >> answer[i];
i++;
}
}
void single_grade(char key[], char first[], char last[], char answer[], double grade[], int x){
double score = 0;
double ppts = 0;
for(int i = 0; i < 14; i++){
if(toupper(answer[i]) == (toupper(key[i]))){
score++;
}
ppts++;
}
grade[x] = (score/ppts)*100;
cout << grade << endl;
cout << endl;
cout << endl;
}
void output(char key[], char first[], char last[], char answer[], double grade[]){
for(int i = 0; i < first.length();i++){
cout << first[i];
}
cout << " ";
for(int i = 0; i < last.length(); i++){
cout << last[i] << endl;
}
cout << "______________________________________" << endl;
for(int i = 0; i < 8; i++){
cout << i+1 << "."<< answer << "(" << key << ")" << " ";
}
cout << endl;
for(int k = 8; k < 15; k++){
cout << k+1 << "."<< answer << "(" << key << ")" << " ";
}
cout << endl;
cout << endl;
}
|