Corning Community College CSCS1320 C/C++ Programming ~~TOC~~ ======Project: PROCESS IMPLEMENTATION - GRADE FIGURE-OUTERER (gfo0)====== =====Errata===== * any updates/fixes will appear here =====Objective===== To implement a programmatic solution (ie simulation) of a real life process- the obtaining, processing, and display of your status in the course. =====Prerequisites/Corequisites===== In addition to the new skills required on previous projects, to successfully accomplish/perform this project, the listed resources/experiences need to be consulted/achieved: * you can calculate percentages * ability to open and access data from files * using loops to automate a process * using functions to organize your code =====Background===== Throughout the semester, you've been accumulating points for your class participation, journal, and projects. This information has been accessible via the **status** tool. =====Program===== Throughout the semester, your class-related activities have been numerically captured and made available to you via the **status** tool. Now that we are nearing the end, and your programming skillset is significantly expanded, I would like you to write a program to take this data and calculate your grade (reflective of currently recorded data). I've designed a tool that will take all your **status** data and 'flatten' it... converting all the necessary data into one stream of values. To obtain this data, simply run the **flatten** tool with an argument of **cprog** and the file **cprog.status.flat** will be created in your current working directory. For example: lab46:~/src/cprog/gfo0$ flatten cprog lab46:~/src/cprog/gfo0$ ls cprog.status.flat lab46:~/src/cprog/gfo0$ cat cprog.status.flat -1 1 1 1 1 1 1 0 0 0 0 0 0 -2 4 8 2 8 6 8 4 8 6 8 8 8 8 8 1 0 -3 32 39 42 52 32 52 51 52 46 52 52 52 73 78 24 0 -4 lab46:~/src/cprog/gfo0$ Your program needs to do the following: * check for and open the **cprog.status.flat** file * if error occurs, display message and exit * reading one integer at a time, load the values into an array according to their category * there will be three categories (arrays), each one identified by a header/sentinel value: * -1 indicates the start of participation data (13% of grade) * -2 indicates end of participation data / start of journal data (13% of grade) * -3 indicates end of journal data / start of project data (52% of grade) * -4 indicates end of project data (and end of data stream) * once loaded into their arrays, calculate their totals, and totals out of grade component * tally up all three, and print out the results * calculate the current overall score, with a precision of 3 decimal places * display the letter grade Letter grades are on the following scale: * A (100.00+) * A- (94.00-99.99) * B+ (88.00-93.99) * B (82.00-87.99) * B- (76.00-81.99) * C+ (70.00-75.99) * C (64.00-69.99) * D (58.00-63.99) * F ( 0.00-57.99) Final program output should resemble the following (note the formatting/spacing): lab46:~/src/cprog/gfo0$ ./gfo0 Participation: 6 / 12 => 6 / 13 Journal: 38+1 / 56 => 9 / 13 Projects: 328+24 /377 => 48 / 52 ------------------------------------- Total: 63 / 78 ===================================== Score: 80.769 Grade: B- lab46:~/src/cprog/gfo0$ =====Submission===== To successfully complete this project, the following criteria must be met: * Code must compile cleanly (no warnings or errors) * Use the **-Wall** and **-std=c99** flags when compiling. * Output must be correct, and resemble the form given in the sample output above. * Code must be nicely and consistently indented (you may use the **indent** tool) * Code must utilize the algorithm/equations presented above * Code must be commented * Track/version the source code in a repository * Submit a copy of your source code to me using the **submit** tool. To submit this program to me using the **submit** tool, run the following command at your lab46 prompt: $ submit cprog gfo0 gfo0.c Submitting cprog project "gfo0": -> gfo0.c(OK) SUCCESSFULLY SUBMITTED You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches. What I will be looking for: 78:gfo0:final tally of results (78/78) *:gfo0:gfo0.c submit via submit tool [4/4] *:gfo0:gfo0.c no negative compiler messages [4/4] *:gfo0:gfo0.c is pushed to lab46 repository [5/5] *:gfo0:gfo0.c implements specified algorithms [13/13] *:gfo0:gfo0.c uses loops, arrays, and file operations [13/13] *:gfo0:gfo0.c adequate indentation and comments [13/13] *:gfo0:gfo0.c output conforms to specifications [13/13] *:gfo0:gfo0.c values displayed in output are correct [13/13]