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

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

2008-02-17 22:41 357 查看
平台: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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: