三天打鱼两天晒网

#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
using namespace std;
class use
{
	public:
		void write();
		void cal();
		void save();
		void judge();
	private:
		int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//平年每个月的天数 
		int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年每个月的天数 
		int x,y,z;//客户输入的年月日 
		int d;//记录客户输入日期距离2010年1月1日的天数
		int flag;//表示判断结果 
};
//客户录入日期至“in.txt” 
 void use::write()
{
	FILE *fp;//创建一个可以指向文件的指针 
	fp=fopen("in.txt","w");//向文件”in.txt“中写入信息 
	cout<<"请输入年:";
	cin>>x;
	while(x<2010)//判断输入日期是否合理 
	{
		cout<<"输入日期不合理,请重新输入\n";
		cin>>x; 
	}
	cout<<"请输入月:";
	cin>>y;
	while(y==0||y>12)//判断输入日期是否合理 
	{
		cout<<"输入日期不合理,请重新输入\n";
		cin>>y; 
	}
	cout<<"请输入日:";
	cin>>z;
	if((x%4==0&&x%100!=0)||x%400==0)//判断输入日期是否合理 
	{
		if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)
		while(z=0||z>31)
		{
			cout<<"输入日期不合理,请重新输入\n";
		    cin>>z; 
		}
		if(y==4||y==6||y==9||y==11)
		while(z=0||z>30)
		{
			cout<<"输入日期不合理,请重新输入\n";
		    cin>>z; 
		}
		if(y==2)
		while(z=0||z>29)
		{
			cout<<"输入日期不合理,请重新输入\n";
		    cin>>z; 
		}
	}
	else
	{
		if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)
		while(z=0||z>31)
		{
			cout<<"输入日期不合理,请重新输入\n";
		    cin>>z; 
		}
		if(y==4||y==6||y==9||y==11)
		while(z=0||z>30)
		{
			cout<<"输入日期不合理,请重新输入\n";
		    cin>>z; 
		}
		if(y==2)
		while(z=0||z>28)
		{
			cout<<"输入日期不合理,请重新输入\n";
		    cin>>z; 
		}
	}
	fprintf(fp,"\n%d %d %d",x,y,z);
	fclose(fp);
}
//计算天数
void use::cal()
{
	int i;
	for(i=2010;i<x;i++)
	{
		if((i%4==0&&i%100!=0)||i%400==0)//判断i是闰年还是平年 
		{
			d+=366;
		}
		else
		{
			d+=365;
		}
	}
	for(i=1;i<y;i++)
	{
		if((i%4==0&&i%100!=0)||i%400==0)
		{
			d+=b[i];
		}
		else
		{
			d+=a[i];
		}
	}
	d+=z;
}
//判断当日是打鱼还是晒网 
void use::judge()
{
	if(d%5<=3&&d%5!=0)
	{
		flag=1;
	}
	else
	{
		flag=0;
	}
}
//保存结果至“out.txt” 
void use::save()
{
	ofstream myfile("out.txt",ios::out);//定义一个输出流对象myfile,就是可以向out.txt这个文件写数据
	if(flag)//判断今天是在做什么 
	{
		cout<<"今天在打鱼" ; 
		myfile<<"今天在打鱼" ; //向文件”out.txt“输入内容 
	}
	else
	{
		cout<<"今天在晒网" ;
		myfile<<"今天在晒网" ;//向文件”out.txt“输入内容 
	} 
}
int main()
{
	use user;
	user.write();
	user.cal();
	user.judge();
	user.save(); 
	return 0;
}
    这个代码运行后操纵者输入当前的日期可得到在打鱼还是晒网。作为刚起步不久的学生,我的代码很繁杂,不够简洁,就比如检查数据异常返回重新输入的那段代码。还有我对文件的操作并不熟悉,可以说是刚接触,所以代码顺序很乱。如果有什么建议或能改进的地方希望能多多指点。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值