C语言程序设计 项目教学 教学课件 王卓 杜娜 项目10.ppt

C语言程序设计 项目教学 教学课件 王卓 杜娜 项目10.ppt

ID:50320488

大小:419.50 KB

页数:20页

时间:2020-03-08

C语言程序设计 项目教学 教学课件 王卓 杜娜 项目10.ppt_第1页
C语言程序设计 项目教学 教学课件 王卓 杜娜 项目10.ppt_第2页
C语言程序设计 项目教学 教学课件 王卓 杜娜 项目10.ppt_第3页
C语言程序设计 项目教学 教学课件 王卓 杜娜 项目10.ppt_第4页
C语言程序设计 项目教学 教学课件 王卓 杜娜 项目10.ppt_第5页
资源描述:

《C语言程序设计 项目教学 教学课件 王卓 杜娜 项目10.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计项目十数组和函数综合应用──打印日历学习目标继续熟悉数组的使用。继续熟悉函数的使用。了解程序算法设计及N-S流程图。综合使用数组和函数完成程序设计。本项目来编写一个简单实用的小程序:打印年历。这个程序的功能是:由用户输入一个年号,然后就可以分月输出当年的年历。项目十数组和函数综合应用──打印日历项目十数组和函数综合应用──打印日历任务一分析程序算法任务二确定每个月的天数任务三确定当年的每天是星期几任务四设计数据存储方式,生成各月日历任务五设计打印格式,输出日历任务六完成整个程序任务一分析程序算法N-S流程图也

2、叫“盒图”,这种流程图去掉了传统流程图中带箭头的流程线,全部算法写在矩形框内,使流程图显得更加紧凑,适合结构化程序设计。N-S流程图表示的程序三种基本结构如下:任务一分析程序算法(1)顺序结构(2)选择结构(3)循环结构任务一分析程序算法程序算法分析整个程序可以大致分为两个主要部分:输入年份、打印该年的日历。见图中的①。打印日历时,为了清楚地知道打印的是哪一年的日历,先打印年份,然后从1月~12月,分别打印各月份的名称(英文缩写),然后打印星期的名称(英文缩写),最后再打印当月的日历。见图中的②。要打印某月的日历,首先必须

3、生成当月日历,然后再打印。见图中的③。生成每一个月的日历,需要知道当月有多少天,当月每一天是星期几,然后生成当月日历并保存。见图中的④。要知道每月有多少天是比较容易的,除了2月份外,其他月份的天数都是确定的,关键就是确定2月份有几天。见图中的⑤。如果当年是闰年,则2月份有29天,否则,2月份为28天。见图中的⑥。要想确定当月每一天是星期几,需要知道当年第一天是星期几,然后类推,每7天一个周期。见图中的⑦。经过以上的4~7步,可以生成日历,然后,设计存储格式,保存生成的日历。设计好输出格式,打印已生成的日历即可。见图中的⑧任

4、务一分析程序算法经过综合和细化,最终就可以得到整个程序的N-S流程图以上的分析过程使用了进行程序设计的一个重要方法——“从上到下,逐步求精”的方法。这个方法是解决复杂问题的一种常用方法。对于较复杂的程序,可以把功能分解,每个小功能用一个函数实现,使程序的总体结构更加清晰。在这个程序中,应考虑使用以下4个函数。函数1:“intleapyear(intyear)”,判断“year”是否为闰年。函数2:“voidprint2(intmonth,intt)”,按月打印日历。函数3:“voidcalendar(intyear)”,按

5、月生成日历。函数4:“main()”主函数。任务一分析程序算法按功能划分函数任务二确定每个月的天数intleapyear(intyear)/*函数1:判断year是否为闰年*/{if((year%4==4)&&(year%100)!=0

6、

7、(year%400==0))return1;elsereturn0;}使用一维整型数组“monthday[]”来存放每各月的天数:intmonthday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};如果是闰年,则2月份有29天:if((year

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

9、

10、(year%400==0))monthday[2]=29;为了提高程序的可读性,实现程序的模块化设计,对闰年的判断设计成函数“leapyear()”任务三确定当年的每天是星期几确定每天是星期几,关键是判断当年的1月1日是星期几。对于输入的年号year,year年的1月1日是星期几可以用下列公式计算:当年第1天是星期几判断出来了,就可依次推算以后的日子是星期几了。todayweek=[year+(year-1)/4-(year-1)/100+(year-1)/400]%7任务四设

11、计数据存储方式,生成各月日历intmonth2[6][7];设计数据存储方式使用一维整型数组“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"};使用二维字符数组“wee

12、kday”存放一周每一天的星期的英文名称:charweekday[8][6]={"SUN","MON","TUE","WED","THU","FRI","STA","SUN"};使用二维整型数组“month2”存放日历:for(i=0;i<=5;i++)for(j=0;j<=6;j++)month2[i

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

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

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