资源描述:
《万年历C语言设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、万年历的设计:要求:模仿现实生活中的挂历,能够显示年历、月历、日历,并具备退出功能。当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。当系统日期变到下一月时,系统自动翻页到下一月。万年历的程序流程图:主要程序流程图:Memu-slect()=1Printf(“输入年月日计算星期”)开始Memu-slect()=2Memu-slect()=3Memu-slect()=4Printf(“输入年月日计算星期”)Printf(“输入年月日计算星期”)Printf(“输入年月日计算星期”)结束具体对于月份和年份的程序图如下:1111上图为计算星期方法
2、上图为打印日历程序图11万年历的设计的程序源代码:#include#include#includevoidf(){intday,month,year,sum,leap,S;printf("请输入年月日");scanf("%d%d%d",&year,&month,&day);while(1){if((month>12
3、
4、month<1)
5、
6、(day>31
7、
8、day<1)){printf("输入错误,重新输入");scanf("%d%d%d",&year,&month,&day);}elsebreak;}s
9、witch(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;default:printf("dataerror");break;}
10、sum=sum+day;if(year%400==0
11、
12、(year%4==0&&year%100!=0))leap=1;elseleap=0;if(leap==1&&month>2)sum++;S=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;switch(S)11{case1:printf("星期一");break;case2:printf("星期二");break;case3:printf("星期三");break;case4:printf("星期四");break;case5:print
13、f("星期五");break;case6:printf("星期六");break;case0:printf("星期日");break;}}voidg(){inti,j=1,k=1,a,b,month,year;printf("输入年月:");scanf("%d%d",&year,&month);while(1){if(month>12
14、
15、month<1){printf("输入错误,重新输入");scanf("%d%d",&year,&month);}elsebreak;}b=days_month(month,year);a=firstday(mo
16、nth,year);printf("*************************************");printf("SunMonTueWedThuFriSat");if(a==7){for(i=1;i<=b;i++){printf("%4d",i);if(i%7==0){printf("");}}}if(a!=7){while(j<=4*a){printf("");j++;}for(i=1;i<=b;i++){printf("%4d",i);if(i==7*k-a)11{printf("");k++;}}}printf("****
17、*********************************");printf("");}intleap(intyear){if(year%4==0&&year%100!=0
18、
19、year%400==0)return1;elsereturn0;}intdays_month(intmonth,intyear){if(month==1
20、
21、month==3
22、
23、month==5
24、
25、month==7
26、
27、month==8
28、
29、month==10
30、
31、month==12)return31;if(month==4
32、
33、month==6
34、
35、month==9
36、
37、month==