You will be creating a quiz grading program using language C++ and CodeBlocks. You will compare the student's answers with the correct answers, and determine
You will be creating a quiz grading program using language C++ and CodeBlocks. You will compare the student's answers with the correct answers, and determine if the student passed the quiz or not.
The program will make use of two parallel arrays.
Each array must be able to support up to 20 characters (so you have two arrays of chars, each one with 20 elements).
Your program will need to read in the student input file name from cin. It will also need to read in the answer file name from cin.
The contents of the student input file should be read into one char array. The file will contain 20 characters, each character on a separate line of the file. The first line in the input file will contain the students answer to the first question, the second line will contain the student's answer to the 2nd question, and so on for 20 questions. The answers are A, B, C or D (all upper case).
The answer file will be read in as well, one answer per line for 20 answers. The first line of text is the answer for question 1, then second line is the answer for question 2, and so on.
As always, close the input files when you are done with them.
Your program needs to determine the number of questions that the student missed and then display the following:
A list of questions missed by the student, showing the question number (1 through 20), the correct answer, and the incorrect answer.
The total number of questions missed by the student
The percentage of the questions answered correctly.
If the percentage of questions answered correctly is 70% or more indicate that the student passed, otherwise state that the student failed the quiz.
You need to have at least the following three functions, including main.
Read function
One function needs to be passed a char array of size 20, it also needs to be passed an input file name. The return from the function should be a bool value.
The function should open the input file and read the contents into the array that was passed to it. If the file could not be opened it should return back false. If the read was successful the program should return back true.
Display function
The display function will be passed the two arrays and should calculate and display the results from the program.
The main function
The main will call the read function twice, once for each input file. The student file should be processed first and then the answers file. If the read function works with the student file the program should call the read function for the answer file If the second call to the read function also works the display function should be called. If either call to the read function does not work it should output a message stating that the specific file could not be opened. No further processing should be done if either one of the files cannot be opened.
As always you cannot use any global variables in your program.
See the sample runs for the output requirements.
Sample run 1 (valid data)
Contents of cin:
student.txt answers.txt
Contents of student.txt:
A B C D A B C D A B C D A B C D A B C D
Contents of answers.txt:
A A A A B B B B C C C C D D D D A B C D
Here is the output to cout:
Question 2 has incorrect answer 'B', the correct answer is 'A' Question 3 has incorrect answer 'C', the correct answer is 'A' Question 4 has incorrect answer 'D', the correct answer is 'A' Question 5 has incorrect answer 'A', the correct answer is 'B' Question 7 has incorrect answer 'C', the correct answer is 'B' Question 8 has incorrect answer 'D', the correct answer is 'B' Question 9 has incorrect answer 'A', the correct answer is 'C' Question 10 has incorrect answer 'B', the correct answer is 'C' Question 12 has incorrect answer 'D', the correct answer is 'C' Question 13 has incorrect answer 'A', the correct answer is 'D' Question 14 has incorrect answer 'B', the correct answer is 'D' Question 15 has incorrect answer 'C', the correct answer is 'D' 12 questions were missed The student failed
Sample run 2 (invalid student file)
Contents of cin:
invalidfile.txt answers.txt
Here is the output to cout:
File "invalidfile.txt" could not be opened
Sample run 3 (invalid answer file)
Contents of cin:
student.txt invalidfile.txt
Here is the output to cout:
File "invalidfile.txt" could not be opened
Sample run 4 (all answers valid)
Assume the student input file and the answers file both have the correct answers. The output to cout would be:
0 questions were missed The student passed
Failure to follow the requirements for lab lessons can result in deductions to your points, even if you pass the validation tests. Logic errors, where you are not actually implementing the correct behavior, can result in reductions even if the test cases happen to return valid answers. This will be true for this and all future lab lessons.
Expected output
There are six tests. Each test will have a new set of input data. You must match, exactly, the expected output.
You will get yellow highlighted text when you run the tests if your output is not what is expected. This can be because you are not getting the correct result. It could also be because your formatting does not match what is required. The checking that zyBooks does is very exacting and you must match it exactly. More information about what the yellow highlighting means can be found in course "How to use zyBooks" - especially section "1.4 zyLab basics".
Finally, do not include a system("pause"); statement in your program. This will cause your verification steps to fail.
Note: that the system("pause"); command runs the pause command on the computer where the program is running. The pausecommand is a Windows command. Your program will be run on a server in the cloud. The cloud server may be running a different operating system (such as Linux).
Error message "Could not find main function"
Now that we are using functions some of the tests are unit tests. In the unit tests the zyBooks environment will call one or more of your functions directly.
To do this it has to find your main function.
Right now zyBooks has a problem with this when your int main() statement has a comment on it.
For example:
If your main looks as follows:
int main() // main function
You will get an error message:
Could not find main function
You need to change your code to:
// main function int main()
If you do not make this change you will continue to fail the unit tests.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started