User Tools

Site Tools


Sidebar

projects

cci0 (due 20200123)
pct1 (bonus; due 20200123)
wcp1 (due 20200123)
fwf0 (due 20200129)
pct2 (due 20200129)
wcp2 (due 20200129)
dtr0 (due 20200205)
sof0 (due 20200205)
pct3 (due 20200205)
wcp3 (due 20200205)
dow0 (due 20200212)
pct4 (due 20200212)
wcp4 (due 20200212)
bwp0 (bonus; due 20200226)
pct5 (due 20200226)
wcp5 (due 20200226)
cos0 (due 20200304)
pct6 (due 20200304)
wcp6 (due 20200304)
cbf0 (due 20200311)
pct7 (due 20200311)
wcp7 (due 20200311)
pct8 (due 20200318)
wcp8 (due 20200318)
sam0 (due 20200325)
pct9 (due 20200325)
wcp9 (due 20200325)
afn0 (due 20200401)
pctA (due 20200401)
wcpA (due 20200401)
cnv0 (due 20200422)
pctB (due 20200422)
wcpB (due 20200422)
bwp1 (bonus; due 20200422)
gfo0 (due 20200429)
pctC (due 20200429)
wcpC (due 20200429)
eoce (due 20200513)
haas:spring2020:cprog:projects:gfo0

Corning Community College

CSCS1320 C/C++ Programming

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

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).

The status tool has an option 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 status tool, providing your course desig, as well as the flatten argument and the file DESIG.status.flat will be created in your current working directory.

Your program is to read in values from the cprog.status.flat file each time. No hardcoding of values! As more data items are added to your status display, and upon generation of a new flattened datafile, your program should automatically pick up and work with the new values.

The user is responsible for generating the flattened data file. Do NOT have your program generate one on each run (again, data does not change that often); I will deduct points if this is the case.

For example:

lab46:~/src/cprog/gfo0$ status cprog flatten
lab46:~/src/cprog/gfo0$ ls
cprog.status.flat
lab46:~/src/cprog/gfo0$ cat cprog.status.flat
-1 7 8 7 8 6 8 2 8 0 8 0 8 8 8 1 0 -2 4 4 8 8 11 12 13 16 19 20 24 24 100 0 0 26 24 28 -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 journal data (13% of grade)
    • -2 indicates end of journal data / start of participation data (13% of grade)
    • -3 indicates end of participation 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=gnu99 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:cnv0:final tally of results (78/78)
*:cnv0:proper error checking and algorithmic approach [13/13]
*:cnv0:correct numbers obtained and results processed [13/13]
*:cnv0:proper output formatting per specifications [13/13]
*:cnv0:runtime tests of submitted program succeed [13/13]
*:cnv0:no negative compiler messages for program [13/13]
*:cnv0:code is pushed to lab46 repository [13/13]

Additionally:

  • Solutions not abiding by spirit of project will be subject to a 25% overall deduction
  • Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
  • Solutions not utilizing consistent, sensible indentation to promote scope and clarity will be subject to a 25% overall deduction
  • Solutions not organized and easy to read are subject to a 25% overall deduction
haas/spring2020/cprog/projects/gfo0.txt · Last modified: 2020/03/27 14:25 by wedge