10-152-311 - Object-Oriented Programming 1

4.1 Gradebook Activity: Overview

A list of courses is added to Gradebook this week, and a roster of students is added to the courses.

In this assignment, you will create methods and call them from button-click event handlers, passing parameters to them and accepting return values from them. Create the new classes and lists as needed.

4.1 Gradebook Activity: Class Diagram

Implement the changes specified in the following UML class diagram.

Create any button(s) and button click event handler(s) in the WPF window designer (if specified in the class diagram).

PNG image of 4.1  Gradebook UML class diagram
  1. When creating classes be sure to:
    1. Ensure the class in the root namespace. This can be done in one of two ways. Either by adding the class in the project, i.e. scenario, or by adding the class to the business classes folder and removing the ".Business_Classes" designation from the namespace.
    2. insert the following line of code immediately above the class definition:
      [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.StyleCop.CSharp.MaintainabilityRules", "SA1401:FieldsMustBePrivate", Justification = "Encapsulation not yet taught.")]
  2. Open the main window (MainWindow.xaml) in designer mode (right-click and click "View Designer" or press Shift-F7 to go to designer mode).

4.1 Gradebook Activity: Object Diagram

Instantiate the objects and set their field values as specified in the following UML object diagram.

PNG image of 4.1 Gradebook UML object diagram

4.1 Gradebook Activity: Code Snippet

Within the newGradebookButton click event handler use the following code snippet as your guide to writing the code.

// Create an instance of the Gradebook class.

// Set field values of Blackboard (except for current student).

// Define a temporary course variable.

// Create an instance of the Course class (OOP 1).

// Set field values of the OOP 1 course.

// Add the OOP 1 course to the gradebook.

// Create an instance of the Course class (OOP 2).

// Set field values of the OOP 2 course.

// Define a temporary student variable.

// Create an instance of the Student class (Arthur).

// Set field values of the current student Arthur.

// Set field values of the advisor.

// Set field values of the assistant.

// Set field values of the Arthur's transcript.

// Define a temporary grade record variable.

// Create an instance of the GradeRecord class (Database Concepts).

// Set field values of the Database Concepts grade record.

// Add the Database Concepts grade record to the transcript's list of grades.

// Create an instance of the GradeRecord class (Web Design 1).

// Set field values of the Web Design 1 grade record.

// Add the Web Design 1 grade record to the transcript's list of grades.

// Create an instance of the GradeRecord class (OOP 1).

// Set field values of the OOP 1 grade record.

// Add the OOP 1 grade record to the transcript's list of grades.

// Set Arthur to be the current student.

// Add Arthur to the OOP 2 roster.

// Create an instance of the Student class (Pete).

// Set field values of Pete.

// Set field values of Pete's transcript.

// Add Pete to the Roster.

// Create an instance of the Student class (Gwen).

// Set field values of Gwen.

// Set field values of Gwen's transcript.

// Add Gwen to the Roster.

// Add the OOP 2 course to the gradebook.

// Set field values of my theme.

// Set field values of the student calendar.

Test, Complete and Submit

  1. Build your program - Eliminate compiler errors and warnings
  2. Debug/Test your program - Set breakpoints, step through code, monitor values
  3. Make your code StyleCop-compliant
  4. Close your Visual Studio solution.
  5. Compress your Visual Studio solution to a zip file.
  6. Submit the zip file via Blackboard.

Grading Rubric

PNG image of the 4.1 Gradebook rubric