CSc 430 - Quiz Management - Prof Domanski
 

In this lab assignment, you'll create a program that lets people take and then grade a quiz. This program will require you to understand I/O in Visual Basic, as well as how to create a multi-form program.  To make the problem more user-friendly, you must use menus to help guide the quiz-taker  through the process.

Software Engineering:  This program should be developed by teams - while you can work alone, it is better if you work with others to share the experience (and the work). 

Software Engineering Requirements --

bullet

GUI prototype with no executable code behind it.  Supply a short (<1 page) description of the flow of the program by referring to what the user would see first, second, etc.  Please list the members of your team.

bullet

Executable code must be commented.  Each team member should understand the program.

bullet

A user-manual (1-2 pages maximum) must be included with the final submission.  It must be detailed enough to explain to a user what to do in case they do something dumb.

bullet

A design document (1 page) for those who have to run your program and need to shoot a bug in the program.

Testing Requirements --

bullet

Once your program and documentation are submitted, your team will be assigned a different team's program to evaluate. 

bullet

You will be emailed a zip file from another team along with all they documentation they submitted, as well as an input file to use for testing. 

bullet

Your job will simply be to try to get their program to work ... if if doesn't work, identify (if you can) where it broke, why it broke, and what you suggest to do about it.

bullet

Comment on the clarity of the code and comments, and the overall design.


The samples below are there just to give you an idea of the possible flow of the program ...

bulletClick HERE to download some sample test questions to use as input data.
bulletClick HERE to download & try out an incomplete prototype of the program --  this prototype:
bulletonly displays one question at a time
bulletbut, it is completely menu-driven
bulletdoesn't restart for the next user
bulletdoesn't record the right answers for subsequent grading
bulletdoes write out answers and reads them back in for a summary.

There are 2 types of questions: 

bullet true/false (TF), 
bullet multiple choice (MC) (exactly 4 choices)

Each line of the input file has a question type and the question be separated by a comma. For example:

bullet

TF,Are you breathing?

bullet

MC,Which Professor do you like best,1=Domanski,2=Domanski,3=Domanski,4=GuessWho 

Make sure that the input file has at least 5 true/false questions, and 5 multiple choice questions.  Group questions of the same type together in the input file; that is, create all of the true/false questions followed by all of the multiple choice questions.  See the sample file.  Your program must be able to read any file in this format, not just the sample file that's posted here for you to test with.

Your program  will read an input file of questions.  Display up to 3 questions of the same type at a time. Create a place on the form where each question can be answered.  For the true/false questions, use group boxes and radio buttons for the answers.  For the multiple choice questions, use combo boxes. 

Once all 3 questions have been answered, record the answers out to an array … you'll be processing these later. Keep displaying  questions of the same type up to 3 at a time, and recording the answers to the array.  If you don't have 3 questions of the same type to display on the form, just display the questions you have, and make sure that the rest of the form is blank!

Once the question type changes, display, on a new form, the next set of 3 questions all of the same type. And again, when these questions are answered, keep recording the answers to the array,  followed by displaying the next set of 3 questions.  And again, if you don't have 3 questions to display,  display the questions you have and make sure the rest of the form is blank!

After the last set of questions have been answered, your program must grade the quiz.  Assume that you yourself take the quiz first, and the answers that you give are the correct answers.  Then as each subsequent person takes the quiz, use your answers to grade their answers.    Your answers should be in either the first column or first row of the array (your choice).  Once you compute a grade, display it for the user, and the computed grade as well as each answer to a results file.  You'll have to read this file later ...

You'll also have to allow other people to take the quiz after you grade one.  So you'll have to 'reset' each form, and repeat the process of displaying questions 3 at a time, recording the answers to the array, grading and finally writing the grades and the answers to the results file.

Results: Once there are no more people to take the test, it will be time to summarize the output file.   You'll have to close the file, then re-open it, and read in the data you've written.  All that is required is for you to calculate the average quiz grade ... so if 5 people are in the class and take the quiz, make sure you read in the grade each person got, sum them up, divide by 5, and display the class average.

Due: 2 1/2 weeks.  Be prepared to compile and present your project in front of the class.  Good luck!

Last updated by DrB on 02/18/09