Test Case Incomplete Grading output Input 20 Output Enter number of exam questions: 20 Processing Data Key TTFTFTTTETETEFTTETTE ABC54102 DEF56278 ABC42366 ABC42586 < T FTETETTTFTTETTE TE 27 TTETETTTETETEFTTETTE 40 TTETETTTETETFETTE 31 23 TTTTFTTT TETEFFTF Results Key TTFTFTTTFTFTFFTTFTTF ABC54182 T FTETETTTETTETTE TF 27 D Expected Output Key TTFTFTTTFTFTFFTTFTTF ABC54182 T FTETETTTETTETTE TF 27 D

Np Ms Office 365/Excel 2016 I Ntermed
1st Edition
ISBN:9781337508841
Author:Carey
Publisher:Carey
Chapter7: Developing An Excel Application
Section: Chapter Questions
Problem 3RA
icon
Related questions
Question

C++ Progrmaing

Instructions

Redo Programming Exercise 6 of Chapter 8 using dynamic arrays. The instructions have been posted for your convenience.

The history teacher at your school needs help in grading a True/False test. The students’ IDs and test answers are stored in a file. The first entry in the file contains answers to the test in the form:

TFFTFFTTTTFFTFTFTFTT

Every other entry in the file is the student ID, followed by a blank, followed by the student’s responses. For example, the entry:

ABC54301 TFTFTFTT TFTFTFFTTFT

indicates that the student ID is ABC54301 and the answer to question 1 is True, the answer to question 2 is False, and so on. This student did not answer question 9 (note the empty space). The exam has 20 questions, and the class has more than 150 students. Each correct answer is awarded two points, each wrong answer gets one point deducted, and no answer gets zero points. Write a program that processes the test data. The output should be the student’s ID, followed by the answers, followed by the test score, followed by the test grade.

An example of the program is shown below:

Processing Data Key: TTFTFTTTFTFTFFTTFTTF ABC54102 T FTFTFTTTFTTFTTF TF 27 D

Remember, a space indicates that a question has been skipped. If spaces are added for formating, there are too many or too few, it may affect the accuracy of your program.

Assume the following grade scale: 90%–100%, A; 80%–89.99%, B; 70%–79.99%, C; 60%–69.99%, D; and 0%–59.99%, F.

Code I have: half of it is right but I am not getting the last two correct.

#include<iostream>
#include<fstream>
#include <string>

#define M 4 //maximum number of students

using namespace std;
int main(){
string *studentID; // array of pointers to c-strings
string *studentResult; // array of pointers to c-strings
string temp; //temporary variable
string Result; //string to hold correct result

int index;

double score=0.0;
double scale=0.0;
char grade;
int N=0; //maximum number of questions

cout<<"Enter number of exam questions: ";
cin>>N;

ifstream fin;
fin.open("Ch12_Ex2Data.txt");
if(fin.is_open()){
int i=0;
getline(fin,Result); //store first line of file in Result
studentID=new string[M+1]; //allocate memory to studentID
studentResult=new string[M+1]; //allocate memory to studentResult

for(i=0;i<M;i++){
getline(fin,temp);
index=temp.find(' ');
studentID[i]=temp.substr(0,index);
studentResult[i]=temp.substr(index+1);
}
fin.close(); //close file
cout<<endl<<"Processing Data";
cout<<endl<<"Key : "<<Result<<endl;

//calculate scores fo students
for(i=0;i<M;i++){
score=0.0; //initialize score to 0
cout<<endl<<studentID[i];
cout<<"\t"<<studentResult[i];
for(int j=0;j<N;j++){
if(studentResult[i][j]=='\n'){
studentResult[i][j]='\0';
break;
}
if(Result[j]==studentResult[i][j]) //if correct result
score=score+2; //add 2 to score
else if(studentResult[i][j]==' ' || studentResult[i][j]=='\n') //if result is blank
score=score+0; //add zero to score
else
score=score-1; //deduct 1 from score
}

cout<<"\t"<<score;
scale=(score/40)*100; //calculate scale
//calculate grades
if(scale>=90 && scale<=100) grade='A'; //90%-100%, A;
else if(scale>=80 && scale<90) grade='B'; //80%-89.99%, B;
else if(scale>=70 && scale<80) grade='C'; //70%-79.99%, C;
else if(scale>=60 && scale<70) grade='D'; //60%-69.99%, D;
else if(scale>=0 && scale<60) grade='F'; //0-59.99%, F.

cout<<"\t"<<grade;
}
cout<<endl;
}else{
cout<<"Unable to find the file 'input.txt' in the current path of program\n";
}


return 0;
}
Test Case Incomplete
Grading output
Input
20
Output
Enter number of exam questions: 20
Processing Data
Key: TTFTFTTTETETEFTTETTE
ABC54102
DEF56278
ABC42366
ABC42586
I ETETETTTETTETTE TE
TTETETTTFTFTFFTTETTE
TTETETTTETETFETTE
TTTTFTTT TETEFFTE
27
40
31
23
Results
Key TTFIFTTTFTFTFFTTFTTF ABC54102 T FIFTETTTFTTETTE TE 27 D
Expected Output
Key TTFTFTTTFTFTFFTTETTE ABC54102 T FTFTETTTFTTETTE TE 27 D
Transcribed Image Text:Test Case Incomplete Grading output Input 20 Output Enter number of exam questions: 20 Processing Data Key: TTFTFTTTETETEFTTETTE ABC54102 DEF56278 ABC42366 ABC42586 I ETETETTTETTETTE TE TTETETTTFTFTFFTTETTE TTETETTTETETFETTE TTTTFTTT TETEFFTE 27 40 31 23 Results Key TTFIFTTTFTFTFFTTFTTF ABC54102 T FIFTETTTFTTETTE TE 27 D Expected Output Key TTFTFTTTFTFTFFTTETTE ABC54102 T FTFTETTTFTTETTE TE 27 D
ABC42366 TTFTFTTTFTFTFFTTF 34 B ABC42586 TTTTFTTT TFTFFFTF 26 D
Transcribed Image Text:ABC42366 TTFTFTTTFTFTFFTTF 34 B ABC42586 TTTTFTTT TFTFFFTF 26 D
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 3 images

Blurred answer
Knowledge Booster
Fundamentals of Input and Output Performance
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Np Ms Office 365/Excel 2016 I Ntermed
Np Ms Office 365/Excel 2016 I Ntermed
Computer Science
ISBN:
9781337508841
Author:
Carey
Publisher:
Cengage