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.