Intermediate Programming Project

MISY 2313 – Intermediate ProgrammingTerm Project
20% of Course Grade – 200 points
Due: Sunday, May 14, 2023 by 11:59pm
Requirements Overview
Create a program in C# or Python (your team’s choice) that has menus for the following options:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Add a course
Add a section of a course
Add assessments to a specific section of a course
Add a student
Add a student to a section of a course
Enter grades for a student in a specific section of a course
Display overall class average for a section of a course
Display student’s average for a section of a course
Display average for an assessment in a section of a course (average of all students’ grades for
that assessment item)
10. Display a list of students in a section of a course
11. Display the grades of all students in a section of a course
12. Display the class average for each section of a course
Bonus
13. Provide menu options for the user to display answers to the following questions:
a. Which of two courses had the highest class average?
b. Which of the same assessment in two courses (Exam01, Quiz02, etc.) had the highest
grade?
c. Print the averages for a given student’s grades for a section of a course in descending
order (highest to lowest).
d. Print the course average for all students in a section of a course.
Requirements Detail
The system will be a Console app (C#) or a Python app that is delivered in a single code block withing a
Jupyter notebook (.ipynb) or a single Python (.py) file. Do not deliver a Jupyter notebook that has the
code in more than one code block; thus requiring me to click more than one Run button to execute the
entire program.
We will use a MySQL database management system. You will be provided videos showing how to install
MySQL on Windows and MacOS. You will be provided the SQL to create the tables and populate the
database with its initial data, along with instructions regarding how to access it using both Python and
C#.
You will be given a class diagram showing the classes you must write. The classes on the diagram will
show some of the attributes (data) stored in the class, and some of the methods you will have to write.
It is your teams’ responsibility to add data and methods you feel you need, if you determine it is missing
from the diagram.
Define all your classes at the top of the code. Do not define a class in the middle of all the code that
performs the menu processing or functionality within the menu.
The program should display a menu containing the following options, with the Bonus question displaying
a sub-menu (explained later). Number each item, beginning with one (1), allowing the user to make
their menu selection.
After a particular menu option is chosen, prompt the user for the necessary input (explained in each
item below), display the output, prompt the user to hit any key to display the menu. The prompt to hit
any key is required to allow the user to view the output before the menu is displayed again.
The last menu option should be Exit the System.
The functionality MUST be developed in classes (OOP) to accomplish each item is listed below:
1. Add a course
Prompt the user for the department, course number, and course title. Write the new course in
the Course table of the database.
2. Add a Section of a course.
Display a numbered list of all courses in the Course table.
1.
2.
3.
4.
MISY 2311
MISY 2312
MISY 2313
MISY 3312
Display each course on a separate line and add a space between department and course
number (e.g. MISY 2313, NOT MISY2313).
Prompt the user to enter the number next to the course.
Prompt the user for each attribute (Academic year, semester, section number, room, time, and
instructor.
3. Add assessments to a specific section of a course
Prompt the user for the CRN of a course.
Display the department, course number, and course title associated with that CRN and ask for
confirmation. If it is the wrong course, let the user type in another CRN until they confirm they
have entered the correct course.
Next, display the current assessments for the curse, if any.
Prompt the user for the name of the assessment or ‘end’ to quit entering assessments.
If ‘end’, display the list of all assessments for the section of a course, including the ones just
added.
If anything other than ‘end’, prompt for the points possible.
Write the assessment and its points to the database.
Loop until the user enters ‘end’ to stop adding assessments.
4. Add a student
Prompt for all attributes contained in the student table. They will be (StudentID, Last Name,
First Name, etc.)
Add the data to the database after all has been enterd
5. Add a student to a section of a course
Prompt for a CRN until a valid CRN is found in the database.
Prompt for a StudentID until a valid StudentID is found in the database.
Display the course department, course number, section number, days, time, and instructor.
Also, display the student ID, Last Name, and First Name.
Prompt for confirmation that the section and student are correct.
If ‘y’ write a row in the database, placing the student in the section.
If ‘n’ prompt for a new CRN or ‘end’ to stop adding a student to a section.
6. Enter grades for a student in a specific section of a course
Prompt for a CRN until the user confirms that is the correct course and section (you must show
her the correct information to confirm the CRN she entered is correct).
Once confirmed, display a numbered list of all students in the section of the course.
Prompt the user to enter the number indicating the student for which to enter grades.
Retrieve a list of assessments for a section of a course from the database table containing the
assessments for a section of a course.
Using that list, loop until you have entered a grade for each assessment in the section of a
course.
DO NOT, give the user an option to stop entering in the middle of the list of assessments. Once
she confirms the section and student, it is too complicated to give them an option to abort
entering a grade for each. This assumes that the grades are entered AT THE END of the course;
so, do not complicate this functionality by allowing the users to enter a value for only one of the
assessment items.
7. Display overall class average for a section of a course
For this and the remaining list of requirements, prompt the user to provide CRN, Student ID or
whatever is appropriate to display the content that meets the requirement. I am not describing
each step that you must perform for requirement 7 through 13. You must figure out how to
prompt and confirm the user’s entry.
8. Display student’s average for a section of a course
For this and the remaining list of requirements, prompt the user to provide CRN, Student ID or
whatever is appropriate to display the content that meets the requirement. I am not describing
each step that you must perform for requirement 7 through 13. You must figure out how to
prompt and confirm the user’s entry.
9. Display average for an assessment in a section of a course (average of all students’ grades for
that assessment item)
For this and the remaining list of requirements, prompt the user to provide CRN, Student ID or
whatever is appropriate to display the content that meets the requirement. I am not describing
each step that you must perform for requirement 7 through 13. You must figure out how to
prompt and confirm the user’s entry.
10. Display a list of students in a section of a course
For this and the remaining list of requirements, prompt the user to provide CRN, Student ID or
whatever is appropriate to display the content that meets the requirement. I am not describing
each step that you must perform for requirement 7 through 13. You must figure out how to
prompt and confirm the user’s entry.
11. Display the grades of all students in a section of a course
For this and the remaining list of requirements, prompt the user to provide CRN, Student ID or
whatever is appropriate to display the content that meets the requirement. I am not describing
each step that you must perform for requirement 7 through 13. You must figure out how to
prompt and confirm the user’s entry.
12. Display the class average for each section of a course
For this and the remaining list of requirements, prompt the user to provide CRN, Student ID or
whatever is appropriate to display the content that meets the requirement. I am not describing
each step that you must perform for requirement 7 through 13. You must figure out how to
prompt and confirm the user’s entry.
Bonus
13. Provide menu options for the user to display answers to the following questions:
e. Which of two courses had the highest class average?
f. Which of the same assessment in two courses (Exam01, Quiz02, etc.) had the highest
grade?
g. Print the averages for a given student’s grades for a section of a course in descending
order (highest to lowest).
h. Print the course average for all students in a section of a course.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper
Still stressed from student homework?
Get quality assistance from academic writers!

Order your essay today and save 25% with the discount code LAVENDER