C++编程题目 请高手帮个忙

1.构造一个日期时间类(Timedata),数据成员包括年月日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月用枚举类型,并完成测试(包括用成员函数和用普通函数)。
2.定义一个日期类Date,具有年月日等书序成员。显示日期、加减天数等函数成员。注意需要考虑闰年。

刚开始学 很多不会 望各位高手多多指点

昨晚本来就要贴出来的,结果电脑还是被闪了,现在给贴出来,你自己看看吧

//第一个程序你要求年和月都要用枚举,月可以,但年怎么用枚举,我不可能从公元前枚举到现在吧。
//所以年我没有用枚举,看看你是不是打错字了,然后根据自己要求自己改一下
//还有第二个程序,你要求要用普通函数实现测试,但如果用普通函数的话,数据成员就必须为公有的,
//那么就失去了c++的风格了,这个你也可以自己实现,很简单的,我想这个你应该会的
//如果有问题可以Hi我
//程序1
#include<iostream.h>
enum Month{Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Dec,Nov};

class Timedata{
enum Month month;
int year,day,hour,minute,second;
public:
void gettime(int year,enum Month month,
int day,int hour,int minute,int second);
void show();
};

void Timedata::gettime(int year,enum Month month,
int day,int hour,int minute,int second)
{
this->year=year;
this->month=month;
this->day=day;
this->hour=hour;
this->minute=minute;
this->second=second;
}

void Timedata::show()
{
cout<<month<<","<<day<<","<<year<<" ";
cout<<hour<<":"<<minute<<":"<<second<<endl;
}

int main()
{
Timedata timedata;
timedata.gettime(2009,Sep,29,23,02,25);
timedata.show();
return 0;
}

//程序2
#include<iostream.h>

class Date{
int year,month,day;
public:
Date(int year,int month,int day):year(year),month(month),day(day){}
void showdate();
void ppdate();
void dddate();
};

void Date::showdate()
{
cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
}

void Date::ppdate()
{
day++;
switch(month)
{
case 1:{if(day>31){month+=1;day=1;}break;}
case 2:{
if((year%4==0&&year%100!=0)||year%400==0)
{
if(day>29){month+=1;day=1;}break;
}
else if(day>28){month+=1;day=1;}break;
}
case 3:{if(day>31){month+=1;day=1;}break;}
case 4:{if(day>30){month+=1;day=1;}break;}
case 5:{if(day>31){month+=1;day=1;}break;}
case 6:{if(day>30){month+=1;day=1;}break;}
case 7:{if(day>31){month+=1;day=1;}break;}
case 8:{if(day>31){month+=1;day=1;}break;}
case 9:{if(day>30){month+=1;day=1;}break;}
case 10:{if(day>31){month+=1;day=1;}break;}
case 11:{if(day>30){month+=1;day=1;}break;}
case 12:{if(day>31){year+=1;month=1;day=1;}break;}
}
}

void Date::dddate()
{
day--;
switch(month)
{
case 1:{if(day<1){year-=1;month=12;day=31;}break;}
case 2:{if(day<1){month-=1;day=31;}break;}
case 3:{
if((year%4==0&&year%100!=0)||year%400==0)
{
if(day<1){month-=1;day=29;}break;
}
else if(day<1){month-=1;day=28;}break;
}
case 4:{if(day<1){month-=1;day=31;}break;}
case 5:{if(day<1){month-=1;day=30;}break;}
case 6:{if(day<1){month-=1;day=31;}break;}
case 7:{if(day<1){month-=1;day=30;}break;}
case 8:{if(day<1){month-=1;day=31;}break;}
case 9:{if(day<1){month-=1;day=31;}break;}
case 10:{if(day<1){month-=1;day=30;}break;}
case 11:{if(day<1){month-=1;day=31;}break;}
case 12:{if(day<1){month-=1;day=30;}break;}
}
}

int main()
{
Date date(2009,9,29);
date.showdate();
date.ppdate();
cout<<"Plus a day later:"<<endl;
date.showdate();
date.dddate();
cout<<"Decrease a day later:"<<endl;
date.showdate();
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

请懂C++的高手帮个忙~!
include "stdio.h"\/* 年 yr,月 mn, 日(含小时分秒)dy 返回当天的修正儒略日(modified Julian date)mjd 从1582年10月15开始使用格利高里历(就是阳历)(教皇格利高里十三世丢掉了十天--1582年十月5到14,改进了 闰年算法--400年97闰).\/ void cal_mjd(int mn,double dy,int y...

C++字符串小问题,请大家帮个忙,很简单
结果输出 abcefg 你那函数返回的只能是个char类型的数据,你返回了个char[30],这是不能实现的,c[30]只在子函数里存在,i不用再加1了,第一个for循环后,i已经是字符尾部了。

C++题目 帮个忙 上课听不懂哇。太笨了。。
第二题请看下面的代码;我已经运行过了!\/ 定义一个Point类,数据成员包括横坐标x和纵坐标y,成员函数包括构造函数和信息打印函数show_info。并从Point类公有派生Rectangle类和Circle类。其中Rectangle派生类中新增数据成员有宽度width和高度height、新增公有成员函数area计算长方形的面积 Circle派生类中新增数...

全都是一些c++基础问题,可是困扰了我很久了,明天考试,帮个忙吧~
sample(float a,char b):f(a),c(b){}这称为构造函数的初始化式,这是一种语法,记住就行了,在类中const类型的数据成员只有用这种方式初始化 3.这题没什么好说的,ta是MA类型的指针,因为ta前面有个*号,指针不是对象

c++平方和,(帮个忙,qwq)?
根据题目的要求:约定:n<=1e18,时间1s。如果按照for循环逐个累加平方和,当n很大时,必定超时。不过也有办法,数学问题就用数学去解决,可以证明 1^2+2^2+3^2+...+n^2=n(n+1)(2n+1)\/6 程序就很简单了,还有一个问题就是n的类型,因为约定:n<=1e18,需要用到64位整型来表示,long ...

求高手用c++程序编写一个三阶幻方,要用c++哦
include "iostream.h" int main() { int magic[3][3],i=0,j=1,num; const int m=3; for (i=0;i<3;i++) for(j=0;j<3;j++) magic[i][j]=0; magic[0][1]=1; i=0;j=1; for (num=2;num<=9;num++) { if (magic[(i-1+m)%m][(j+1)%m]) i++; else { ...

哪位高手帮个忙,鄙人才c++初学者,不知如何打出三角形
你的代码只能打出4行,与原图形相比少了一行,修改for(i=0;i<4;i++)为for(i=0;i<5;i++)就可以了,或者改为:for(i=1;i<=4;i++)会更好一点,这样就从第一行开始打印

怎么编写一个C++成绩查询系统程序?高手进来帮个忙
这个很简单的,学生的信息 你可以用一个结构体来存 struct student{ 学生的信息;};用列表或向量来存储 list<student> my_list;插入就my_list.push_back(要插入的学生信息);查询就用迭代器 list<student>::iterator it;遍历来查询

c++编程:将1~9分成3个一组,组内数字不能重复,组间的数字也不会重复.每...
三个数(100-999) 是完全平方数,也就是10-31 这21个数的平方。其中10就不用了,也就20个。算出这20个数,第一步,去掉数字重复的比如:11*11=121 12*12=144. 15*15=225等。余下的从第一个开始,选取和第一个数无冲突的最近的一个数为第二个,然后找第三个,如果找不到第...

数据结构 <插队买票>算法设计~~大家帮个忙~~C++程序
include<string.h> include <iostream.h> define TabSize 2000003 \/*散列表大小TabSize 是大于表最大空间的素数*\/ define Max 1000001 \/*队列空间最大值*\/ class hashtab \/*散列表数据结构*\/ {public:char name[5]; \/*名字*\/ int group; \/*属于哪个朋友组*\/ char info; ...

相似回答