本题描述:输入本年年份以及本年一月一日是星期几,输出整年日历。
#include<iostream>
#include<string>
void tableForm(int n);
int judgeDate(int n);
using namespace std;
void MakeTable(int data,int month,int days);
int isLeapYear(int year);
int judgeDatee(int dataa,int month,int IsLeapyear);
string table[] ={"喵",""," "," "," "," "," "," "};
int Leap[13][3]={{0,0,0},{0,31,31},{0,29,28},{0,31,31},{0,30,30},{0,31,31},{0,30,30},{0,31,31},{0,31,31},{0,30,30},{0,31,31},{0,30,30},{0,31,31}};
int main()
{
int year,data,datee;
cout<<"请输入一个四位数年份:"<<endl;
cin>>year;
cout<<"请输入该年元旦为星期几"<<endl;
cin>>data;
cout<<"***********"<<year<<"***********"<<endl;
for(int i = 1;i<=12;i++)
{
if(i==1)
{
MakeTable(data,i,Leap[i][isLeapYear(year)]);
datee = judgeDatee(data,i,isLeapYear(year));
}
else
{
MakeTable(datee,i,Leap[i][isLeapYear(year)]);
datee=judgeDatee(datee,i,isLeapYear(year));
}
}
return 0;
}
void tableForm(int m)
{
cout<<endl<<"-----------"<<m<<" 月 ----------"<<endl;
cout<<"七 一 二 三 四 五 六"<<endl<<endl;
}
int judgeDate(int n)
{
if(n==7)
return 1;
else if(n==1)
return 2;
else if(n==2)
return 3;
else if(n==3)
return 4;
else if(n==4)
return 5;
else if(n==5)
return 6;
else if(n==6)
return 7;
else cout<<"Wrong Answer\n";
}
void MakeTable(int data,int month,int days)
{
tableForm(month);
cout<<table[judgeDate(data)];
int temp;
if(data==7){
temp=8;
data=0;
}
else temp=8-data;
for(int i=1;i<=days;i++)
{
if(i<=7)
{
if(i==7-data)
cout<<" "<<i<<endl <<endl;
else
cout<<" "<<i<<" ";
}
else
{
if((i-temp)==6)
{
if(i==8||i==9)
{
temp+=7;
cout<<" "<<i<<endl <<endl;
}
else{
temp+=7;
cout<<""<<i<<endl <<endl;
}
}
else {
if(i==8||i==9)
{
cout<<" "<<i<<" ";
}
else cout<<i<<" ";
}
}
}
}
int isLeapYear(int year)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
return 1;
else
return 2;
}
int judgeDatee(int dataa,int month,int IsLeapyear)
{
int tem = dataa+Leap[month][IsLeapyear]%7;
if(tem>7)
return tem-7;
else if(tem == 0)
return 7;
else return tem;
}
我历时两天断断续续写了出来这个程序,源于课本的课后题作业,有需要的同学可以参考一下。 另外我写的这个没有注释,有不懂的地方可以QQ问我。
效果:
请输入一个四位数年份:
2017
请输入该年元旦为星期几
7
***********2017***********
-----------1 月 ----------
七 一 二 三 四 五 六
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
-----------2 月 ----------
七 一 二 三 四 五 六
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28
-----------3 月 ----------
七 一 二 三 四 五 六
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
-----------4 月 ----------
七 一 二 三 四 五 六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
-----------5 月 ----------
七 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
-----------6 月 ----------
七 一 二 三 四 五 六
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
-----------7 月 ----------
七 一 二 三 四 五 六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
-----------8 月 ----------
七 一 二 三 四 五 六
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
-----------9 月 ----------
七 一 二 三 四 五 六
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
-----------10 月 ----------
七 一 二 三 四 五 六
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
-----------11 月 ----------
七 一 二 三 四 五 六
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
-----------12 月 ----------
七 一 二 三 四 五 六
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
不错。寒假要学算法==。有个蓝桥杯。
现在学C++的不多了额,大多数学PHP