12_2_4.c
上传用户:wyn840322
上传日期:2007-01-13
资源大小:294k
文件大小:3k
源码类别:

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*   程序实例: 12_2_4.cpp                  */
  3. /*    类的除构函数 - 使用结构数据型态     */
  4. /* ======================================== */
  5. #include <iostream.h>
  6. struct dateType                    /* 日期结构声明       */
  7. {
  8.     int day;                       /* 结构数据           */  
  9.     int month;
  10.     int year;
  11. };
  12. class date                         /* date类声明       */
  13. {
  14. private:
  15.     dateType *today;               /* 结构指标           */ 
  16.     int validDate(int d, int m, int y);  /* 成员函数声明 */
  17. public:
  18.     date();                              /* 构造函数声明 */
  19.     ~date();                             /* 除构函数声明 */
  20.     int setDate(int d, int m, int y);    /* 成员函数声明 */
  21.     void printDate();
  22. };
  23. /* ---------------------------------------- */
  24. /*  成员函数: 检查时间参数是否合法          */
  25. /* ---------------------------------------- */
  26. int date::validDate(int d, int m, int y)
  27. {
  28.     /* 检查日期数据是否在范围内 */
  29.     if (d < 1 || d > 31) return 0;
  30.     if (m < 1 || m > 12) return 0;
  31.     if (y < 1900) return 0;           /* 不在范围内           */
  32.     return 1;                         /* 合法日期数据         */
  33. }
  34. /* ---------------------------------------- */
  35. /*  构造函数: 设置成员数据初始值            */
  36. /* ---------------------------------------- */
  37. date::date()
  38. {
  39.     dateType *newDay = new dateType;  /* 分配结构的内存 */
  40.     newDay->day = 1;                  /* 设置日期              */
  41.     newDay->month = 1;                /* 设置月份              */
  42.     newDay->year = 2001;              /* 设置年份              */
  43.     today = newDay;
  44. }
  45. /* ---------------------------------------- */
  46. /*  构造函数: 释放结构的内存              */
  47. /* ---------------------------------------- */
  48. date::~date()
  49. {
  50.     delete today;                    /* 释放分配的内存 */
  51. }
  52. int date::setDate(int d, int m, int y)
  53. {
  54.     if (validDate(d, m, y))    /* 检查时间参数是否合法  */
  55.     {
  56.        today->day = d;         /* 设置日期              */
  57.        today->month = m;       /* 设置月份              */
  58.        today->year = y;        /* 设置年份              */
  59.        return 1;               /* 设置成功              */
  60.     }
  61.     else
  62.     {
  63.        return 0;               /* 设置失败              */
  64.     }
  65. }
  66. void date::printDate()
  67. {
  68.     /* 输出成员数据的月, 日和年 */
  69.     cout << today->month << '-' << today->day << '-' << today->year << 'n';
  70. }
  71. /* ---------------------------------------- */
  72. /*  主程序: 设置和输出date对象              */
  73. /* ---------------------------------------- */
  74. void main()
  75. {
  76.     date birthday;              /* 声明对象               */
  77.     birthday.setDate(3,9,1976); /* 使用成员函数设置初始值 */
  78.     cout << "生日日期 : ";
  79.     birthday.printDate();       /* 使用成员函数输出日期   */
  80. }