万年历程序设计.docx

上传人:b****3 文档编号:4916369 上传时间:2022-12-11 格式:DOCX 页数:15 大小:21.21KB
下载 相关 举报
万年历程序设计.docx_第1页
第1页 / 共15页
万年历程序设计.docx_第2页
第2页 / 共15页
万年历程序设计.docx_第3页
第3页 / 共15页
万年历程序设计.docx_第4页
第4页 / 共15页
万年历程序设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

万年历程序设计.docx

《万年历程序设计.docx》由会员分享,可在线阅读,更多相关《万年历程序设计.docx(15页珍藏版)》请在冰豆网上搜索。

万年历程序设计.docx

万年历程序设计

 

万年历

 

一、大赛目的

本着丰富大学生学习生活的同时,为使学生学以致用,能将学习与生活中遇到的实际问题转化为计算机专业的问题,并给予合理的解决。

以期培养学生专业的逻辑思维能力,以专业的知识解决问题的能力。

二、实验环境(实验设备)

•Window7操作系统,VisualC++

三、程序的功能:

用户可以通过主菜单选择不同的选项:

输入1,进入万年使用说明界面;输入2,进入万年历的年查询界面,在此界面根据提示,输入需查询的年份,便可输出全年各月份的日历,并清楚地显示每天是星期几,且在每个月份日历下面提示该月份重要的国内外阳历节日;输入3,进入万年历的月查询界面,在此界面根据提示输入需查询的年月份,便可直接进入该月份的日历,并提示该月份的国内外重要阳历节日;输入4,进入万年的日查询界面,根据界面的提示,输入年月日,从而清楚地显示出年月日和对应的星期,并清楚地判断南邮70周年校庆是否成功举办,若还没举办,输出距离输入的日期还有多少天;输入5,退出万年历查询系统。

四、程序用到的重要算法和语句:

(1)判断该年份是否为闰年:

条件:

if(year%4!

=0||year%100==0&&year%400!

=0)真,表示为平年假,表示为闰年。

(2)判断任意一年的第一个月的第一天为星期几:

a=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7;y:

年份

(3)计算下一个月的第一天为星期几:

a=(a+m)%7;m:

月份

(4)计算任意一年的任意一月的第一天为星期几:

a=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1;

(5)if…..;elseif…..;else…..;

(6)do{…..}while(……);

(7)switch(…..){case0:

…….;case1:

………..};

五、程序的源代码:

#include

#include

#include

intjudge(intyear,intmonth)/*定义一个函数,把月分为四类(28,29,30,31)*/

{

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)

return

(1);/*31天的月份,返回值为1*/

elseif(month==2)

{

if(year%4!

=0||year%100==0&&year%400!

=0)

return

(2);/*平年的2月份,返回值为2*/

elsereturn(3);/*闰年的2月份,返回值为3*/

}

elsereturn(4);/*30天的月份,返回值为4*/

}

voidholiday(intmonth)/*定义阳历节日函数*/

{printf("友情提示:

\n");

if(month==0)

{printf("1月1日:

元旦\n");}

elseif(month==1)

{printf("2月2日:

世界湿地日2月14日:

情人节\n");}

elseif(month==2)

{printf("3月3日:

全国爱耳日3月5日:

青年志愿者服务日3月8日:

国际劳动妇女节\n");

printf("3月9日:

保护母亲河日3月12日:

植树节3月14日:

白色情人节\n");

printf("3月15日:

世界消费者权益日3月20日:

邮政节3月23日:

世界气象节\n");

printf("3月22日:

世界水日3月24日:

世界防治结核病日\n");}

elseif(month==3)

{printf("4月1日:

愚人节4月5日:

清明节4月7日:

世界卫生日\n");

printf("4月22日:

世界地球日4月26日:

世界知识产权日\n");}

elseif(month==4)

{printf("5月1日:

国际劳动节5月3日:

世界哮喘日5月4日:

中国青年节\n");

printf("5月8日:

世界红十字日5月12日:

国际护士节5月15日:

国际家庭日\n");

printf("5月17日:

世界电信日5月20日:

全国学生营养日5月23日:

国际牛奶日\n");

printf("5月31日:

世界无烟日\n");}

elseif(month==5)

{printf("6月1日:

国际儿童节6月5日:

世界环境日6月6日:

全国爱眼日\n");

printf("6月17日:

世界防治荒漠化和干旱日6月23日:

国际奥林匹克日\n");

printf("6月25日:

全国土地日6月26日:

国际禁毒日\n");}

elseif(month==6)

{printf("7月1日:

中国建筑日7月7日:

中国人民抗日战争纪念日7月11日:

世界人口日\n");}

elseif(month==7)

{printf("8月1日:

中国人民解放军建军节8月12日:

国际青年节\n");}

elseif(month==8)

{printf("9月8日:

国际扫盲日9月10日:

中国教师节9月16日:

中国脑健康日\n");

printf("9月16日:

国际臭氧层保护日9月20日:

全国爱牙日9月21日:

世界停火日\n");

printf("9月27日:

世界旅游日\n");}

elseif(month==9)

{printf("10月1日:

国庆节10月1日:

世界老年人节10月4日:

世界动物日\n");

printf("10月5日:

世界教师节10月8日:

全国高血压节10月10日:

世界精神卫生日\n");

printf("10月15日:

世界盲人节10月16日:

世界粮食日10月17日:

国际消除贫困日\n");

printf("10月24日:

联合国日10月28日:

中国男性健康日10月29日:

国际生物多样性日\n");

printf("10月31日:

万圣节\n");}

elseif(month==10)

{printf("11月8日:

中国记者日11月9日:

消防宣传日11月14日:

世界糖尿病日\n");

printf("11月17日:

国际大学生日11月25日:

国际消除对妇女的暴力日\n");}

elseif(month==11)

{printf("12月1日:

世界艾滋病日12月3日:

世界残疾人日12月4日:

全国法制宣传日\n");

printf("12月9日:

世界足球日12月25日:

圣诞节\n");}}

intday1(intyear,intmonth)

{

inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};

if(judge(year,month)==3)

a[1]=29;

returna[month-1];

}

intx(intyear,intmonth,intday)

{if(year<0||month<1||month>12||day<1||day>day1(year,month))

return0;

else

return1;

}

voidexplaination()

{

inty;

system("cls");

printf("\t\t\t\t\t\t\t\t\t\t\t<<<<<<<<<<<<<<万年历使用说明>>>>>>>>>>>>>>>\n\n\n");

printf("一、年历:

输入需查询的年份,将会显示全年的日历。

\n");

printf("二、月历:

输入需查询的年月份,注意格式年月之间用空格分开,便可以直接进入你需要查询的月份。

\n");

printf("三、日历:

输入需要查询的年月日,注意格式年月日之间用空格分开,将会显示该天为星期几。

\n四、");

printf("此万年历显示了国内外的一些重要的阳历节日,希望给你带来方便。

\n");

printf("五、本万年历可以通过日历查询距离70周年校庆的倒计时。

\n");

printf("六、由于我们能力不足和水平有限,没能如愿将公历显示在该日历上,会有许多不能满足你的需求,敬请谅解。

\n");

printf("七、欢迎老师和同学对我们的万年历提出改进的宝贵的意见和建议。

\n");

do

{

printf("\n是否返回目录(1.是;0.否)");

fflush(stdin);

scanf("%d",&y);

}while(y!

=1);

return;

}

voidnianli()

{inti,j,a,n,m,k,y,h,s;

char**p;

char*week[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

char*month[]={"January","February","March","April","May","June","July","August","September","October","November","December"};

system("cls");

printf("\n\n请输入您要查的年份:

");/*给出输入提示*/

scanf("%d",&y);/*输入查询的年份*/

h=x(y,1,1);

if(h==0)

{

printf("error:

请您重新输入!

!

!

\n");/*输入值异常时报错*/

//break;

}

//printf("pleasekeytheyear:

");

//scanf("%d",&year);

printf("\n");

//printf("欢迎使用超人和双仔的万年历,祝您愉快!

!

!

");

printf("\n");

a=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7;

for(i=0;i<12;i++)/*输出12个月的日历表*/

{

n=judge(y,i+1);

p=month+i;

printf("%s\n",*p);/*在屏幕上输出当月的月份*/

printf("\n");

printf("╭───────────────────────────────╮\n\n");

for(j=0;j<7;j++)

{

p=week+j;

printf("%10s",*p);

}

printf("\n");

for(k=0;k

printf("");/*10个空格*/

for(m=1;m<32;m++)

{

printf("%10d",m);

if((a+m)%7==0)

printf("\n\n");/*输出七个字符(空格和数字)换行*/

if(n==1&&m==31)break;

elseif(n==2&&m==28)break;

elseif(n==3&&m==29)break;

elseif(n==4&&m==30)break;

}

a=(a+m)%7;/*计算出下个月的第一天是星期几*/

printf("\n");

printf("╰────────────────────────────────╯\n\n");

holiday(i);/*调用节日函数,在屏幕上输出当月的节日*/

printf("\n\n================================================================================");

printf("\n");

}

do

{

printf("\n是否返回目录(1.是;0.否)");

fflush(stdin);

scanf("%d",&s);

}while(s!

=1);

return;

}

voidyueli()

{intj,a,n,k,i,y,m,h,s,d=1;

char**p;

char*week[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

char*month[]={"January","February","March","April","May","June","July","August","September","October","November","December"};

system("cls");

printf("请输入您要查的年和月,年月之间用空格隔开:

");/*给出输入提示*/

scanf("%d%d",&y,&m);/*输入需要查询的年月*/

h=x(y,m,1);

if(h==0)

{

printf("eeror:

请您重新输入!

!

!

\n");

//break;

}

printf("\n");

printf("\n");

a=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1;/*计算出该月的第一天为星期几*/

n=judge(y,m);

p=month+m-1;/*指针指向想输出的该月的月份名*/

printf("%s\n",*p);/*输出该月份*/

printf("\n");

printf("╭───────────────────────────────╮\n\n");

for(j=0;j<7;j++)

{

p=week+j;

printf("%10s",*p);

}/*输出周日到周六的名称*/

printf("\n");

//while(a=!

7)/*需要解释一下*/

{for(k=0;k

printf("");};/*10个空格*/

for(i=1;i<32;i++)

{

printf("%10d",i);

if((a+i)%7==0)

printf("\n\n");/*输出七个字符(空格和数字)换行*/

if(n==1&&i==31)break;

elseif(n==2&&i==28)break;

elseif(n==3&&i==29)break;

elseif(n==4&&i==30)break;

}

printf("\n");

printf("╰────────────────────────────────╯\n\n");

holiday(m-1);

printf("\n\n\n\n\n================================================================================");

printf("\n");

do

{

printf("\n是否返回目录(1.是;0.否)");

fflush(stdin);

scanf("%d",&s);

}while(s!

=1);

return;

}

voidcelebration(intyear,intmonth,intday)/*校庆70周年倒计时计算的函数*/

{

intn;

if(year>2012||(year>=2012&&month>=4&&day>=20))

{

printf("友情提醒:

南京邮电大学70周年校庆已成功举办!

");

}

else

{

printf("友情提醒:

距离南京邮电大学70周年校庆还有");

n=day;

switch(month-1)

{case11:

n=n+30;

case10:

n=n+31;

case9:

n=n+30;

case8:

n=n+31;

case7:

n=n+30;

case6:

n=n+31;

case5:

n=n+30;

case4:

n=n+31;

case3:

n=n+30;

case2:

if(year%4==0&&year%100!

=0||year%400==0)n=n+29;

elsen=n+28;

case1:

n=n+31;}

switch(year)

{case2005:

n=365-n+2301;break;

case2006:

n=365-n+1936;break;

case2007:

n=365-n+1571;break;

case2008:

n=366-n+1205;break;

case2009:

n=365-n+840;break;

case2010:

n=365-n+475;break;

case2011:

n=365-n+110;break;

case2012:

n=110-n;break;}

printf("%04d天!

!

!

",n);

}

}

 

voidrili()

{

inta,y,m,d,s;

char*week[]={"日","一","二","三","四","五","六"};

system("cls");

printf("\n\n请输入您要查的年月日,年月日之间用空格隔开:

");/*给出输入提示*/

scanf("%d%d%d",&y,&m,&d);/*输入年月日*/

a=x(y,m,d);

if(a==0)

{

printf("error:

请您重新输入!

!

!

\n");/*输入植异常时报错*/

//break;

}

printf("\n");

a=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1;/*计算该天为星期几的函数*/

printf("╭╧╮╭─────────────────────────╮\n");

printf("║║今天是%d年%d月%d日星期%s",y,m,d,week[a]);

printf("╰╤╯");

printf("〃□〃★※★※★※★※★※★※★※★※★※★※★※★※★※★");

printf("\n\n");

celebration(y,m,d);

printf("╰─────────────────────────╯\n");

do

{

printf("\n是否返回目录(1.是;0.否)");

fflush(stdin);

scanf("%d",&s);

}while(s!

=1);

return;

}

voidmain()

{

intb;

do

{

system("cls");printf("\n\n\n");

printf("╭╧╮╔╗╔╗╔═╗╔╗☆╔╗◆╔═╗╭╧╮\n");

printf("║║║╚╝║║╔╝║║★║║◇║╔║║║\n");

printf("╰╤╯║╔╗║║╔╝║╚╗║╚╗║╚║╰╤╯\n");

printf("〃□〃╚╝╚╝╚═╝╚═╝╚═╝╚═╝〃□〃\n\n");

printf(",'''╭⌒╮⌒╮.',''',,',.'',,','',.\n");

printf("╱◥██◣''o',''',,',.''.'',,',.\n");

printf("|田|田田│'',,',.',''',,',.''\n");

printf("╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬\n\n\n");

printf("\t*****************************************************\n\n");

printf("\t\t\t欢迎进入超人和双仔设计的\t\t\t\t\n");

printf("\t\t\t万年历系统,祝您使用愉快!

\t\t\t\t\n");

printf("\t*****************************************************");

printf("\t\t\t\t\t\t.----.\n");

printf("\t\t_.'__`.\n");

printf("\t\t.--(#)(##)---/#\\\n");

printf("\t\t.'@/###\\\n");

printf("\t\t1------------------万年历说明书:

#####\n");

printf("\t\t*------------------★★★★★★`-..__.-'_.-\\###/\n");

printf("\t\t2------------------万年历年查询`;_:

`\"\'\n");

printf("\t\t*------------------★★★★★★.\'\"\"\"\"\"`.\n");

printf("\t\t3------------------万年历月查询/,Main,\\\n");

printf("\t\t*------------------★★★★★★//Menu\\\\\n");

printf("\t\t4------------------万年历日查询`-._______.-\'\n");

printf("\t\t*------------------★★★★★★___`.|.'___\n");

printf("\t\t0------------------退出查询系统(______|______)\n");

printf("\t\tPleaseEnterChoose:

");

fflush(stdin);

scanf("%d",&b);

switch(b)

{

case1:

explaination();

break;

case2:

nianli();

break;

case3:

yueli();

break;

case4:

rili();

break;

case0:

printf("谢谢使用,再见!

");

printf("\n\n退出\n\n");

break;

}

}while(b!

=0);

}

六、小结

我们所选的大赛课题程序终于完成了,经历了这次程序设计的整个过程,我们才发现我们知识的贫乏和知识面的狭窄。

就我个人而言,我原本以为它只是一个小小的程序设计,很容

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1