FOR GAHGUY ONLY ..

profileMesfer almesfer
pa5-20161102t040845z.zip

pa5/PA5.docx

CS 211 PA #5

At certain universities, professors often teach large classes in which an individual TA is responsible for grading a given section's programming assignment. Assuming that each TA fills in the Excel form correctly (a rather large assumption), the instructor must combine each section's grades into a master gradebook file that can be published to students. Less technical professors combine the gradebook by hand. However, this process can be cumbersome and is most certainly error prone! Your task for this assignment is to automate this process by writing a C++ application that automatically combines several CSV-based gradebooks into a single master gradebook.

CSV File Format

Each CSV contains a single section's grades for a given category (e.g. homework). All files have a similar format. The top row contains headers and the 2nd row contains the maximum grade for each assignment. Similarly, the first column is always the student's ID number, the 2nd the student's name, and the 3rd is their overall score for the grading category. Rows after the third row contain marks for a given task. Here's an example:

Obtaining a list of CSV files

Your program should prompt the user for a list of CSV files to parse. Each file will be in the format "<category>_<number>.csv". For example: "homework_1.csv", "homework_2.csv", and "exams_2.csv" are examples of potential file names. Note that <category> can be any string . Listed previously are strings that make sense, but your homework should be able to handle something like "sdfsrwe_1.csv" just fine! Also, be sure to use <category> as the separator for the summary CSV file (discussed later).

Expected Output

Your program should generate two CSV files: one summary file with overall grades and one details file that contains the grading breakdown for all sections.

Summary CSV File

The summary CSV file should contain all students, an overall class grade (in percent), and a points breakdown for each grading category. Here's an example screenshot of a summary file whose individual CSV files had a "Homework" and "Quizzes" <category> as inputs:

Details File

The details file should essentially aggregate all of a student's records into a single file. In other words, it should include a detailed breakdown of every student's marks in the individual CSV files. Here's an example:

Header Comment, and Formatting

1. Be sure to modify the file header comment at the top of your script to indicate your name, student ID, completion time, and the names of any individuals that you collaborated with on the assignment.

2. Remember to follow the basic coding style guide. A basic list of rules is included with this document.

Deliverables

Your final project and reflection must be as a ZIP file through Canvas no later than midnight on Monday, December 5, 2016. A partial check-in of your progress will occur during lab on November 14. Remember that your submission must either contain a CodeBlocks or Visual Studio project file!

Reflection Essay

In addition to the programming tasks listed above, your submission must include an essay that reflects on your experiences with this homework. This essay must be at least 350 words long. Note that the focus of this paper should be on your reflection, not on structure (e.g. introductory paragraph, conclusion, etc.). The essay is graded on content (i.e. it shows deep though) rather than syntax (e.g. spelling) and structure. Below are some prompts that can be used to get you thinking. Feel free to use these or to make up your own.

· Describe a particular struggle that you overcame when working on this programming assignment.

· Conversely, describe an issue with your assignment that you were unable to resolve.

· Provide advice to a future student on how he or she might succeed on this assignment.

1. Describe the most fun aspect of the assignment.

1. Describe the most challenging aspect of the assignment.

1. Describe the most difficult aspect of the assignment to understand.

1. Provide any suggestions for improving the assignment in the future.

Grading Criteria

Your assignment will be judged by the following criteria:

· [25] November 14 Partial checkin. In order to receive full credit, you must demonstrate a program that:

· Obtains a list of files from the user

· Reads the list of files into one or more data structures (at minimum a vector, ideally a hashtable)

· Contains one or more UML diagrams of the classes that you use or intend to use in your project.

· [5] Your final project runs and compiles

· [50] Your final project passes my test cases

· [10] Your reflection essay satisfies the requirements as specified earlier in this document.

· [15] Your project contains good structure. In other words, your program intelligently uses classes when appropriate and generally conforms to good OOP design (i.e. everything isn't slapped into main).

pa5/example test case/inputs/homework_1.csv

#ID Name Total HW1 HW2 HW3 HW4 HW5 HW6 HW7
OVERALL 700 100 100 100 100 100 100 100
15417503 Jones, Corey 402 65 48 83 68 45 43 50
17272764 Carlson, Berna 520 58 75 78 71 87 68 83
12966435 Mora, Gianna 495 62 93 44 92 45 100 59
19949311 Walls, Rosy 457 74 76 56 43 68 49 91
13574491 Hutchinson, Kathleen 381 33 40 97 45 54 44 68
19762179 Stanton, Edith 499 91 51 42 82 39 98 96
10335999 Dunn, Renay 479 37 44 88 89 59 73 89
12777481 Weber, Rickie 441 85 70 42 40 51 81 72
11582441 Cook, Alessandra 435 44 44 41 53 60 98 95
19486714 Jarvis, Mark 440 44 75 97 41 86 48 49
15240575 Garcia, Alessandra 410 51 69 54 47 61 78 50
13046460 Fry, Angelo 547 55 65 93 96 78 91 69
17269141 Pennington, Victor 430 60 42 90 59 75 44 60
13880965 Werner, Terrance 556 98 81 93 60 84 95 45
16498248 Hart, Wade 516 37 89 66 84 52 100 88
12602743 Floyd, Chanell 415 59 50 75 33 61 79 58
11653262 Stokes, Neomi 416 33 40 56 90 36 78 83
10809052 Booker, Erin 524 49 80 83 99 86 93 34

pa5/example test case/inputs/homework_2.csv

ID Name Total HW1 HW2 HW3 HW4 HW5 HW6 HW7
OVERALL 700 100 100 100 100 100 100 100
19306964 Peterson, Chris 558 90 66 59 64 87 95 97
15346233 Ortiz, Timothy 512 75 98 89 60 94 54 42
14789024 Lawson, Nida 489 95 54 74 65 97 42 62
17222588 Fletcher, Gordon 404 42 53 35 45 46 94 89
15514268 Moody, Hector 437 73 84 41 62 33 91 53
11103675 Lloyd, Eric 526 73 86 68 75 91 68 65
14613021 Mills, Gilma 441 79 36 71 48 61 79 67
19351632 Bridges, Cammy 410 63 60 35 41 92 47 72
12985225 Webb, Tony 497 37 91 80 60 72 100 57
12592611 Howard, Perry 479 87 38 54 95 92 77 36
12988631 Chase, Samuel 416 74 39 39 48 49 71 96
11658558 Allen, Rick 416 37 68 91 89 61 35 35
10413470 Stephens, Dorthey 496 70 61 76 67 74 97 51
11397936 Bright, Erin 509 66 73 54 100 78 88 50
16940417 Kawkins, Tory 510 84 61 75 55 64 95 76
17897552 Peters, Melvin 569 90 100 100 97 49 50 83
13022696 Jennings, Gregory 357 45 40 58 58 42 55 59
18347237 Reeves, Jacob 413 41 39 40 74 39 92 88
15750634 Harrison, Matthew 436 79 47 94 57 82 35 42

pa5/example test case/inputs/exams_2.csv

ID Name Total E1 E2 E3
OVERALL 400 100 100 200
19306964 Peterson, Chris 277 91 78 108
15346233 Ortiz, Timothy 250 59 72 119
14789024 Lawson, Nida 323 100 64 159
17222588 Fletcher, Gordon 248 73 69 106
15514268 Moody, Hector 301 85 95 121
11103675 Lloyd, Eric 335 82 66 187
14613021 Mills, Gilma 294 93 56 145
19351632 Bridges, Cammy 351 81 77 193
12985225 Webb, Tony 360 91 95 174
12592611 Howard, Perry 328 74 77 177
12988631 Chase, Samuel 288 95 59 134
11658558 Allen, Rick 277 91 59 127
10413470 Stephens, Dorthey 331 99 66 166
11397936 Bright, Erin 355 95 83 177
16940417 Kawkins, Tory 374 99 85 190
17897552 Peters, Melvin 303 87 90 126
13022696 Jennings, Gregory 289 74 58 157
18347237 Reeves, Jacob 278 60 60 158
15750634 Harrison, Matthew 244 64 72 108

pa5/example test case/inputs/quizzes_1.csv

#ID Name Total Quiz1 Quiz2 Quiz3 Quiz4
OVERALL 400 100 100 100 100
15417503 Jones, Corey 338 82 73 91 92
17272764 Carlson, Berna 322 87 96 70 69
12966435 Mora, Gianna 310 76 75 93 66
19949311 Walls, Rosy 329 82 91 70 86
13574491 Hutchinson, Kathleen 333 69 80 89 95
19762179 Stanton, Edith 349 82 75 99 93
10335999 Dunn, Renay 329 79 92 92 66
12777481 Weber, Rickie 337 92 69 79 97
11582441 Cook, Alessandra 361 70 100 91 100
19486714 Jarvis, Mark 342 98 78 75 91
15240575 Garcia, Alessandra 372 97 85 91 99
13046460 Fry, Angelo 332 92 78 96 66
17269141 Pennington, Victor 323 69 99 74 81
13880965 Werner, Terrance 325 76 92 81 76
16498248 Hart, Wade 291 75 67 77 72
12602743 Floyd, Chanell 320 83 66 87 84
11653262 Stokes, Neomi 328 69 99 90 70
10809052 Booker, Erin 325 73 87 78 87

pa5/example test case/inputs/exams_1.csv

#ID Name Total E1 E2 E3
OVERALL 400 100 100 200
15417503 Jones, Corey 253 65 73 115
17272764 Carlson, Berna 290 83 67 140
12966435 Mora, Gianna 329 71 63 195
19949311 Walls, Rosy 249 65 58 126
13574491 Hutchinson, Kathleen 321 72 88 161
19762179 Stanton, Edith 286 73 91 122
10335999 Dunn, Renay 339 69 90 180
12777481 Weber, Rickie 304 63 56 185
11582441 Cook, Alessandra 352 94 58 200
19486714 Jarvis, Mark 299 80 93 126
15240575 Garcia, Alessandra 290 92 59 139
13046460 Fry, Angelo 332 63 89 180
17269141 Pennington, Victor 265 85 62 118
13880965 Werner, Terrance 293 56 97 140
16498248 Hart, Wade 282 61 74 147
12602743 Floyd, Chanell 295 95 91 109
11653262 Stokes, Neomi 373 79 95 199
10809052 Booker, Erin 356 73 98 185

pa5/example test case/inputs/quizzes_2.csv

ID Name Total Quiz1 Quiz2 Quiz3 Quiz4
OVERALL 400 100 100 100 100
19306964 Peterson, Chris 353 82 99 98 74
15346233 Ortiz, Timothy 293 86 84 59 64
14789024 Lawson, Nida 323 62 87 81 93
17222588 Fletcher, Gordon 325 84 80 66 95
15514268 Moody, Hector 335 82 92 64 97
11103675 Lloyd, Eric 321 82 78 69 92
14613021 Mills, Gilma 333 77 92 75 89
19351632 Bridges, Cammy 308 79 64 65 100
12985225 Webb, Tony 337 65 100 92 80
12592611 Howard, Perry 286 63 66 57 100
12988631 Chase, Samuel 311 58 72 89 92
11658558 Allen, Rick 287 58 77 66 86
10413470 Stephens, Dorthey 322 95 79 76 72
11397936 Bright, Erin 332 98 82 93 59
16940417 Kawkins, Tory 323 86 83 96 58
17897552 Peters, Melvin 324 73 92 94 65
13022696 Jennings, Gregory 299 83 89 71 56
18347237 Reeves, Jacob 321 59 95 89 78
15750634 Harrison, Matthew 288 84 75 60 69

pa5/example test case/outputs/output - summary.csv

#ID Name Final Grade Homework Quizzes Exams
Overall 700 400 400
15417503 Jones, Corey 66.200000 402.000000 338.000000 253.000000
13022696 Jennings, Gregory 63.000000 357.000000 299.000000 289.000000
17272764 Carlson, Berna 75.470000 520.000000 322.000000 290.000000
12966435 Mora, Gianna 75.600000 495.000000 310.000000 329.000000
11582441 Cook, Alessandra 76.530000 435.000000 361.000000 352.000000
10335999 Dunn, Renay 76.470000 479.000000 329.000000 339.000000
19306964 Peterson, Chris 79.200000 558.000000 353.000000 277.000000
19949311 Walls, Rosy 69.000000 457.000000 329.000000 249.000000
12777481 Weber, Rickie 72.130000 441.000000 337.000000 304.000000
13574491 Hutchinson, Kathleen 69.000000 381.000000 333.000000 321.000000
19762179 Stanton, Edith 75.600000 499.000000 349.000000 286.000000
13046460 Fry, Angelo 80.730000 547.000000 332.000000 332.000000
19486714 Jarvis, Mark 72.070000 440.000000 342.000000 299.000000
15240575 Garcia, Alessandra 71.470000 410.000000 372.000000 290.000000
17897552 Peters, Melvin 79.730000 569.000000 324.000000 303.000000
17269141 Pennington, Victor 67.870000 430.000000 323.000000 265.000000
13880965 Werner, Terrance 78.270000 556.000000 325.000000 293.000000
18347237 Reeves, Jacob 67.470000 413.000000 321.000000 278.000000
15346233 Ortiz, Timothy 70.330000 512.000000 293.000000 250.000000
16498248 Hart, Wade 72.600000 516.000000 291.000000 282.000000
11397936 Bright, Erin 79.730000 509.000000 332.000000 355.000000
12602743 Floyd, Chanell 68.670000 415.000000 320.000000 295.000000
11653262 Stokes, Neomi 74.470000 416.000000 328.000000 373.000000
10809052 Booker, Erin 80.330000 524.000000 325.000000 356.000000
12985225 Webb, Tony 79.600000 497.000000 337.000000 360.000000
14789024 Lawson, Nida 75.670000 489.000000 323.000000 323.000000
17222588 Fletcher, Gordon 65.130000 404.000000 325.000000 248.000000
15514268 Moody, Hector 71.530000 437.000000 335.000000 301.000000
11103675 Lloyd, Eric 78.800000 526.000000 321.000000 335.000000
14613021 Mills, Gilma 71.200000 441.000000 333.000000 294.000000
11658558 Allen, Rick 65.330000 416.000000 287.000000 277.000000
19351632 Bridges, Cammy 71.270000 410.000000 308.000000 351.000000
12592611 Howard, Perry 72.870000 479.000000 286.000000 328.000000
12988631 Chase, Samuel 67.670000 416.000000 311.000000 288.000000
10413470 Stephens, Dorthey 76.600000 496.000000 322.000000 331.000000
16940417 Kawkins, Tory 80.470000 510.000000 323.000000 374.000000
15750634 Harrison, Matthew 64.530000 436.000000 288.000000 244.000000

pa5/example test case/outputs/output - details.csv

#ID Name HW1 HW2 HW3 HW4 HW5 HW6 HW7 Quiz1 Quiz2 Quiz3 Quiz4 E1 E2 E3
Overall 100 100 100 100 100 100 100 100 100 100 100 100 100 200
15417503 Jones, Corey 65.000000 48.000000 83.000000 68.000000 45.000000 43.000000 50.000000 82.000000 73.000000 91.000000 92.000000 65.000000 73.000000 115.000000
13022696 Jennings, Gregory 45.000000 40.000000 58.000000 58.000000 42.000000 55.000000 59.000000 83.000000 89.000000 71.000000 56.000000 74.000000 58.000000 157.000000
17272764 Carlson, Berna 58.000000 75.000000 78.000000 71.000000 87.000000 68.000000 83.000000 87.000000 96.000000 70.000000 69.000000 83.000000 67.000000 140.000000
12966435 Mora, Gianna 62.000000 93.000000 44.000000 92.000000 45.000000 100.000000 59.000000 76.000000 75.000000 93.000000 66.000000 71.000000 63.000000 195.000000
11582441 Cook, Alessandra 44.000000 44.000000 41.000000 53.000000 60.000000 98.000000 95.000000 70.000000 100.000000 91.000000 100.000000 94.000000 58.000000 200.000000
10335999 Dunn, Renay 37.000000 44.000000 88.000000 89.000000 59.000000 73.000000 89.000000 79.000000 92.000000 92.000000 66.000000 69.000000 90.000000 180.000000
19306964 Peterson, Chris 90.000000 66.000000 59.000000 64.000000 87.000000 95.000000 97.000000 82.000000 99.000000 98.000000 74.000000 91.000000 78.000000 108.000000
19949311 Walls, Rosy 74.000000 76.000000 56.000000 43.000000 68.000000 49.000000 91.000000 82.000000 91.000000 70.000000 86.000000 65.000000 58.000000 126.000000
12777481 Weber, Rickie 85.000000 70.000000 42.000000 40.000000 51.000000 81.000000 72.000000 92.000000 69.000000 79.000000 97.000000 63.000000 56.000000 185.000000
13574491 Hutchinson, Kathleen 33.000000 40.000000 97.000000 45.000000 54.000000 44.000000 68.000000 69.000000 80.000000 89.000000 95.000000 72.000000 88.000000 161.000000
19762179 Stanton, Edith 91.000000 51.000000 42.000000 82.000000 39.000000 98.000000 96.000000 82.000000 75.000000 99.000000 93.000000 73.000000 91.000000 122.000000
13046460 Fry, Angelo 55.000000 65.000000 93.000000 96.000000 78.000000 91.000000 69.000000 92.000000 78.000000 96.000000 66.000000 63.000000 89.000000 180.000000
19486714 Jarvis, Mark 44.000000 75.000000 97.000000 41.000000 86.000000 48.000000 49.000000 98.000000 78.000000 75.000000 91.000000 80.000000 93.000000 126.000000
15240575 Garcia, Alessandra 51.000000 69.000000 54.000000 47.000000 61.000000 78.000000 50.000000 97.000000 85.000000 91.000000 99.000000 92.000000 59.000000 139.000000
17897552 Peters, Melvin 90.000000 100.000000 100.000000 97.000000 49.000000 50.000000 83.000000 73.000000 92.000000 94.000000 65.000000 87.000000 90.000000 126.000000
17269141 Pennington, Victor 60.000000 42.000000 90.000000 59.000000 75.000000 44.000000 60.000000 69.000000 99.000000 74.000000 81.000000 85.000000 62.000000 118.000000
13880965 Werner, Terrance 98.000000 81.000000 93.000000 60.000000 84.000000 95.000000 45.000000 76.000000 92.000000 81.000000 76.000000 56.000000 97.000000 140.000000
18347237 Reeves, Jacob 41.000000 39.000000 40.000000 74.000000 39.000000 92.000000 88.000000 59.000000 95.000000 89.000000 78.000000 60.000000 60.000000 158.000000
15346233 Ortiz, Timothy 75.000000 98.000000 89.000000 60.000000 94.000000 54.000000 42.000000 86.000000 84.000000 59.000000 64.000000 59.000000 72.000000 119.000000
16498248 Hart, Wade 37.000000 89.000000 66.000000 84.000000 52.000000 100.000000 88.000000 75.000000 67.000000 77.000000 72.000000 61.000000 74.000000 147.000000
11397936 Bright, Erin 66.000000 73.000000 54.000000 100.000000 78.000000 88.000000 50.000000 98.000000 82.000000 93.000000 59.000000 95.000000 83.000000 177.000000
12602743 Floyd, Chanell 59.000000 50.000000 75.000000 33.000000 61.000000 79.000000 58.000000 83.000000 66.000000 87.000000 84.000000 95.000000 91.000000 109.000000
11653262 Stokes, Neomi 33.000000 40.000000 56.000000 90.000000 36.000000 78.000000 83.000000 69.000000 99.000000 90.000000 70.000000 79.000000 95.000000 199.000000
10809052 Booker, Erin 49.000000 80.000000 83.000000 99.000000 86.000000 93.000000 34.000000 73.000000 87.000000 78.000000 87.000000 73.000000 98.000000 185.000000
12985225 Webb, Tony 37.000000 91.000000 80.000000 60.000000 72.000000 100.000000 57.000000 65.000000 100.000000 92.000000 80.000000 91.000000 95.000000 174.000000
14789024 Lawson, Nida 95.000000 54.000000 74.000000 65.000000 97.000000 42.000000 62.000000 62.000000 87.000000 81.000000 93.000000 100.000000 64.000000 159.000000
17222588 Fletcher, Gordon 42.000000 53.000000 35.000000 45.000000 46.000000 94.000000 89.000000 84.000000 80.000000 66.000000 95.000000 73.000000 69.000000 106.000000
15514268 Moody, Hector 73.000000 84.000000 41.000000 62.000000 33.000000 91.000000 53.000000 82.000000 92.000000 64.000000 97.000000 85.000000 95.000000 121.000000
11103675 Lloyd, Eric 73.000000 86.000000 68.000000 75.000000 91.000000 68.000000 65.000000 82.000000 78.000000 69.000000 92.000000 82.000000 66.000000 187.000000
14613021 Mills, Gilma 79.000000 36.000000 71.000000 48.000000 61.000000 79.000000 67.000000 77.000000 92.000000 75.000000 89.000000 93.000000 56.000000 145.000000
11658558 Allen, Rick 37.000000 68.000000 91.000000 89.000000 61.000000 35.000000 35.000000 58.000000 77.000000 66.000000 86.000000 91.000000 59.000000 127.000000
19351632 Bridges, Cammy 63.000000 60.000000 35.000000 41.000000 92.000000 47.000000 72.000000 79.000000 64.000000 65.000000 100.000000 81.000000 77.000000 193.000000
12592611 Howard, Perry 87.000000 38.000000 54.000000 95.000000 92.000000 77.000000 36.000000 63.000000 66.000000 57.000000 100.000000 74.000000 77.000000 177.000000
12988631 Chase, Samuel 74.000000 39.000000 39.000000 48.000000 49.000000 71.000000 96.000000 58.000000 72.000000 89.000000 92.000000 95.000000 59.000000 134.000000
10413470 Stephens, Dorthey 70.000000 61.000000 76.000000 67.000000 74.000000 97.000000 51.000000 95.000000 79.000000 76.000000 72.000000 99.000000 66.000000 166.000000
16940417 Kawkins, Tory 84.000000 61.000000 75.000000 55.000000 64.000000 95.000000 76.000000 86.000000 83.000000 96.000000 58.000000 99.000000 85.000000 190.000000
15750634 Harrison, Matthew 79.000000 47.000000 94.000000 57.000000 82.000000 35.000000 42.000000 84.000000 75.000000 60.000000 69.000000 64.000000 72.000000 108.000000