CIS29 - Advanced C++ - Joe Bentley

Assignments: Due dates, hints, notes, corrections


How Assignments Are Graded


Note: output is required for all assignments - you must turn it in with your code.


  1. due 10/1
    Review - Spell Checker program

    This first assignment is longer and probably more difficult than the remaining assignments. You should expect to spend more time on it. You will need to clarify the program requirements. Make sure you ask for help or clarification as needed.

    Note: there was an error in the original partial output for this assignment. The second misspelled word should be struggled, not lives.


  2. due 10/8

    Review - Inheritance, Polymorphism, C++ Input/Output & File I/O

    Assignment 2 input data file Copy and paste this into a file called "ass2data"


  3. due 10/15

    A Spell Checker using string and istringstream

    Note: a last minute correction in the output. The following line should be added:
    Line 107: alleghenies not found in the Dictionary


  4. due 10/22

    More Geometry, Multiple Inheritance, and C++ Style Casts

    Assignment 4 files

    Tuesday 10/20 10 pm update:
    I would like to amend the suggestion that I made tonight regarding the approach for the overloaded GeometricSolid and ColoredThing insertion operators. I had suggested doing a "downcast" to a ColoredThing pointer inside the GeometricSolid insertion operator. I changed my mind (that's not the best approach). Try this - do the downcasts in main() - casting your Thing pointer to a GeometricSolid pointer and then to a ColoredThing pointer. This should be much easier. Here's some of my code:

    if (dynamic_cast<Solid*>(ptrThing)) 
    {
       cout << (*(dynamic_cast<Solid*>(ptrThing)));
    }
    


  5. due 11/10

    Libraries and exception handlng

    October 25th: The assignment requirements were changed - the InvalidLong exception was removed and a new input data file was added.

    Additional Notes

    1. Make sure you subtract one from the tm struct month member, tm_mon, when you assign it a value. For example, month number 7 (July) should be assigned as whatever.tm_mon = 7 - 1;
    2. Because some compilers (MS, et al) cannot store dates before 1970, you should add 100 to the year for any year value that is less than 70. For example, the date, 02/09/67, has a year of 67. You should store 167 into the tm_year member. Note, however, that the mktime() function, for some compilers can only encode dates between January1, 1970 and January 19, 2038. If your compiler cannot perform this date encoding, the mktime() function will return a -1. If this is the case, you should throw an Invalid_datetime exception.
    3. You should perform these additional checks on the date-time strings:
      1. The day of the month should not exceed 31. You do not have to perform individual checks on the maximum number of days for each month (e.g. 30, 29, 28) and don't worry about leap year.
      2. The hour should not exceed 23.
      3. The minutes and seconds should not exceed 59.
    4. If your time hour is printing off by 1 hour, try setting the tm_isdst to either 1 or 0 for daylight savings time.

  6. due 11/17

    A Generic Hash Table Spell Checker


  7. due 11/24

    Spell Checking with the STL


  8. due 12/3

[Home]