c语言综合练习打印日历教程附完整源程序

c语言综合练习打印日历教程附完整源程序

ID:8959161

大小:564.00 KB

页数:14页

时间:2018-04-13

c语言综合练习打印日历教程附完整源程序_第1页
c语言综合练习打印日历教程附完整源程序_第2页
c语言综合练习打印日历教程附完整源程序_第3页
c语言综合练习打印日历教程附完整源程序_第4页
c语言综合练习打印日历教程附完整源程序_第5页
资源描述:

《c语言综合练习打印日历教程附完整源程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、综合练习打印日历练习的功能是:由用户输入一个年后,然后就可以分月输出当年的年历。例如输入2010,则输出2010年的年历。如图,图中显示的年历的一部分:学习目标:继续熟悉数组的使用;继续熟悉函数的使用了解程序算法设计及N-S流程图;综合使用函数和数组完成设计任务一分析程序算法图2算法分析图先来分析要解决的问题,如图2程序算法分析如下:1.整个程序大致可以分为两个主要部分:输入年份;打印该年的日历,如图2①所示。2.打印日历时,为了清楚的知道打印的是哪一年的日历,先打印年份,接着从1月~12月,分别打印个月份的名称(英文缩写),然后打印星期的名称(英文缩写),

2、最后在打印当月的日历,如图2②所示。3.要打印某月的日历,首先必须生成当月日历,然后在打印,如图2③所示。4.生成每个月的日历,需要知道当月有多少天,当月每一天是星期几,然后生成当月日历并保存,如图2④所示。5.要知道每月有多少天是比较容易的,除了2月份外,其它月份的天数都是确定的,关键就是确定2月份有几天,如图2⑤所示。6.如果当年是闰年,则2月份有29天,否则为28天。如图2⑥所示。7.要想确定当月每一天是星期几,需要知道当年第一天是星期几,然后类推,每7天一个周期,如图2⑦所示。1.经过以上的4~7步,可以生成日历,然后设计存储格式,保存日历。2.设计

3、好输出格式,打印已生成的日历即可,如图2⑧所示。将图2加以综合和细化,最终可以得到整个程序的N-S流程图,如图3所示。图3算法分析N-S流程图二、按功能划分函数经过上面的分析,发现在这个程序设计中有几个关键部分:①确定每月有多少天,关键是确定当年是否为闰年。②确定每天是星期几,关键是确定当年1月1日是星期几。③设计数据的存储格式和打印格式。对于较复杂的程序,可以把功能分解,每个小功能用一个函数实现,使程序的总体结构更加清晰。在这个程序中,应考虑使用以下4个函数。函数1:intleapyear(intyear),判断year年是否是闰年。函数2:voidpri

4、nt2(intmonth,intt),按月打印日历。函数3:voidcalendar(intyear),按月生成日历。函数4:main()函数。任务二确定每个月的天数除了闰年外,每个月有多少天是确定的,所以首相确定非闰年每个月有多少天,然后判断当年是否是闰年,就可以确定当年的2月份有几天。一、确定非闰年每年有多少天可以使用一维整型数组monthday[]来存放每个月的天数,代码如下:intmonthday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};数组长度定义为13,是因为这样定义赋值后“monthday[1]=

5、31”,表示1月份的天数是31天,比较符合我们的日常习惯,元素monthday[0]没有使用。一、确定当年2月有多少天如果是闰年,则2月份29天,闰年的规定:凡是年份能够被4整除、且不能被100整除的是闰年;凡是年份能被400整除的也是闰年;除此以外的年份都不是闰年。程序段如下:if((year%4==0)&&(year%100!=0)

6、

7、(year%400==0))monthday[2]=29;为了提高程序的可读性,实现程序的模块化设计,对闰年的判断设计成函数leapyear();闰年判断函数intleapyear(intyear){if((year%4=

8、=0)&&(year%100!=0)

9、

10、(year%400==0))return1;elsereturn0;}任务三确定当年的每天是星期几确定每天是星期几,关键是确定当年的1月1日是星期几。在公元日历的编排中,公元元年几0001年1月1日是星期一,对于输入的年号year,year年的1月1日是星期几可以用下列公式计算:todayweek=[year+(year-1)/4-(year-1)/100+(year-1)/400]%7注:此算法可以见另一附件“计算每年的第一天星期几”文档。当年第一天是星期几判断出来了,就可以一次推算以后的日子是星期几。任务四设计数据

11、存储格式,生成各月日历必须为所有需要存储的数据设计存储结构,有了存储结构就可以存储生成的每个月的日历。一、设计数据的存储格式①使用一维整型数组monthday存放每个月的天数。intmonthday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};②使用二维字符数据monthname存放每个月的英文名称。charmonthname[13][6]={“”,”JAN”,”FEB”,”MAR”,”APR”,”MAY”,”JUNE”,”JULY”,“AUG”,”SEP”,”OCT”,”NOV”,”DEC”};①使用二维数字符数

12、组weekday存放一周每一天的星期的英文名称。ch

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。