编写万年历系统_第1页
编写万年历系统_第2页
编写万年历系统_第3页
编写万年历系统_第4页
编写万年历系统_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上 C程序设计语言 课程设计题目:编写一万年历系统设计组成员:姓名 学号何耀 1贺志明 5谭旦予 4徐超 2班级:2007级计算机科学与技术(师范)1班指导老师:雷杏完成日期:2008年6月13日一 问题描述:编写一万年历系统,要求模仿现实生活中的挂历,当前页以系统当前日期月份为准,显示当前的每一天(显示出日及对应的每个星期几),当系统日期变到下一个月时,系统自动翻页到下一个月。二 分析 要实现这些功能,必须有一个函数先判断某一年是否是闰年,是闰年将二月天数改为二十九天,必须有一个计算某一天对应的星期的算法,主函数中必须用到switch结构来实现操作功能的转向,具体算法

2、如下:1. 何耀(组长)的算法:在main()函数中调用了printonemonth( )函数输出2008年6月的日历,同时用空两行代替自动翻页,再输出2008年7月的日历。主函数体中用switch结构来实现操作功能的转向,函数实现了四个主要功能:查询该年是不是闰年,打印某年的日历,打印某一个月的日历并自动翻页到下一个月,查询某一天是星期几。定义一个monthday()的函数,完成计算某年某一月的天数,其中用到leap()函数用来判断该年是不是闰年。2. 徐超(组员)的算法:定义一个leap()函数用来判断输入的年份是否是闰年,根据输入的年份的不同,分别返回0和1,若输入年份为闰年则返回1,否

3、则返回0.定义一个isleapyear()函数调用了leap()函数,根据leap()函数返回值不同,输出不同的提示语句。3. 谭旦予(组员)的算法:定义了一个search1()函数,用来计算某年某月某日所对应的星期,根据输入的年、月、日的不同返回不同的星期值,返回值类型为整型。定义了一个searchsomeday()函数用来输出某一天对应的星期,其中用到了search1()函数。4. 贺志明(组员)的算法:定义了一个printonemonth()函数,用来输出某一个月的日历,其中用到了search1()函数,计算出某年某月第一天对应的星期,用for循环语句和if条件判断语句来控制输出格式。定

4、义了一个printallyear()函数,输出某一年的日历,其中调用了printonemonth()函数,用for循环输出一年十二个月的日历。三 具体程序代码如下:#includestdio.h#includeconio.h#includestdlib.hint leap(int y);void is_leapyear(int y);int monthday(int y,int m);int search1(int y,int m,int d);void printonemonth(int y,int m);void printallyear(int y);void searchsomeday

5、(int y,int m,int d);void main() char yue12=January,February,March,April,May,June, July,August,September,October,November,December;char xq10=Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday; int info,year,month,day;char i; printonemonth(2008,6);printf(nnn);printonemonth(2008,7);printf(n);whil

6、e(1)printf(nPlease select the service you need:n); printf(n1 查询该年是不是闰年); printf(n2 打印某一年的日历); printf(n3 打印某一月的日历并自动翻页); printf(n4 查询某一天是星期几);printf(n5 退出n); scanf(%d,&info); switch(info)case 1:while(1) printf(please input the year:n);scanf(%d,&year);is_leapyear(year);printf(do you want to continue?(

7、Y/N)n); fflush(stdin); scanf(%c,&i); if(i=N|i=n) break;break;case 2:while(1) printf(please input the year:n);scanf(%d,&year);printallyear(year);printf(n);printf(do you want to continue?(Y/N)n); fflush(stdin); scanf(%c,&i); if(i=N|i=n) break;break;case 3:while(1) printf(please input the year and mont

8、h:n);scanf(%d %d,&year,&month); printonemonth(year,month); printf(nnn);if(month=12) printonemonth(year+1,1);else printonemonth(year,month+1);printf(n);printf(do you want to continue?(Y/N)n); fflush(stdin); scanf(%c,&i); if(i=N|i=n) break;break;case 4:while(1)printf(please input the year,month and da

9、y:n);scanf(%d %d %d,&year,&month,&day);searchsomeday(year,month,day);printf(ndo you want to continue?(Y/N)n); fflush(stdin); scanf(%c,&i); if(i=N|i=n) break;break; case 5: fflush(stdin); printf(Are you sure?(Y/N); scanf(%c,&i); if(i=Y|i=y) exit(0); break;default:printf(your select is not in the serv

10、icen);int leap(int y)if(y%4=0&y%100!=0)|(y%400=0)return 1;else return 0;void is_leapyear(int y)if(leap(y)printf(%d is a leap yearn,y);else printf(%d is not a leap yearn,y);int monthday(int y,int m)int a13=0,31,28,31,30,31,30,31,31,30,31,30,31;if(leap(y)a2=29; return am;int search1(int y,int m,int d)

11、int A;if(m=1)|(m=2)m+=12; y-; A=(d+2*m+(3*(m+1)/5)+y+(y/4)-(y/100)+(y/400)%7+1;return A;void printonemonth(int y,int m)int i,j=1,k;k=search1(y,m,1); char yue12=January,February,March,April,May,June, July,August,September,October,November,December;printf(The calendar of %s,%d:n,yuem-1,y);printf(Mon Tue Wes Thu Fri Sat Sunn);for(i=1;ik;i+)printf( );printf(%2d,j+);if(k=7)printf(n);printf(%2d,j+);for(;j=monthday(y,m);j+)printf(%7d,j);if(j+k-1)%7=0&jmonthday(y,m)printf(n);j+;printf(%2d,j);else if(j+k-1)%7=0&j=monthday(y,m)printf(n);void printallyear(int y)int m;for(m=1;m=12;m+)printonemonth(y,m)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论