用C++解决“三天打鱼两天晒网”问题

用C++解决“三天打鱼两天晒网”问题

1.问题描述

中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言实现程序解决问题。
基本要求:1.程序风格良好(使用自定义注释模板),提供友好的输入输出。
提高要求:1.输入数据的正确性验证。
2.使用文件进行数据测试。如将日期 20100101 20111214 等数据保存在in.txt文件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。

2.算法分析

(1) 要计算从2010年1月1日起到指定的某一天共有多少天
在此重要的是要判断闰年,平年加365天闰年加366天;判断闰年的方法是:年份能被4除尽而不能被100除尽或者能被400除尽(year%4==0&&year%100!=0||year%400=0)

(2) “打鱼”“晒网”的周期是5天,所以可以用计算出来的天数除以5,根据余数判断是在“打鱼”还是“晒网”:余数1,2,3是在打鱼4,0是在晒网
(3)算法流程图:在这里插入图片描述

3.源代码

/*
	Name: 判断打鱼还是晒网 
	Copyright: 2021 Lu 
	Author:Lu 
	Date: 21/03/21 23:22
	Description: 输入年份日期判断是否输入正确,
                计算天数,平年加365天 闰年加366天; 
                对天数取余,判断打鱼还是晒网;
 
*/ 
#include "iostream"
#include "fstream"
using namespace std;

class Time{
   
	//定义年月日
	private:
	int year;
	int month;
	int day;
	int alldays;//距2010年1月1日总天数
	int monthd[12];//记平年每月天数 
	int dday;//除5取余的余数 
	public:

	 int Calculdays(); //算天数,每年先按365天计算,在判断有几个闰年再加几天 
	 int Judge();    //判断年份输入正确与否打鱼晒网
	
	
 
};
//计算天数 
int Time::Calculdays() 
{
   
     alldays
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值