万年历C语言设计_第1页
万年历C语言设计_第2页
万年历C语言设计_第3页
万年历C语言设计_第4页
万年历C语言设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

万年历的设计:

要求:模仿现实生活中的挂历,能够显示年历、月历、日历,并

具备退出功能。当前页以系统当前日期的月份为准显示当前月的每一

天(显示出日及对应的星期几)。当系统日期变到下一月时,系统自动

翻页到下一月。

万年历的程序流程图:

主要程序流程图:

具体对于月份和年份的程序图如下:

上图为计算星期方法上图为打印日历程序图

万年历的设计的程序源代码:

#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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论