}
intmain()
小月
闰年二月
非闰年二月
输出日历表
"<<'\t'<<"三"<<'\t'<<"四"<<'\t'<<"
{
ints,count=0;
cout<<"请输入年份:
cin>>year;cout<c=year;
for(s=1;s<=year;s++)
if(((s-1)%4==0&&(s-1)%100!
=0)||(s-1)%400==0)
count++;
day=365*c+count;//
cout<k=(day%7+6)%7+1;
cout<<"一月"<g(a,50);
if((year%4==0&&year%100!
=0)||year%400==0)//闰年二月{
k=((day+31)%7+6)%7+1;
cout<<"二月"<f3(k);
g(a,50);
day=day+31+29;
}
非闰年二月
else//
{k=((day+31)%7+6)%7+1;
cout<<"二月"<g(a,50);day=day+31+28;
}k=(day%7+6)%7+1;
cout<<"三月"<g(a,50);
k=((day+31)%7+6)%7+1;
cout<<"四月"<g(a,50);
k=((day+31+30)%7+6)%7+1;
cout<<"五月"<f1(k);
g(a,50);
k=((day+31+30+31)%7+6)%7+1;
cout<<"六月"<f2(k);
g(a,50);
k=((day+31+30+31+30)%7+6)%7+1;
cout<<"七月"<f1(k);
g(a,50);
k=((day+31+30+31+30+31)%7+6)%7+1;
cout<<"八月"<f1(k);
g(a,50);
k=((day+31+30+31+30+31+31)%7+6)%7+1;
cout<<"九月"<f2(k);
g(a,50);
k=((day+31+30+31+30+31+31+30)%7+6)%7+1;
cout<<"十月"<f1(k);
g(a,50);
k=((day+31+30+31+30+31+31+30+31)%7+6)%7+1;
cout<<"十一月"<f2(k);
g(a,50);
k=((day+31+30+31+30+31+31+30+31+30)%7+6)%7+1;
cout<<"十二月"<f1(k);
g(a,50);
return0;
}
_fFs\C*iMFf-qXjLa-vfevuQiXrF-iain-
.ww,
|g.冃
H
——
—
—
LLy
TT
-二r.
1
:
"E
IH
■4
St.
r»
V
M
V
IR1
11
IN
II
14
H••
1f・
1M
1
MM
1
NN
M:
1
SE-4
b-E=.
:
:
^EM
3EV
:
IPf
K冃
H
——
—
=
t±y
T7
._j_d~x
I
:
-!
4
:
.
<.
H
1M
IIII
1>!
HIII
14
I
1f>
1
IIM
1■/
:
-;M
:
1
Zi:
:
-!
U:
l
N>4
□eTz
^EN
34■/
:
lM
III1
七冃
H
——
—
—
LLy
TT
-二r.
1
:
^E
III
■4
"■
r.
h
M
■z
Hkfl
■1
I託
i:
i
14
II
1■・
HP
1N
I■/
:
-!
M
之1
KN
:
^E:
I
SC4
:
■!
r.
E-EP
:
:
-:
H
KF
:
:
IPI
Lii冃
5•代码分析
大月和小月的定义
大月
voidf1(intx)//
{
for(i=0;i<50;i++)
a[i]=33;
for(i=k-1;i>=0;i--)
a[i]='\000';//1号前均为空格
for(i=k;i<31+k;i++)
a[i]=a[i-1]+1;
}
主要运用了数组的循环语句进行对大月的定义。
voidf2(intx)//小月
{
for(i=0;i<50;i++)
a[i]=33;
for(i=k-1;i>=0;i--)
a[i]='\000';
for(i=k;i<30+k;i++)
a[i]=a[i-1]+1;
}
依然用数组的循环语句进行对小月的定义。
数组的循环语句是C++中一个很重要的知识,数组可以节省很多的定义,一个句子就可以就可以输出很多的数,这样大大减少了计算机的存储空间。
这正是一个很打的进步。
2.5.2闰年与非闰年二月的定义
voidf3(intx)//闰年二月
{
for(i=0;i<50;i++)
a[i]=33;
for(i=k-1;i>=0;i--)
a[i]='\000';
for(i=k;i<29+k;i++)
a[i]=a[i-1]+1;
}
voidf4(intx)//非闰年二月
{
for(i=0;i<50;i++)
a[i]=33;
for(i=k-1;i>=0;i--)
a[i]='\000';
for(i=k;i<28+k;i++)
a[i]=a[i-1]+1;
}
用两个函数定义了在闰年与非闰年时,二月的不同定义。
这主要运用到变量的不同定义。
从而分辨出它们的不同,使可打印出任一年的日历。
2.5.3日历表的输出
ints,count=0;
cout<<"请输入年份:
cin>>year;
cout<c=year;
for(s=1;s<=year;s++)
if(((s-1)%4==0&&(s-1)%100!
=0)||(s-1)%400==0)
count++;
cout<在此运用了C++中函数的运算,计算出该年的每月每日的不同。
还有一年的输入和输出。
在C++语言中,函数的运算又分为很多种,此次用的是在输出时,闰年与非闰年二月的输出法的定义if((year%4==0&&year%100!
=0)||year%400==0)//闰年二月
{
k=((day+31)%7+6)%7+1;
cout<<"二月"<f3(k);
g(a,50);
day=day+31+29;
}
else//非闰年二月
{
k=((day+31)%7+6)%7+1;
cout<<"二月"<f4(k);
g(a,50);
day=day+31+28;
}此处主要运用了if语句来对闰年与非闰年的二月的不同定义的输出。
if语句一种可跳过不符合条件的语句,继续下面的语句的执行。
它具有很强的实用性。
在实际的操作中经常会用到的,是一个很重要的知识。
6.改进措施
程序的显示面板颜色程序没有,太难看了,因此将面板颜色的程序加上了
西安科技大学2009级C++实验报告
7.改进后的代码
#include
#include#includeusingnamespacestd;inti,c,day,year,k,a[50];
voidf1(intx)//大月
{
for(i=0;i<50;i++)
a[i]=33;for(i=k-1;i>=0;i--)
a[i]='\000';//1号前均为空格for(i=k;i<31+k;i++)
a[i]=a[i-1]+1;
}
voidf2(intx)//小月
{
for(i=0;i<50;i++)a[i]=33;
for(i=k-1;i>=0;i--)a[i]='\000';
for(i=k;i<30+k;i++)a[i]=a[i-1]+1;
}
voidf3(intx)//闰年二月
{
for(i=0;i<50;i++)a[i]=33;
for(i=k-1;i>=0;i--)a[i]='\000';
for(i=k;i<29+k;i++)a[i]=a[i-1]+1;
}
voidf4(intx)//非闰年二月
{
for(i=0;i<50;i++)a[i]=33;
for(i=k-1;i>=0;i--)a[i]='\000';
for(i=k;i<28+k;i++)a[i]=a[i-1]+1;
voidg(inty[],intz)//输出日历表
{
cout<<"日"<<'\t'<<"——"<<'\t'<<"二"<<'\t'<<"三"<<'\t'<<"四"<<'\t'<<"五"<<'\t'<<"六"<{
if(a[i]==0)
cout<<(char)a[i]<<'\t';
if(a[i]!
=0&&a[i]!
=33)
cout<else;
if(i%7==0)
cout<}
cout<}
intmain()
{
ints,count=0;
HANDLEhStdout=:
:
GetStdHandle(STD_OUTPUT_HANDLE);
:
:
SetConsoleTextAttribute(
hStdout,
FOREGROUND_RED|BACKGROUND_BLUE);
system("colorac");
cout<<"请输入年份:
";
cin>>year;
cout<c=year;
for(s=1;s<=year;s++)
if(((s-1)%4==0&&(s-1)%100!
=0)||(s-1)%400==0)
count++;
day=365*c+count;
//相差天数
cout<<"*********************"<cout<年日历*********************";
k=(day%7+6)%7+1;
cout<<"一月"<//闰年二月
g(a,50);
if((year%4==0&&year%100!
=0)||year%400==0){
k=((day+31)%7+6)%7+1;
cout<<"二月"<f3(k);
g(a,50);day=day+31+29;
}
else//非闰年二月
{k=((day+31)%7+6)%7+1;
cout<<"二月"<f4(k);
g(a,50);day=day+31+28;
}k=(day%7+6)%7+1;
cout<<"三月"<f1(k);
g(a,50);
k=((day+31)%7+6)%7+1;
cout<<"四月"<f2(k);
g(a,50);
k=((day+31+30)%7+6)%7+1;
cout<<"五月"<f1(k);
g(a,50);
k=((day+31+30+31)%7+6)%7+1;
cout<<"六月"<f2(k);
g(a,50);
k=((day+31+30+31+30)%7+6)%7+1;
cout<<"七月"<f1(k);
g(a,50);
k=((day+31+30+31+30+31)%7+6)%7+1;
cout<<"八月"<f1(k);
g(a,50);
k=((day+31+30+31+30+31+31)%7+6)%7+1;
cout<<"九月"<f2(k);
g(a,50);
k=((day+31+30+31+30+31+31+30)%7+6)%7+1;cout<<"十月"<f1(k);
g(a,50);
k=((day+31+30+31+30+31+31+30+31)%7+6)%7+1;cout<<"十~■月"<f2(k);g(a,50);
k=((day+31+30+31+30+31+31+30+31+30)%7+6)%7+1;cout<<"十二月"<f1(k);
g(a,50);
return0;
}