1. Program Correctness (75%): The programs do everything that the lab requires. If you have a question about how a program handles a certain input, check the executables that have been provided.

    1. maxmin (15 points)
      • (6 pt) the correct minimum and maximum values for input1, input2, and input3.
      • (4 pt) prints the correct minimum and maximum values for a few test files of your own creation. These test files should be comprised solely of correct input, namely one (name score) pair per line
      • (2 pt) rounds the output to two decimal digits
      • boundary conditions
        1. (1 pt) exits without printing anything if the input file contains no numbers
        2. (1 pt) exits without printing anything if the input file is empty
        3. (1 pt) prints the correct minimum and maximum values if the input file contains only one number
    2. maxminname (15 points)
      • (2 pt) uses the correct output formatting (see the lab write-up the correct output formatting)
      • (6 pt) prints the correct minimum and maximum names for input1, input2, and input3.
      • (4 pt) prints the correct minimum and maximum names for the test files you used for maxmin.
      • (1 pt) prints the correct minimum and maximum names when there is more than one (name score) pair per line (see the answers executable for how this situation gets handled). Here is a sample file:

        	 Brad 30 20 Vander
        	 Zanden 40
        	 
        Note that they have not been given line-oriented I/O commands yet so if they use scanf they should be ok

      • (2 pt) prints DUPLICATE if there is a duplicate minimum or maximum score
    3. frequency (20 points)
      • (2 pt) output is formatted correctly, with words being left-justified in fields that are 15 characters wide.
      • (8 pt) works correctly on the fox.txt file given in the lab write-up.
      • (8 pt) works correctly on a couple general test cases that you devise. Your test cases should use threshold values that are exceeded, matched exactly, and fallen short of by the total count for the search words.
      • boundary conditions

        1. (1 pt) works correctly when the input file is empty
        2. (1 pt) works correctly when there is only one search word
    4. linebreak (25 points)
      • (2 pt) the statistics are formatted correctly, with the count labels being left-justified in fields that are 18 characters wide.
      • (8 pt) works correctly on the fox_linebreak.txt file given in the lab write-up.
      • (10 pt) works correctly on a couple general test cases that you devise. Your test cases should use a number of moderately sized line sizes and a number of moderately sized text files
      • boundary conditions

        1. (1 pt) works correctly when the input file is empty
        2. (1 pt) works correctly when the line size is 1
        3. (1 pt) works correctly when the line size is 4 (I'm picking a low number that will be exceeded by many, but not all words in the file)
        4. (1 pt) works correctly when the line size is 256
        5. (1 pt) works correctly when there is a word that is larger than 256 characters (use large.txt)

  2. Commenting (15%): Are the programs well-commented in accordance with the guidelines given on the course's lab web page.

  3. Program Style (10%): Are the programs well-organized and do they solve the problem in the most straightforward, efficient way possible?