资源描述:
《C语言课程设计报告--万年历系统设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C语言课程设计报告题目:万年历系统设计设计者:专业班级:学号:指导教师:所属系部:计算机科学与技术学院2012年6月27日河南理工大学目录1设计任务书1.1题目与要求1.2本系统涉及的知识点2功能设计2.1算法设计2.2部分模块流程图3程序代码设计3.1输入模块3.2输出模块4C程序设计总结4.1程序调试情况4.2.本人在程序设计中感想5参考文献附录:程序清单1设计任务书(左对齐,宋体粗四号)1.1题目与要求(左对齐,宋体粗小四号)本人计划编写一个万年历系统,主要用来显示日期及星期。模仿现实生活中的挂历.当前页以
2、系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).当系统日期变到下一月时,系统自动翻页到下一月.1.2本系统设计的知识点结构、循环、函数、数组、2功能设计(左对齐,宋体粗四号)2.1算法设计(左对齐,宋体粗小四号)在main()函数中调用了printonemonth()函数输出2008年6月的日历,同时用空两行代替自动翻页,再输出2008年7月的日历。主函数体中用switch结构来实现操作功能的转向,函数实现了四个主要功能:查询该年是不是闰年,打印某年的日历,打印某一个月的日历并自动翻页到下一个
3、月,查询某一天是星期几。定义一个monthday()的函数,完成计算某年某一月的天数,其中用到leap()函数用来判断该年是不是闰年。定义一个leap()函数用来判断输入的年份是否是闰年,根据输入的年份的不同,分别返回0和1,若输入年份为闰年则返回1,否则返回0.定义一个is_leapyear()函数调用了leap()函数,根据leap()函数返回值不同,输出不同的提示语句。定义了一个search1()函数,用来计算某年某月某日所对应的星期,根据输入的年、月、日的不同返回不同的星期值,返回值类型为整型。定义了一个
4、searchsomeday()函数用来输出某一天对应的星期,其中用到了search1()函数。定义了一个printonemonth()函数,用来输出某一个月的日历,其中用到了search1()函数,计算出某年某月第一天对应的星期,用for循环语句和if条件判断语句来控制输出格式。定义了一个printallyear()函数,输出某一年的日历,其中调用了printonemonth()函数,用for循环输出一年十二个月的日历。2.2模块流程图N打印日期错误year>=0N判断是否为闰年days=days+366days
5、=days+365i=i+1i1k=7-(day-n+6)%7printf("sunmontuewenthufrisat")o6、=o+1结束YYNNNY3程序代码设计(左对齐,宋体粗四号)3.1输入模块(模块名宋体粗小四号,其余宋体小四号)1)函数原形:time_ttoday;structtm*p;time(&today);p=localtime(&today);2)功能:以系统当前日期的月份为准显示当前月的每一天,所以用如下”获取系统当前日期”并分别赋值给变量year,month,day:3)变量及类型:intyear,month,day:整型形参数组intdays=0,i,j,n,m,k,o;整型形参数组和循环控制变量intm1[]=
7、{31,28,31,30,31,30,31,31,30,31,30,31};平年变量组intm2[]={31,29,31,30,31,30,31,31,30,31,30,31};晕年变量组structtm*p;结构体指针4)说明:通过while语句与swich…case以及if条件语句实现菜单的循环功能和不同选项的功能实现。5)模块代码及其相关注释(1).由于要以系统当前日期的月份为准显示当前月的每一天,所以用如下”获取系统当前日期”并分别赋值给变量year,month,day:time_ttoday;struc
8、ttm*p;time(&today);p=localtime(&today);year=p->tm_year+1900;month=p->tm_mon+1;day=p->tm_mday;注意1,由于返回的是1900到现在的秒数,所以year后面要加上1900,又起始是1月,所以mon要加1;注意2,头文件#include不能忘了.(2)对得到的系统日期进行