User Tools

Site Tools


haas:spring2017:cprog:projects:gfo0

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
haas:spring2017:cprog:projects:gfo0 [2016/04/13 16:46] – external edit 127.0.0.1haas:spring2017:cprog:projects:gfo0 [2017/03/17 22:36] (current) – [Errata] wedge
Line 10: Line 10:
 =====Errata===== =====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) +  * any updates/fixes will appear here
 =====Objective===== =====Objective=====
 To implement a programmatic solution (ie simulation) of a real life process- the obtaining, processing, and display of your status in the course. To implement a programmatic solution (ie simulation) of a real life process- the obtaining, processing, and display of your status in the course.
Line 34: Line 33:
 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). 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.+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: For example:
  
 <cli> <cli>
-lab46:~/src/cprog/gfo0$ flattenstatus +lab46:~/src/cprog/gfo0$ flatten cprog 
-lab46:~/src/cprog/gfo0$ cat status.flat +lab46:~/src/cprog/gfo0$ ls 
--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 1 0 1 0 1 0 0 -3 11 13 9 5 9 6 9 19 20 6 0 18 20 -4+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 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$  lab46:~/src/cprog/gfo0$ 
 </cli> </cli>
Line 47: Line 48:
 Your program needs to do the following: Your program needs to do the following:
  
-  * check for and open the **status.flat** file+  * check for and open the **cprog.status.flat** file
     * if error occurs, display message and exit     * if error occurs, display message and exit
   * reading one integer at a time, load the values into an array according to their category   * 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:   * there will be three categories (arrays), each one identified by a header/sentinel value:
-    * -1 indicates the start of participation data (28% of grade) +    * -1 indicates the start of participation data (13% of grade) 
-    * -2 indicates end of participation data / start of journal data (36% 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 (36% 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)     * -4 indicates end of project data (and end of data stream)
-  * once loaded into their arrays, calculate the grade component+  * once loaded into their arrays, calculate their totals, and totals out of grade component
   * tally up all three, and print out the results   * 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
  
-Final program output should resemble the following:+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):
  
 <cli> <cli>
-lab46:~/src/cprog/gfo0$ ./mygrade +lab46:~/src/cprog/gfo0$ ./gfo0 
-Participation Component20 28 +Participation:   6    12 =>  6 / 13 
-Journal Component      20 36 +      Journal:  38+1  56 =>  9 / 13 
-Projects Component     30 36 +     Projects: 328+24 /377 => 48 / 52 
-Total:                   70 /100+------------------------------------- 
 +Total:                        63 78 
 +===================================== 
 +Score:                         80.769 
 +Grade:                             B-
 lab46:~/src/cprog/gfo0$  lab46:~/src/cprog/gfo0$ 
 </cli> </cli>
- 
  
 =====Submission===== =====Submission=====
Line 74: Line 92:
  
   * Code must compile cleanly (no warnings or errors)   * Code must compile cleanly (no warnings or errors)
-    * Use the **-Wall** flag when compiling.+    * Use the **-Wall** and **-std=c99** flags when compiling.
   * Output must be correct, and resemble the form given in the sample output above.   * 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 be nicely and consistently indented (you may use the **indent** tool)
-  * Code must utilize the algorithm presented above+  * Code must utilize the algorithm/equations presented above
   * Code must be commented   * Code must be commented
-    * have a properly filled-out comment banner at the top 
-    * have at least 20% of your program consist of **<nowiki>//</nowiki>**-style descriptive comments 
   * Track/version the source code in a repository   * Track/version the source code in a repository
   * Submit a copy of your source code to me using the **submit** tool.   * Submit a copy of your source code to me using the **submit** tool.
Line 96: Line 112:
 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. 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:
  
 +<code>
 +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]
 +</code>
haas/spring2017/cprog/projects/gfo0.1460565993.txt.gz · Last modified: 2016/04/13 16:46 by 127.0.0.1