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

news/2025/2/27 12:03:32

平台: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;
}


 


http://www.niftyadmin.cn/n/3242393.html

相关文章

对话框管理器第五章:将非模态对话框转为模态

今天&#xff0c;让我们应用上次学到的知识&#xff0c;将一个非模态对话框转换为模态对话框。 与往常一样&#xff0c;还是在我们的基础例子代码上添加如下内容&#xff1a; 上面的代码没有新意&#xff0c;你可能觉着没什么大不了的。它只是显示了一个对话框并根据用户点击的…

实训C++语言设计——Clock模拟时钟系统

平台&#xff1a;VC 2005 测试通过&#xff01;.vcproj这是使用应用程序向导生成的 VC 项目的主项目文件。 它包含生成该文件的 Visual C 的版本信息&#xff0c;以及有关使用应用程序向导选择的平台、配置和项目功能的信息。StdAfx.h, StdAfx.cpp这些文件用于生成名为 twod.pc…

KEIL 268错误,声明不能出现在块中可执行语句之后

user\sx5g.c(67): error: #268: declaration may not appear after executable statement in block 声明不能出现在块中可执行语句之后

实训C++语言设计——COMPUTER电脑类设计

平台&#xff1a;VC 2005 测试通过&#xff01;.vcproj这是使用应用程序向导生成的 VC 项目的主项目文件。 它包含生成该文件的 Visual C 的版本信息&#xff0c;以及有关使用应用程序向导选择的平台、配置和项目功能的信息。StdAfx.h, StdAfx.cpp这些文件用于生成名为 twod.pc…

一个代码轻松搞定continue,break,goto

continue语句只结束本次循环 break 结束整个循环 goto无条件跳转语句

对话框管理器第六章:消息循环中的细节

在上一篇文章中&#xff0c;我留下了一道课后作业&#xff1a;找到EndManualModalDialog和模态对话框消息循环之间的细微Bug。 微妙之处在于&#xff1a;EndManualModalDialog会在内部设置了一些标志&#xff0c;但没有强制消息循环注意到该标志已实际设置。回想一下&#xff…

python转xml为dbc问题解决Unable to import ‘win32ui‘

翻译&#xff1a;没有导入win32ui包 如果单纯的下载win32ui会提示报错&#xff0c;没有相应的版本 PS C:\Users\17548> python -m pip install win32ui Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple ERROR: Could not find a version that satisfies the…

实训C++语言设计——多项式Polynomial运算

平台&#xff1a;VC 2005 测试通过&#xff01;.vcproj这是使用应用程序向导生成的 VC 项目的主项目文件。 它包含生成该文件的 Visual C 的版本信息&#xff0c;以及有关使用应用程序向导选择的平台、配置和项目功能的信息。StdAfx.h, StdAfx.cpp这些文件用于生成名为 twod.pc…