PA 10.1: Upcoming assignments+
- Due May 4, 2021 by 11:59pm
- Points 10
- Submitting a file upload
- File Types cpp
- Available after Apr 20, 2021 at 2pm
When completing this programming assignment, you may work with up to one other person. No groups of more than two are permitted.
Extend zyLab 16.40 Upcoming assignments in the following way.
First, add prompts explaining what the user should enter (see the example below). The user also needs to know how to stop adding input.
Second, update the program so that rather than simply displaying the name of the course with pending assignments that make up the largest grade percentage and with the assignment with the earliest deadline, display the full course and assignment information. Specifically, display the course and each of its assignments (including the assignment name, due date, and percentage of the course grade). These should be nicely formatted. Do this by defining and calling a function called PrintCourse, which should take a Course and print it as explained above.
Here's an example run of the program:
Enter the course this assignment is associated with (STOP to stop): CSC160
Assignment name: PA10.1
Assignment due date: 2021-05-04 23:59
Percent (0.XX) of course grade this assignment is worth: 0.05
Enter the course this assignment is associated with (STOP to stop): CSC160
Assignment name: Lab 10
Assignment due date: 2021-04-20 16:00
Percent (0.XX) of course grade this assignment is worth: 0.01
Enter the course this assignment is associated with (STOP to stop): ENG111
Assignment name: Essay 2
Assignment due date: 2021-05-07 23:59
Percent (0.XX) of course grade this assignment is worth: 0.30
Enter the course this assignment is associated with (STOP to stop): STOP
Course with the greatest % of grade left: ENG111
ENG111's assignments:
Essay 2 due 2021-05-07 23:59 (worth 30% of course grade)
Course with the earliest deadline: CSC160
CSC160's assignments:
PA10.1 due 2021-05-04 23:59 (worth 5% of course grade)
Lab 10 due 2021-04-20 16:00 (worth 1% of course grade)
Copy the following header and specifications checklist and paste it at the top of your source code. As you complete the specifications, fill in the [ ] next to that specification in the check list (e.g., like this: [x]). I will not grade submissions with missing specifications; please do not submit if you cannot check all of them off. This specs checklist is essentially a way for you to self grade before you submit your program.
// Name:
// Date:
// Partner:
//
// Specifications checklist for PA Option 10.1 Upcoming assignments+
//
// General specs:
// [ ] the header includes your name and anyone you worked with
// [ ] the header includes this specifications checklist with all completed
// specifications checked off: [x]
// [ ] the code is indented properly (inside of every block, code is indented
// one more tab)
// [ ] each chunk of code that "hangs together" (works toward a higher level goal):
// [ ] includes a brief, useful comment above it
// [ ] is separated from the next chunk by a blank line
// [ ] there are no really long lines of code or comments (if you have long
// lines, split them across multiple shorter lines)
// [ ] identifiers are well named
// [ ] the program compiles
// [ ] the program runs without crashing or hanging
// [ ] all output and prompts look clean (correct spelling, capitalization,
// nothing squished)
// [ ] all prompts make it clear what data the user is expected to enter and in
// what format and work as expected
// [ ] every function includes a JavaDoc above it that specifies all present
// parameters and return values.
// [ ] parameters are specified as pass by reference only when necessary
//
// Specific specs:
// [ ] the program works as expected
// [ ] input is read in correctly
// [ ] the course with the earliest deadline is corrected identified
// [ ] the course with assignments making up the largest percentage of the grade is correctly identified
// [ ] the TODOs from zyLab 16.40 are completed correctly
// [ ] TODO 1
// [ ] TODO 2
// [ ] TODO 3
// [ ] TODO 4
// [ ] a function named PrintCourse is defined
// [ ] it takes a single parameter of type Course
// [ ] it returns nothing
// [ ] it prints the course and its assignments in a nice format
If you are working with a partner, both of you must submit individually.