C++程序设计 |谭浩强第七章课后题
1.定义一个结构体变量(包括年月日),编写程序,要求输入年月日,程序能计算出该日是本年中的第几天。注意闰年问题。
#include <iostream>
using namespace std;
struct Date
{
int year;
int month;
int day;
};
int main(int argc, char *argv[]) {
cout<<"请输入年、月、日:"<<endl;
struct Date date;
cin>>date.year;
cin>>date.month;
cin>>date.day;
int day_tab[13]={
0,31,28,31,30,31,30,31,31,30,31,30,31};
int days = 0;
for(int i= 0;i<date.month;i++)
{
days+=day_tab[i];
days+=date.day;
}
if((date.year%4==0 && date.year%100!=0 || date.year%400 ==0)&& date.month>2)
{
days+=1;
}
cout<<date.month<<"月"<<date.day<<"日是"<<date.year<<"年的第"<<days<<"天"<<endl;
}
如果用面向对象的方法:
#include <iostream>
using namespace std;
class Date
{
public:
void set_date();
int days();
void show_date();
public:
int year;
int month;
int day;
};
void Date:: set_date()
{
cout<<"请输入年、月、日:"<<endl;
cin>>year;
cin>>month;
cin>>day;
}
int Date:: days()
{
int day_tab[13]={
0,31,28,31,30,31,30,31,31,30,31,30,31};
int days = 0;
for(int i= 0;i<month;i++)
{
days+=day_tab