Corning Community College CSCS1320 C/C++ Programming ~~TOC~~ ======Project: PROCESS IMPLEMENTATION - GRADE FIGURE-OUTERER (gfo0)====== =====Errata===== * __correction__: There was a bug in my **flattenstatus** script; if you ran it before 8:20am on Wednesday, April 13th, then you may have incorrect data. Re-run it to generate a fresh and correct copy. (20160413) =====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 **flattenstatus** command and the file **status.flat** will be created in your current working directory. For example: lab46:~/src/cprog/gfo0$ flattenstatus lab46:~/src/cprog/gfo0$ cat status.flat -1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 -2 1 1 1 0 1 0 1 0 1 0 0 1 -3 11 13 6 9 4 9 5 9 6 9 19 20 6 0 18 20 -4 lab46:~/src/cprog/gfo0$ Your program needs to do the following: * check for and open the **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 (28% of grade) * -2 indicates end of participation data / start of journal data (36% of grade) * -3 indicates end of journal data / start of project data (36% of grade) * -4 indicates end of project data (and end of data stream) * once loaded into their arrays, calculate the grade component * tally up all three, and print out the results Final program output should resemble the following: lab46:~/src/cprog/gfo0$ ./mygrade Participation Component: 20 / 28 Journal Component: 20 / 36 Projects Component: 30 / 36 Total: 70 /100 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** flag 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 presented above * Code must be commented * have a properly filled-out comment banner at the top * have at least 20% of your program consist of **//**-style descriptive comments * 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.