帮忙改下代码,并稍加注释。

kaihongmail 2009-05-09 08:50:00
显示星期几的一个程序,谢谢啦:

#include <iostream>
#include <string>
using namespace std;
class Date{
public:
void init(int,int,int);
void weekDay(Date d);
void print();

private:
int y;
int m;
int d;
int week;
};
void Date::init(int year,int month,int day)
{
y=year;
m=month;
d=day;
};
void Date::weekDay(Date d)
{
y=y%100;
if(m==1) {m=13;y=y-1;}
else
if(m==2) {m=14;y=y-1;}
week=(26*(m+1)/10+y+y/4-2*y/100+y/400+d-1)%7;
}
void Date::print()
{
cout < <y < <"年" < <m < <"月" < <d < <"日" < <endl;
cout < <"今天是星期" < <week < <endl;
};
int main()
{
Date d;
d.init(2009,5,12);
d.print();
return 0;
}
...全文
84 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
霍大脚 2009-05-09
  • 打赏
  • 举报
回复
小程序自己打开VC慢慢改啊,不要一味让别人改
amossavez 2009-05-09
  • 打赏
  • 举报
回复
这个能运行通过,你看看!!

#include <iostream>
//#include <string>
using namespace std;
class Date{
public:
Date(){};
~Date(){};
void init(int,int,int);
void weekDay();
void print();

private:
int y;
int m;
int d;
int week;
};
void Date::init(int year,int month,int day)
{
y=year;
m=month;
d=day;
}
void Date::weekDay()
{
y=y%100;
if(m==1) {m=13;y=y-1;}
else
if(m==2) {m=14;y=y-1;}
week=(26*(m+1)/10+y+y/4-2*y/100+y/400+d-1)%7;
}
void Date::print()
{
cout <<y <<"年" <<m <<"月" <<d <<"日" <<endl;
cout <<"今天是星期" <<week <<endl;
}
int main()
{
Date d;
d.init(2009,5,12);
d.weekDay();
d.print();
return 0;
}
lingyin55 2009-05-09
  • 打赏
  • 举报
回复
运行结果,数据也改好了,看看吧

2009年5月12日
今天是星期tuesday
请按任意键继续. . .


#include <iostream>
#include <string>
using namespace std;

const char *name[] = { "monday",//////定义一个数组,用于显示星期几
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
};


class Date{
public:
void init(int,int,int);
void weekDay();
void print();

private:
int y;
int m;
int d;
int week;
};
void Date::init(int year,int month,int day) ///////初始化年月日
{
y=year;
m=month;
d=day;
weekDay();//////根据初始化的年月日计算星期几
};
void Date::weekDay() ///////////计算星期的实现
{
if ((m == 1) || (m == 2)){
m += 12;
y--;
}

week = (d + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400) % 7;
}
void Date::print() ///////////////打印
{
cout <<y <<"年" <<m <<"月" <<d <<"日" <<endl;
cout <<"今天是星期" <<name[week] <<endl;
};
int main()
{
Date d; ///////////定义类对象
d.init(2009,5,12); ////////////初始化
d.print(); ////////////打印
return 0;
}


  • 打赏
  • 举报
回复

[code=C/C++]
class Date{
public:
void init(int,int,int);
void weekDay(); //这里不需要Date d形参
void print();

private:
int y;
int m;
int d;
int week;
};
void Date::init(int year,int month,int day)
{
y=year;
m=month;
d=day;
};
void Date::weekDay()
{
y=y%100;
if(m==1) {m=13;y=y-1;}
else
if(m==2) {m=14;y=y-1;}
week=(26*(m+1)/10+y+y/4-2*y/100+y/400+d-1)%7;
}
void Date::print()
{
cout <<y <<"年" <<m <<"月" <<d <<"日" <<endl;
cout <<"今天是星期" <<week <<endl;
};
int main()
{
Date d;
d.init(2009,5,12);
d.print();
return 0;
}


[/code]
  • 打赏
  • 举报
回复

class Date{
public:
void init(int,int,int);
void weekDay(); //这里不需要Date d形参
void print();

private:
int y;
int m;
int d;
int week;
};
void Date::init(int year,int month,int day)
{
y=year;
m=month;
d=day;
};
void Date::weekDay()
{
y=y%100;
if(m==1) {m=13;y=y-1;}
else
if(m==2) {m=14;y=y-1;}
week=(26*(m+1)/10+y+y/4-2*y/100+y/400+d-1)%7;
}
void Date::print()
{
cout <<y <<"年" <<m <<"月" <<d <<"日" <<endl;
cout <<"今天是星期" <<week <<endl;
};
int main()
{
Date d;
d.init(2009,5,12);
d.print();
return 0;
}

哈利路亚1874 2009-05-09
  • 打赏
  • 举报
回复
我想提醒一下楼主,你的代码风格不规范;
帮你纠正一下,功能楼上的已经帮你实现了
void init(int,int,int);————>void init(int year,int month,int day);
void print();————>void print(void);
if(m==1)
{
m=13;y=y-1;
}
else
if(m==2)
{
m=14;y=y-1;
}
week=(26*(m+1)/10+y+y/4-2*y/100+y/400+d-1)%7;
其他的你也要规范一下,这对开发来说是很重要的,希望楼主不要忽略!

lingyin55 2009-05-09
  • 打赏
  • 举报
回复


#include <iostream>
#include <string>
using namespace std;
class Date{
public:
void init(int,int,int);
void weekDay(); /////////////去掉参数
void print();

private:
int y;
int m;
int d;
int week;
};
void Date::init(int year,int month,int day)
{
y=year;
m=month;
d=day;
};
void Date::weekDay() //////去掉参数,d是成员变量,直接可以使用
{
y=y%100;
if(m==1) {m=13;y=y-1;}
else
if(m==2) {m=14;y=y-1;}
week=(26*(m+1)/10+y+y/4-2*y/100+y/400+d-1)%7;
}
void Date::print()
{
cout <<y <<"年" <<m <<"月" <<d <<"日" <<endl;
cout <<"今天是星期" <<week <<endl;
};
int main()
{
Date d;
d.init(2009,5,12);
d.print();
return 0;
}
mengde007 2009-05-09
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

class date
{
public:
void init(int,int,int);
void weekday();
void print();

private:
int y;
int m;
int d;
int week;
};

void date::init(int year,int month,int day)
{
y=year;
m=month;
d=day;
}

void date::weekday() //Date d此参数为多余的;
{
y=y%100;
if(m==1) {m=13;y=y-1;}
else if
(m==2) {m=14;y=y-1;}
week=(26*(m+1)/10+y+y/4-2*y/100+y/400+d-1)%7;
}

void date::print()
{
cout <<y <<"年" <<m <<"月" <<d <<"日" <<endl;
cout <<"今天是星期" <<week <<endl;
}

int main()
{

date d;
d.init(2009,5,12);
d.weekday();
d.print();
return 0;

}

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧