User Tools

Site Tools


haas:fall2016:data:projects:dsi0

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
haas:fall2016:data:projects:dsi0 [2016/08/20 23:05] – [Lab46 Shell] wedgehaas:fall2016:data:projects:dsi0 [2016/08/27 18:10] (current) – [Verify Your Program] wedge
Line 13: Line 13:
   * __revision 1__: added some additional output specifications that need to be followed. There will probably be more as time goes by, so keep checking for updates (20160813)   * __revision 1__: added some additional output specifications that need to be followed. There will probably be more as time goes by, so keep checking for updates (20160813)
   * __revision 2__: nice to see people already getting started; I've had a few questions about project specifications I've clarified below, namely: your display function(s), unlike all the others, DO need to perform output. Also, I am looking for discrete append(), insert(), and obtain(), and some sort of display() functions. How you encapsulate the other functionality is left to you (combine forward/reverse? break them into separate functions?). Also, I'd recommend against using ANY global variables. Pass and return them from functions (this will be more in line with how the later projects work) (20160814)   * __revision 2__: nice to see people already getting started; I've had a few questions about project specifications I've clarified below, namely: your display function(s), unlike all the others, DO need to perform output. Also, I am looking for discrete append(), insert(), and obtain(), and some sort of display() functions. How you encapsulate the other functionality is left to you (combine forward/reverse? break them into separate functions?). Also, I'd recommend against using ANY global variables. Pass and return them from functions (this will be more in line with how the later projects work) (20160814)
 +  * __revision 3__: clarification- all prompts should display to STDERR. Only produced output (such as displaying or showing the obtained value) should go to STDOUT (20160820)
 +  * __revision 4__: added the "Verify your Program" section to highlight the availability of the 'projeval' tool (20160827)
 =====Objective===== =====Objective=====
 In this project, we get started with some course initialization and review activities. In this project, we get started with some course initialization and review activities.
Line 94: Line 96:
  
   * build list   * build list
-    * prompt the user to enter number after number, appending it to the list, until the user terminates the action by entering a -1+    * prompt the user to enter number after number, appending it to the list, until the user terminates the action by entering a -1. Prompt will display to STDERR.
     * We will check for the -1 in the array to signify the end of our list     * We will check for the -1 in the array to signify the end of our list
     * if you're crafty about it, this doesn't have to be a unique function, but a loop (even from the menu code) calling an existing function.     * if you're crafty about it, this doesn't have to be a unique function, but a loop (even from the menu code) calling an existing function.
Line 151: Line 153:
  
   * insert into list   * insert into list
-    * prompt for array index+    * prompt for array index (prompt will display to STDERR)
     * accept new value from the user     * accept new value from the user
     * without destroying any array contents, place new value BEFORE specified array index     * without destroying any array contents, place new value BEFORE specified array index
Line 178: Line 180:
  
   * append into list   * append into list
-    * prompt for array index+    * prompt for array index (prompt will display to STDERR)
     * accept new value from the user     * accept new value from the user
     * without destroying any array contents, place new value AFTER specified array index     * without destroying any array contents, place new value AFTER specified array index
Line 215: Line 217:
  
   * obtain from list   * obtain from list
-    * prompt for array index+    * prompt for array index (prompt will display to STDERR)
     * obtain value at array index and place it in a standalone variable (to be displayed to STDOUT)     * obtain value at array index and place it in a standalone variable (to be displayed to STDOUT)
     * adjust array contents to no longer include this obtained value (we've removed it from the list)     * adjust array contents to no longer include this obtained value (we've removed it from the list)
Line 302: Line 304:
   * structs   * structs
   * pointers   * pointers
 +
 +
 +=====Verify Your Program=====
 +When your program is functional, you can test it for correctness by using the **projeval** tool on lab46. A series of tests will be run, and you will be able to see if you program is in spec (SUCCESS) or out of spec (MISMATCH).
 +
 +An example of a fully compliant test run follows:
 +
 +<cli>
 +lab46:~/src/data/dsi0$ projeval dsi0program
 +[projeval] Evaluating dsi0 for username
 +[test  0] display 4 element populated list forward ...
 +           you have: [0] 2 -> [1] 4 -> [2] 6 -> [3] 8 -> [4] -1
 +          should be: [0] 2 -> [1] 4 -> [2] 6 -> [3] 8 -> [4] -1
 +             Result: SUCCESS!
 +
 +[test  1] inserting into empty list ...
 +           you have: [0] 7 -> [1] -1
 +          should be: [0] 7 -> [1] -1
 +             Result: SUCCESS!
 +
 +[test  2] appending into empty list ...
 +           you have: [0] 7 -> [1] -1
 +          should be: [0] 7 -> [1] -1
 +             Result: SUCCESS!
 +
 +[test  3] obtaining from 1 entry list ...
 +           you have: The value you obtained is: 7
 +          should be: The value you obtained is: 7
 +             Result: SUCCESS!
 +
 +[test  4] obtaining first entry from 2 entry list ...
 +           you have: The value you obtained is: 7
 +          should be: The value you obtained is: 7
 +             Result: SUCCESS!
 +
 +[test  5] obtaining second entry from 2 entry list ...
 +           you have: The value you obtained is: 8
 +          should be: The value you obtained is: 8
 +             Result: SUCCESS!
 +
 +[test  6] inserting before first entry in list ...
 +           you have: [0] 6 -> [1] 7 -> [2] -1
 +          should be: [0] 6 -> [1] 7 -> [2] -1
 +             Result: SUCCESS!
 +
 +[test  7] inserting before second entry in list ...
 +           you have: [0] 7 -> [1] 8 -> [2] 9 -> [3] -1
 +          should be: [0] 7 -> [1] 8 -> [2] 9 -> [3] -1
 +             Result: SUCCESS!
 +
 +[test  8] appending after last entry in list ...
 +           you have: [0] 7 -> [1] 8 -> [2] 9 -> [3] -1
 +          should be: [0] 7 -> [1] 8 -> [2] 9 -> [3] -1
 +             Result: SUCCESS!
 +
 +[test  9] appending after second to last entry in list ...
 +           you have: [0] 7 -> [1] 8 -> [2] 9 -> [3] -1
 +          should be: [0] 7 -> [1] 8 -> [2] 9 -> [3] -1
 +             Result: SUCCESS!
 +
 +[test 10] clearing list then appending ...
 +           you have: [0] 7 -> [1] -1
 +          should be: [0] 7 -> [1] -1
 +             Result: SUCCESS!
 +
 +[test 11] obtaining second entry from 2 entry list (check list integrity) ...
 +           you have: [0] 7 -> [1] -1
 +          should be: [0] 7 -> [1] -1
 +             Result: SUCCESS!
 +
 +[test 12] obtaining first entry from 2 entry list (checking list integrity) ...
 +           you have: [0] 8 -> [1] -1
 +          should be: [0] 8 -> [1] -1
 +             Result: SUCCESS!
 +
 +[test 13] obtaining from 1 entry list (checking list integrity) ...
 +           you have: [0] -1
 +          should be: [0] -1
 +             Result: SUCCESS!
 +
 +lab46:~/src/data/dsi0$ 
 +</cli>
  
 =====Submission Criteria===== =====Submission Criteria=====
Line 334: Line 418:
 lab46:~/src/data/dsi0$  lab46:~/src/data/dsi0$ 
 </cli> </cli>
- 
haas/fall2016/data/projects/dsi0.1471734355.txt.gz · Last modified: 2016/08/20 23:05 by wedge