The topic of this exercise is the creation of a multiple-choice exam system which utilises an underlying relational database to store questions and their related answer options, along with the details of students and staff that are allowed to access the system. The database is also used to store details about specific exam configurations, and records information on the performance of students taking tests, as well as the accuracy with which specific questions are answered.
You are supplied with a pre-configured Access database, named MultiChoiceDB.accdb, which is briefly described below (you should spend a little time familiarising yourself with it).
The database contains 7 tables as the E-R diagram below illustrates See image.
Exam questions are stored in the Questions table and each relates to a specific exam topic, the name of which is identified in the Exams table. Every question has four related answers stored in the Answers table, one of which (or possibly more) is identified as being correct. The Questions table contains a field to record how often any exam question has been selected for presentation, and the Answers table similarly records how often each answer has been chosen by candidates.
Exam topics are package up into one or more tests, the details of which are stored in the TestConfiguration table. It stores a subtitle for the test and identifies the number of randomised questions that are to be asked. The other fields are unused in the current scenario.
The Student table contains information about students that may sit these tests. It includes a stored password, and their first and last names. A student can potentially undertake a specific test many times, and each test can be taken by many students hence the need for the TestEvent table. This table also records which student attempted which test, when, and the score attained.
Finally the Staff table contains information on staff members that may access and manage the system, and in particular it stores a password and their login name details.
You should note there are additional attributes present in many of the tables which are not utilised or relevant to the specific tasks relating to this assignment. Some are intended for use with a staff-management front-end, while others allow for future expansion of the system.
Questions See image.
Answers See image.
Student See image.
Exams See image.
TestConfiguration See image.
TestEvent See image.
Staff See image.
Example of a student-centred C# front-end
Your task will be to create a front-end to this database using C# and ADO.NET that provides functionality from a student-users perspective. You are supplied with a pre-written executable, named MCExam_System1.exe, which illustrates the functionality required. This executable requires that the aforementioned database is present in the same directory as itself in order for it to function correctly. Again, you should spend a little time familiarising yourself with it actions, and noting the effects that running an exam have on the contents of the underlying database. More specifically, you should notice that the functionality in this prototype system currently includes:
The ability for a student to login by using their family name and password See image.
The presentation of all available exam titles and corresponding test configurations, from which the student may make a selection before continuing on to take the test itself See image.
The execution of the test itself, which presents questions in a randomised order, allows the student to select an answer in each case, and maintains a displays of the running score See image.
Presents the student with their final score on completion of the test See image.
***Your task: Create a C# front-end that reproduces this functionality***
You are further supplied with a skeleton C# Visual Studio Solution, stored in the Zip file MCExam_skeleton1.zip, which reproduces all the tables seen in the example executable. This will save you the time of creating them yourselves. It is not compulsory that you use these forms; you may create your own if you prefer. Likewise you may modify and enhance the supplied forms to improve the visual appearance and student experience if you so wish, although it is important that the key functionality remains present in your submission in order to maximise your marks.