Source of rem1.cpp


  1: // Filename: REM1.CPP
  2: // Purpose:  Implementation file corresponding to REM1.H.

  4: #include <iostream>
  5: #include <cstring>
  6: using namespace std;

  8: #include "REM1.H"
  9: #include "PAUSE.H"

 11: // Private members of class:
 12: //     int   date;
 13: //     char* messagePtr;

 15: //******************************************************************
 16: Reminder::Reminder(/* in */ int date,
 17:                    /* in */ const char* messageString)
 18: // Constructor
 19: // Pre:  19700101 <= date <= 29990101, and
 20: //       messageString has been initialized.
 21: // Post: A new class object has been constructed,
 22: //       having the input date and messageString.
 23: {
 24:     this->date = date;
 25:     messagePtr = new char[strlen(messageString) + 1];
 26:     strcpy(messagePtr, messageString);

 28:     // Un-comment the following two lines for run-time confirmation
 29:     // that this constructor has been called:
 30:     // cout << "Now in constructor for class Reminder (version 1) ... \n";
 31:     // Pause();  cout << endl;
 32: }


 35: //******************************************************************
 36: void Reminder::Display() const
 37: // Pre:  self is initialized.
 38: // Post: Date and message have been output in the (typical) form:
 39: //       April 20, 1944
 40: //       This is somebody's birthday.
 41: //       in which the name of the month is displayed as a string, and
 42: //       the message string is displayed on the line beneath the date.
 43: {
 44:     static char* monthString[12] =
 45:     {
 46:         "January",   "February", "March",    "April",
 47:         "May",       "June",     "July",     "August",
 48:         "September", "October",  "November", "December"
 49:     };

 51:     int year  = date/10000;
 52:     int month = date%10000 / 100;
 53:     int day   = date%10000 % 100;
 54:     cout << monthString[month-1] << ' ' << day << ", " << year << endl
 55:          << messagePtr << endl;
 56: }