面向对象练习(Date类)--计算日期是一年中的第几天

面向对象练习(Date类)

/*
**项目:从键盘输入年月日,计算这一天是这一年的第几天
**时间:2020.02.29
*/

具体实现:

#include <iostream>

using namespace std;

/*
**项目:从键盘输入年月日,计算这一天是这一年的第几天
**时间:2020.02.29
*/

class Date
{
public:
	void setYear(int y);
	void setMonth(int m);
	void setDay(int d);
	void setDate(int y,int m,int d);//修改年月日

	void printDate();				//打印
	bool isLeap();					//判断闰年还是平年
	int numberofDay();				//一年中的第几天
private:
	int year;
	int month;
	int day;
};
void Date::setYear(int y)
{
	year=y;
}
void Date::setMonth(int m)
{
	month=m;
}
void Date::setDay(int d)
{
	day=d;
}
void Date::setDate(int y,int m,int d)
{
	year=y;
	month=m;
	day=d;
}

void Date::printDate()
{
	cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
}
bool Date::isLeap()
{
	//被4整除,不能被100整除  或者  能被400整除
	if(year%400==0||(year%4==0&&year%100!=0))
	{
		return true;
	}
	else
	{
		return false;
	}
}
int Date::numberofDay()
{
	int number=0;
	int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	if(isLeap())//是闰年,2月为29天
	{
		a[1]=29;
	}
	for(int i=0;i<month-1;i++)
	{
		number=a[i]+number;
	}
	number=number+day;
	return number;
}

int main()
{
	Date date;
	int y,m,d;
	cout<<"请输入年月日:";
	cin>>y>>m>>d;

	date.setDate (y,m,d);
	date.printDate();
	cout<<"是一年中的第"<<date.numberofDay()<<"天"<<endl;

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现等难度通讯录。需求: 1、定义联系⼈Contact。实例变量:姓名(拼⾳,⾸字⺟⼤写)、性别、电话号码、 住址、分组名称、年龄。⽅法:⾃定义初始化⽅法(姓名、电话号码)、显⽰联系⼈信息 2、在main.m定义字典,分组管理所有联系⼈。分组名为26个⼤写的英⽂字⺟。 3、可以添加联系⼈对象,如果姓名或电话号码为空,添加失败。添加联系⼈到匹配的分 组。 4、获取某个分组名称下所有联系⼈,并且按照姓名升序排列。 5、从通讯录根据电话号码搜索联系⼈。 6、获取所有⼥性的联系⼈,并且按照年龄的降序排列。 7、根据姓名删除某个联系⼈。 8、删除某个分组的全部联系⼈。 二.处理⼯程⽂件crayons.txt的⽂本信息,⽂本内容是关于颜⾊的,每⾏都是⼀ 个颜⾊的信息,例如:Almond #EED9C4,前⼀个字符串是颜⾊的名称,后⼀ 个字符串是颜⾊的16进制⾊值,处理⽂本完成如下需求 1、使⽤字典管理所有的颜⾊,即字典存储的是多个键值对,颜⾊名称为 key,16进制颜⾊值(不带#)是value。 2、取出所有的key,升序排列。 3、取出所有的value,按照排序后的key排列。 4、使⽤⼀个新的字典管理颜⾊,对颜⾊进⾏分管理,即:“A”,“B”,“C”… 即这个字典包含多个键值对,key是26个字⺟,value是数组,数组⾥存放的是 Color对象(包含name和colorValue)。需要⾃⼰创建Color

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值