您的位置:首页 > 编程语言 > C语言/C++

实训C++语言设计——Date日期系统实现

2008-02-17 22:41 549 查看
平台:VC++ 2005 测试通过!
.vcproj
这是使用应用程序向导生成的 VC++ 项目的主项目文件。
它包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
StdAfx.h, StdAfx.cpp
这些文件用于生成名为 twod.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
这些都是使用应用程序向导生成的 VC++ 文件故不列出
我只列出程序主要部分!

 

/*********************************************************************
  本示例展示了this pointer,static member,
  static member function的使用
*********************************************************************/

// CDatePro.h

#include <iostream>
using namespace std;

class Date {
private:
   int _d,_m,_y ;
   //Date对象计数器
   static int _NumOfObj;
public: 
 Date(int d, int m, int y);
    int day()const{return _d;};
    int month()const{return _m;};
    int year()const{return _y;};
 bool operator > (const Date& Rdate); 
 
 static Date default_date;
 //修改静态成员值的静态函数
 static void set_default(int dd, int dm ,int dy);
 static int NumberOfObj(){return _NumOfObj;};
};

Date::Date(int d=0, int m=0, int y=0 ){
   _d = d; _m = m; _y = y;
   if (this != &default_date) _NumOfObj++;
};

bool Date::operator > (const Date& Rdate){
     if (this->_y > Rdate._y)
   return true;
  else if ((this->_y == Rdate._y)&&(this->_m > Rdate._m))
         return true;
       else if ((this->_m == Rdate._m)&&(this->_d > Rdate._d))
              return true;

  return false;

};

void Date::set_default(int dd, int dm ,int dy){
  default_date._d = dd;
  default_date._m = dm;
  default_date._y = dy;
};

//初始化static成员
int Date::_NumOfObj = 0;
Date Date::default_date(0,0,0);

 

// CDatePro.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "CDate.h"

int _tmain(int argc, _TCHAR* argv[])

 int day,month,year; bool response = true; char c;
 cout <<"请输入系统初始日期: "<<endl;
           cout <<"日: "; cin >> day;
        cout <<"月: "; cin >> month;
        cout <<"年: "; cin >> year;
 Date::set_default(day,month,year);
 cout <<"系统的初始日期是: "<<endl;
 cout <<Date::default_date.day()<<"/"
       <<Date::default_date.month()<<"/"
       <<Date::default_date.year()<<endl;
    cout <<"xxxxxxxxxxxxxxxxxxxxxx"<<endl;

 while( response ){
        cout <<"请输入日期"<<endl;
           cout <<"日: "; cin >> day;
        cout <<"月: "; cin >> month;
        cout <<"年: "; cin >> year;
        Date user_date(day,month,year);

     if(user_date > Date::default_date){
        cout <<"用户输入的日期是:/n"
          <<user_date.day()<<"/"
       <<user_date.month()<<"/"
       <<user_date.year() <<endl;
     cout <<"该日期大于系统默认日期!"<<endl;
     };
        cout <<"想继续测试吗? (y/n) "<<endl;
           cin >> c;
     if (c =='n')
      response = false;    
 }
    cout <<"xxxxxxxxxxxxxxxxxxxxxx"<<endl;
 Date d2(4,6,2005),d3(4,5,2000),d4(4,6,2000);
 cout <<"d2 is: "<<d2.day()<<"/"<<d2.month()<<"/"<<d2.year()<<endl;
 cout <<"d3 is: "<<d3.day()<<"/"<<d3.month()<<"/"<<d3.year()<<endl;
    cout <<"d4 is: "<<d4.day()<<"/"<<d4.month()<<"/"<<d4.year()<<endl;
   
 cout <<"程序中所生成的对象个数是: " <<Date::NumberOfObj() <<endl;

 return 0;
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息