三天打鱼两天晒网问题C++版本
来源:互联网 发布:淘宝收藏大师怎么设置 编辑:程序博客网 时间:2024/05/18 01:25
1、先判断输入的日期是否正确(因为年没有<=0,月份没有≤0并且没有大于12的,日期没有≤0并且最大不能超过31)。
2、输入的日期判断是否为闰年。
3、计算出总天数(年差天数+月差天数+天数)。
4、总天数%5求余数(余数为1,2,3代表今天打鱼,4,5代表今天晒网)。
接下来直接上干活,源代码:
#include<iostream>
using namespace std;
class Judge
{
public:
int year; //年份
int month; //月份
int day; //日期
void judge(); //判断是打鱼还是晒网
};
int main()
{
FILE *p1,*p2;
Judge M;
p1=fopen("input.txt","rb");
p2=fopen("output.txt","wb");
fscanf(p1,"&d&d&d",M.year,M.month,M.day);
cout<<"从input.txt当中读取的日期为:"<<M.year<<M.month<<M.day<<endl;
fprintf(p2,"从input.txt当中读取的日期为:%d-%d-%d\n",M.year,M.month,M.day);
M.judge();//调用judge函数
return 0;
}
void Judge::judge()
{
int n=0; //闰年个数
int Month_minus; //月数之差
int Year_minus; //年差换算成天数差
int Month,Day;
int Sum; //2010年1月1日之后的天数
int Q; //0,1,2代表打鱼,3,4代表晒网
int M; //计算闰年使用的参数
int J1,J2,J3;
FILE *p1,*p2;
cout<<"请输入年份:(只输入年份)\n";
cin>>year;
if(year<1)
cout<<"请输入正确的年份"<<endl;
else
cout<<"请输入月份:(只输入月份)\n";
cin>>month;
if(month<1||month>12)
cout<<"请输入正确的月份"<<endl;
else
cout<<"请输入日期:(只输入日期)\n";
cin>>day;
if(day<1||day>31)
cout<<"请输入正确的日期"<<endl;
else
{
//判断是否为闰年
for(M=1;M<=year;M++)
{
J1=((M%4)==0);
J2=((M%100)==0);
J3=((M%400)==0);
if( J1 && (!J2) || J2 && J3)
n++;
}
cout<<"n:"<<n<<endl; //输出闰年个数
Year_minus=(year-2010)*365+n-487;//487代表2010年之前的润年数
Month_minus=month-1; //计算月份差
switch(Month_minus)
{
case 0:
Month=0;
break;
case 1:
Month=31;
break;
case 2:
Month=59;
break;
case 3:
Month=90;
break;
case 4:
Month=120;
break;
case 5:
Month=151;
break;
case 6:
Month=181;
break;
case 7:
Month=212;
break;
case 8:
Month=243;
break;
case 9:
Month=273;
break;
case 10:
Month=304;
break;
case 11:
Month=334;
break;
}
Day=day-1;//计算天数差
Sum=Year_minus+Month+Day;//年份差,月份差,天份差之和
cout<<"year:"<<Year_minus<<endl; //输出年数的天数差
cout<<"month:"<<Month<<endl; //输出月数差
cout<<"day:"<<Day<<endl; //输出天数差
cout<<"sum:"<<Sum<<endl; //输出年数的天数差,月数差,天数差之和
Q=Sum%5; //0,1,2代表去打鱼,3,4代表晒网
cout<<Q<<endl; //输出是打鱼还是晒网
switch(Q)
{
case 0:
printf("今天打鱼\n");
fprintf(p2,"今天打鱼\n");
break;
case 1:
printf("今天打鱼\n");
fprintf(p2,"今天打鱼\n");
break;
case 2:
printf("今天打鱼\n");
fprintf(p2,"今天打鱼\n");
break;
case 3:
printf("今天晒网\n");
fprintf(p2,"今天晒网\n");
break;
case 4:
printf("今天晒网\n");
fprintf(p2,"今天晒网\n");
break;
}
}
}
- 三天打鱼两天晒网问题C++版本
- 三天打鱼两天晒网(c++)
- 三天打鱼两天晒网(c++)
- C语言三天打鱼两天晒网
- 三天打鱼两天晒网c程序代码
- C语言-三天打鱼两天晒网
- 三天打鱼两天晒网问题
- “三天打鱼两天晒网”问题
- 三天打鱼两天晒网问题
- 三天打鱼 两天晒网 问题
- 三天打鱼两天晒网问题
- C语言练习题---三天打鱼,两天晒网
- 三天打鱼两天晒网C语言代码
- 三天打鱼,两天晒网(C语言)
- 三天打鱼两天晒网C语言编程
- 三天打鱼两天晒网(C语言)
- 三天打鱼两天晒网(C语言)
- 三天打鱼,两天晒网(c语言)
- 欢迎使用CSDN-markdown编辑器
- c# 自定义字段对应数据库的基类与反射赋值
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- JVM学习之类加载
- 解决Exception in thread "http-bio-8080-exec-2" java.lang.OutOfMemoryError: PermGen space
- 三天打鱼两天晒网问题C++版本
- 情感分类--example
- Leetcode OJ Contest23 Minimum Time Difference_Leetcode539
- 浅克隆与深克隆
- Android中关于bean类的总结
- 《ACM程序设计》书中题目 K-11 build a wall
- 九度 oj 题目1548:平面上的点
- 单链表面试题(2)
- Qt C++发送图片到QML显示