C++语言实现“三天打鱼,两天晒网”
1.问题描述
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言实现程序解决问题。
2.基本要求
程序风格良好(使用自定义注释模板),提供友好的输入输出。
3.提高要求
1)输入数据的正确性验证。
2)使用文件进行数据测试。如将日期 20100101 20111214 等数据保存在in.txt文件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。
4.问题分析
1)计算从2010年1月1日开始至指定日期共有多少天;
2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;
3)根据余数判断他是在“打鱼”还是在“晒网”;若 余数为1,2,3,则他是在“打鱼”,否则 是在“晒网”;
4)闰年的方法可以用伪语句描述如下:
如果该年能被4除尽 且 不能被100除尽或 能被400除尽,则该年是闰年;否则该年不是闰年。
5.流程图
6.源代码
#include<iostream>
#include<fstream>
using namespace std;
class Date
{
public:
int year; //输入年
int month; //输入月
int day; //输入日
int set_date(); // 输入日期
int judge(int year); // judge函数判断闰、平年
int num_days(); // 计算输入日期到2010年1月1日有多少天
void consequence(); // 结果为打鱼还是晒网
};
int Date::set_date(void)
{
cout