版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
万年历的设计:
要求:模仿现实生活中的挂历,能够显示年历、月历、日历,并
具备退出功能。当前页以系统当前日期的月份为准显示当前月的每一
天(显示出日及对应的星期几)。当系统日期变到下一月时,系统自动
翻页到下一月。
万年历的程序流程图:
主要程序流程图:
具体对于月份和年份的程序图如下:
上图为计算星期方法上图为打印日历程序图
万年历的设计的程序源代码:
#incIude<stdio.h>
#incIude<stdIib.h>
#incIude<ctype.h>
voidf()
(
intday,month,year,sum,leap,S;
printf("\n请输入年月日\rT);
scanf(H%d%d%d",&year,&month,&day);
while(1)
(
if((month>121|month<1)||(day>31||day<1))
(
printf("输入错误,重新输入");
scanf("%d%d%d",&year,&month,&day);
)
eIsebreak;
)
switch(month)
(
case1:sum=0;break;
case2:sum=31;break;
case3:sum=59;break;
case4:sum=90;break:
case5:sum=120;break;
case6:sum=151;break;
case7:sum=181;break;
case8:sum=212;break;
case9:sum=243;break;
case10:sum=273;break;
case11:sum=304;break;
case12:sum=334;break;
defau11:printf("dataerror");break;
)
sum=sum+day;
if(year%400==0||(year%4==0&&year%100!=0))
leap=1;
eIseIeap=0;
if(Ieap==1&&month>2)
sum++;
S=(year_1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;
switch⑸
case1:printf("星期一\n");break;
case2:printf("星期二\n");break;
case3:printf("星期三\n");break;
case4:printf("星期四\n");break;
case5:printf("星期五\n");break;
case6:printf("星期六\n");break;
caseO:printf("星期日\n");break;
)
1
voidgO
(inti,j=1,k=1,a,b,month,year;
printf("\n输入年月:\n");
scanf("?id%d",&year,Amonth);
while(1)
if(month>121|month<1)
printf("输入错误,重新输入");
scanf("%d%d",&year,&month);
)
eIsebreak;
}
b=days_month(month,year);
a=firstday(month,year);
printf("*************************************\n");
printf("SunMonTueWedThuFriSat\n");
if(a==7)
(for(i=1;i<=b;i++)
(printf("%4d",i);
if(i%7=0)
{printf("\n");
)
}
1
if(a!=7)
{while(j<=4*a)
(printf("");
j++;
)
for(i=1;i<=b;i++)
(printf("%4d",i);
if(i==7*k-a)
{printf("\n");
k++;
)
)
)
pr।ntT\\门不亭亭亭亭亭亭亭亭x不亭不亭亭¥亭亭亭亭亭亭卒不不亭不亭亭亭亭亭x亭亭不平\门)•
printf("\n");}
intIeap(intyear)
{if(year%4==0&&year%100!=0||year%400==0)
return1;
eIsereturn0;
)
intdays_month(intmonth,intyear)
if(month==1||month==31|month==51|month==71month==81|month==101|month
==12)
return31;
if(month==4||month==6||month==9||month=11)
return30;
if(month==2&&Ieap(year)==1)return29;
eIsereturn28;
}
intfirstday(intmonth,intyear)
{intW;
W-(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;
returnW;
)
voidh()
{inti,j=1,k=1,a,b,month,year,g;
printf("\n输入任意年:\n");
scanf&year);
for(g=0;g<=11;g++)
month=g+1;
b=days_month(month,year);
a二firstday(month,year);
printf("%d月\n”,month);
printT\亭亭亭亭亭亭亭亭亭亭亭x亭亭亭不亭亭亭亭亭亭亭亭不亭亭亭亭亭亭亭亭亭x亭亭、门);
printf("SunMonTueWedThuFriSat\n");
if(a==7)
{for(i=1;i<=b;i++)
{printf("%4d",i);
if(i%7=0)
{printf("\n");
)
)
)
尸1;
k=1;
if(a!=7)
(whiIe(j<=4*a)
(printf("");
J++;
)
for(i=1;i<=b;i++)
(printf("%4d",i);
if(j==7*k-a)
{printf("\n");
k++;
)
)
)
prinLT\\n不不不不不不不不不x不不不不不不不不不不不不不不不不不不不不不不不不不\n);
printf("\n");
)
)
voidmain()
for(;;){
switch(menu_seIect0)(
case1:
printf("输入年月日计算星期几\n”);f();
break;
case2:
printf("打印任意日历\n”);g();
break;
case3:
printf("打印任意年历\n”);h();
break;
case4:
printf("谢谢使用!\rT);
exit(0);
)
)
}
intmenu_seIect()
(
charS;
intcn;
printf("1.输入年月日计算星期几\n");
printf("2.打印任意月历\n”);
printf("3.打印任意年历\n”);
printf(”4.谢谢使用!\n");
printf("input1-4:\n");
do{
S=getchar();
cn=(int)S-48;
)whiIe(cn<0||cn>6);
returncn;
)
万年历的运行结果截图
万年历的日历功能的实现:
回
"I:\c\Debug\wangnianli.exe'
.谢谢使用?
input1-4:
1
输入年月日计算星期几
输
年
入
月日
请
71^2
13期
20星
^^
•09
•算星期几
l.印•0w
•
U年
B.•^
3.谢•
用•
4.-.
lint-
PUl4-:
月历功能的实现:
回
「"I:\c\Debug\wangnianli.exe'
1.植入年月日计算星期几
2.打印佳翻历
3.打印隹意年历
4.谢谢f用,
input1-4:
务印任意日历
输入年月:
2013?
入
年
计算
期
日
-星几
历
i月
->
历
印
年
-t忌
谢
?
-w用
nt
pu4:
年历功能的实现:
'I:\c\Debug\wangnianli.exe"
,*I:\c\Debug\wangnianli.exe"
计
期
入
年
算
月日
星
几
-
二
历
i月
-昼
历
印
t年
-私
谢
?
-w用
nt
PH4:
输入任昌年:
2013
1月
SunMonTueWedThuFriSat
1234567
891011121314
15161718192021
22232425262728
293031
2月
SunMonTueWedThuFriSat
12345
6789101112
13141516171819
20212223242526
3月
SunMonTueUedThuFriSat
2
4678
10111213141516
17181920212223
24252627282930
31
nr
■"I:\c\Debug\wangnianli.exe"
r'l:\c\Debug\wangnianli.exe"回
12月
SunMonTueUedThuFriSat
1234567
81011121314
15161718192021
22232425262728
293031
**f*ZM『mf
计算
期
月
日
星
"几
1•二
历
E月
2-量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年女朋友高等测试题及答案
- 2026年世界神话人物测试题及答案
- 2026年教学同步测试题及答案
- 2026年铝合金模板测试题及答案
- 2026年职业趣味测试题目及答案
- 2026年语文七牛测试题及答案
- 2026年智力国际权威测试题及答案
- 2026年头雁工程测试题及答案
- 护理记录的保密性与安全性
- 护理课件:创意与技术的碰撞
- 交警队交通安全宣传课件
- 乡土特色教育在劳动教育中的应用与实施路径
- TD-T 1048-2016耕作层土壤剥离利用技术规范
- 2023年湖北省襄阳市生物中考真题(解析版)
- DL-T1362-2014输变电工程项目质量管理规程
- 同济大学课件钢结构设计原理
- 食品行业的食品安全风险评估案例分析
- 沥青路面修补恢复施工方案
- 《电能计量装置》课件
- 河北专接本化工原理汇编
- GB.T19418-2003钢的弧焊接头 缺陷质量分级指南
评论
0/150
提交评论