C 语言课程设计报告题 目: 万年历一 功能描述万年历能实现一些功能,主要包括以下的几点.(1)日历显示功能.该日历能根据系统日期进行初始化,假如没有任何的输入,则会显示系统日期所在月份的日历,并能突出显示当前日期.(2)日期查询﹑闰年推断功能。输入日期进行查询,查询后将显示查询日期所在月份的月日,并突出显示查询日期。此外,还将显示查询日期所在年份是否是闰年。(3)支持键盘操作。支持键盘操作,可以通过键盘操作调整年份﹑月份和日期,并显示调整后的日期。还可以通过键盘操作复位到系统所在日期等。(4)参数检查功能。程序还设置有参数检查功能,即对输出的日期进行合法性检查。假如年份﹑月份或者田鼠不合法,查询将被拒绝,并显示提示信息。二 总体设计1.功能模块图本系统包括 4 个模块,分别是功能控制模块﹑打印输出模块﹑日历显示模块和键值猎取模块,如图 12.1 所示。 图 12.1 系统模块图1.功能控制模块。该模块用于实现日期有效性检查﹑推断是否是闰年和返回指定日期对应的日期。2.打印输出模块。该模块主要是进行输出显示,包括打印指定个数的空格﹑打印分隔线﹑打印用户使用手册﹑打印当前日期对应的星期以与打印指定的星期。3.日历显示模块。该模块是系统的核心模块,是用来显示指定日期所在月份的月历。4.键值猎取模块。该模块接受键盘操作,猎取键值,来进行日期调整,并调用日历显示模块中的函数来显示调整后的日历。2 日历显示流程图历显示是系统的核心模块,它控制着日历的生成和显示。其实现流程如图 12.2 所示。程序输入的是包含年月日的日期,输出 month 所在月份的月历,并突出显示 day 所在的日期和 year 是否是闰年的标识。程序首先根据推断 year 其是否是闰年,假如是则需要将该年 2 月份的天数设置为 29 天,接着推断 day 是否超过 month 所在的月份的最大天数,假如超过则显示系统日期所在的月历。然后进行星期输出的推断,假如输出的是该月的第一个星期,则推断该星期中还有几天在本月(如,该月 1 号是星期五,则表示该月第一个星期中只有两天在本月,星期一到星期四在上月,则星期一到星期四在本月就不输出,仅有空格表示),输出完第一周后,接着输出第二到第五(或者六)周,每周 7 天。在输出过程中,假如遇到了 day 所在的日期,则突出显示。功能控制模块打印输出模块日历显示模块键值猎取模块万 年 历系统3.键值猎取流程图键值猎取实现的是从键盘调整日期并显示调整后的...