用C语言编写万年历6,C语言编写万年历

《C语言编写万年历》由会员分享,可在线阅读,更多相关《C语言编写万年历(8页珍藏版)》请在人人文库网上搜索。

1、C语言编写万年历 【要求】:1 程序运行后,首先在屏幕上显示主菜单:2 查询某年某月某日是星期几3 查询某年是否是闰年4 打印某年的全年日历5 退出2 在主菜单中输入1后,显示:“请输入年月日(XXXX,XX,XX)”运行后输出:XXXX年XX月XX日是星期X,是否继续查询(Y/N)?如果输入Y,则重新显示 “请输入年月日(XXXX,XX,XX)”,否则回到主菜单。3 在主菜单中输入2后,显示:“请输入要查哪一年?(XXXX)”运行后输出:XXXX年是(否)是闰年,是否继续查询(Y/N)?如果输入Y,则重新显示,“请输入要查哪一年?(XXXX)”,否则回到主菜单。4 在主菜单中输入3后,显示:。

2、“请输入要打印的年份(XXXX)”运行后输出XXXX年的日历,格式为:XXXXX(月数.奇)X(月数.)0 1 2 3 4 5 6 0 1 2 3 4 5 6S M T W T F S S M T W T F Sx x x x x x x x x x xx x x xx xx xx xx x x x xx xx xx xxxx xx xx xx xx xx xx x x x xx xx xx xxxx xx xx xx xx xx xx xx xx xx xx xx xx xxxx xx xx xx xx xx xx xx xx xx运行完后显示:“是否继续打印(Y/N)?”如果输入Y,则重新。

3、显示,“请输入要打印的年份(XXXX)”,否则回到主菜单。5 在主菜单中输入4后,显示:“是否要真的退出(Y/N)?”如果输入Y,结束程序运行,否则重新显示主菜单。代码来自东篱下,Turbo C&C+3.0编译调试通过,已经验证输出结果正确:#include #include #include #define X Sun Mon Tue Wed Thu Fri Satvoid menu()system(cls);printf(nTHIS IS THE MENU OF THE PROGRAM !);printf(nYOU CAN CHOOSE THE NUMBER FOR THE FUNCTIO。

4、M:);printf(nn);printf(1 Find the day by year-month-date.n);printf(2 Find the year you input if the leap year.n);printf(3 Print the calendar of the year you input.n);printf(4 Exit.nn);printf(Input your choice:);/*函数定义,将在主函数中调用*/int getday(int year,int month,int date)int flag,s,i;int a13=0,31,28,31,30。

5、,31,30,31,31,30,31,30,31;int cont=0;flag=isleap(year);if(flag=1)/*修改二月份天数*/a2+;for(i=1;imonth;i+)cont=cont+ai;cont=cont+date;s=year+1+(year-1)/4+(year-1)/100+(year-1)/400+cont;return s%7;/*利用公式求星期几*/int isleap(int year)if(year%4=0&year%100|year%400=0)return 1;elsereturn 0;/*判定闰年*/void print(int n)in。

6、t i;for(i=0;in;i+) printf( );/*打印空格,排版使用*/int day(int year)int a,b;if(year=2000)a=2000-year;b=6-(a+a/4-a/100+a/400)%7; return b;else a=year-2000; b=(a+1+(a-1)/4-(a-1)/100+(a-1)/400)%7+6; return b%7;/*打印日历函数*/void printcalendar(int year)int i,j,k,m,n,f1,f2,d;int a13=0,31,28,31,30,31,30,31,31,30,31,30。

7、,31;printf(nThe calendar of the year %d.nn,year);d=day(year);if(isleap(year)=1) a2+;for(i=1;i=12;i+=2)m=0; n=0; f1=0; f2=0;switch(i)case 1:printf( Januray 1 );break;case 3:printf( March 3 );break;case 5:printf( May 5 );break;case 7:printf( July 7 ); break;case 9:printf( September 9 );break;case 11:p。

8、rintf( Nevember 11 );break;print(21); /*打印空格,隔开奇偶月份名*/switch(i+1)case 2:printf( February 2 ); break;case 4:printf( April 4 ); break;case 6:printf( June 6 ); break;case 8:printf( August 8 ); break;case 10:printf( October 10 ); break;case 12:printf( December 12); break;printf(n); printf(X); /*宏调用,打印星期。

9、字符串*/print(6);/*打印空格,隔开奇偶月份数据*/printf(X); printf(n);for(j=0;j6;j+)if(j=0)print(d*4); /*每个日期数采用个空格的宽度,即4字节。不满处用空格填充*/for(k=0;k7-d;k+) printf(%4d,+m); /*奇月份中,日期数字自动打印*/print(6);d+=ai%7;d%=7;print(d*4); for(k=0;k7-d;k+)printf(%4d,+n); /*偶月份中,日期数字自动打印*/printf(n);/*打印一行奇,一行偶日期数据后,换行继续打印奇月份数据*/elsefor(k=0。

10、;k7;k+)if(mai)printf(%4d,+m); elseprint(4); if(m=ai) f1=1;print(6); for(k=0;k7;k+)if(nai+1)printf(%4d,+n);elseprint(4); if(n=ai+1) f2=1;printf(n); if(f1&f2) break;/*一个奇和一个偶月份都打印完成后,跳出循环*/d+=ai+1%7; d%=7; printf( ); for(k=0;k27;k+) printf(=); /*打印装饰作用的=*/print(6); printf( ); for(k=0;k27;k+) printf(=)。

11、;printf(n); if(i=5)printf(Press any key to others!);getch();/*获取键盘信息*/system(cls);void main()int choice;int year,month,date;int day,flag;char con;menu();scanf(%d,&choice);if(choice=1) r1:system(cls);printf(nPlease input the year-month-date(XXXX,XX,XX):);scanf(%d,%d,%d,&year,&month,&date);day=getday(。

12、year,month,date);if(day=0)printf(n%d-%d-%d is Sunday!n,year,month,date);if(day=1)printf(n%d-%d-%d is Monday!n,year,month,date);if(day=2)printf(n%d-%d-%d is Tuesday!n,year,month,date);if(day=3)printf(n%d-%d-%d is Wednesday!n,year,month,date);if(day=4)printf(n%d-%d-%d is Thursday!n,year,month,date);if。

13、(day=5)printf(n%d-%d-%d is Friday!n,year,month,date);if(day=6)printf(n%d-%d-%d is Saturday!n,year,month,date);printf(nContinue.(Y/N);con=getch();/*获取键盘信息*/if(con=y)|(con=Y)goto r1;if(con=n)|(con=N)main();if(choice=2)r2:system(cls);printf(nPlease input the year(XXXX):);scanf(%d,&year);flag=isleap(yea。

14、r);if(flag=1)printf(nThe year %d is leap year!n,year);if(flag=0)printf(nThe year %d is not leap year!n,year);printf(nContinue.(Y/N);con=getch();if(con=y)|(con=Y)goto r2;if(con=n)|(con=N)main();if(choice=3)r3:system(cls);printf(nPlease input the year(XXXX):);scanf(%d,&year);printcalendar(year);printf(Continue.(Y/N);con=getch();if(con=y)|(con=Y)goto r3;if(con=n)|(con=N)main();if(choice=4)system(cls);printf(nDo you want to Exit?(Y/N);con=getch();if(con=y)|(con=Y)return;if(con=n)|(con=N)main();单片机C语言应用设计11017p27桑秀伟。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值