论文部分内容阅读
摘 要:校本教材是高职高专院校课程改革的产物,学生通过所学课程能够做到学有所用,解决现实生活中的问题。本文通过日历程序的编写,使学生能从整体上把握C语言的基础知识,并掌握顺序、选择、循环三种基本结构,达到较好的教学效果。
关键词:基础;结构化;软件开发
一、引 言
任何一个程序的基本开发过程都是大同小异的。就算简单的只有几行的小程序,也需要完整的结构,一般包括:问题描述、需求分析、概要设计、详细设计、程序代码和调试运行6个大的阶段。由于日历程序比较小,可以将6个阶段整合为3个。
二、程序的开发
阶段1——分析阶段
随意给出某年某月(如2010年10月),可以显示该年的日历(包括每月的天数和所对应的星期)。此阶段的实现思路是全面分析问题,对实际问题进行抽象,完成需求分析并抽象出程序的基本需求。
1.输入年份和月份,判断输入的年份是否为闰年。
2.以1900年1月1日星期一为标准,计算从1900年到year年1月1日的天数。
3.判断每个月的天数days。
4.计算year年month月1日距离1900年1月1日的天数。
5.确定year年month月的第一天为周几。
6.输出日历。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/coer/coer201012/coer20101228-1-l.jpg)
图1
阶段2——设计阶段
此阶段主要根据阶段1的分析,得到程序开发的详细过程。
1.输入要查看的年份year和月份month,判断输入的年份是否为闰年,目的是通过判断的结果判断每一年的天数和每个月的天数。在此阶段中最先要做的就是需要year、leap和month三个整型的变量,其中leap作为标识变量。判断某一年是否为闰年的条件只要满足下列二者之一即可:
①年份能够被4整除,且不被100整除;
②年份能够被4整除,且能被400整除。
代码如下:
if(year%4==0&&year%100!=0||year%400==0)
leap=1;
else leap=0;
2.以1900年1月1日星期一为标准,计算从1900年到year年month月1日的天数。分三步走:
第一步:计算从1900年1月1日到year年1月1日的前一天的天数。在这一步中,需要定义整型变量i作为循环变量、整型变量totaldays用来表示总天数。其中需要for语句来循环表示从1900到year年之间的时间段,用if语句来判断是否为闰年。如果是闰年,每年366天;如果不是闰年,每年365天。
第二步:计算从year年1月1日到year年month月1日前一天的天数,如图2。这就需要对每个月的天数进行判断,天数需要用整型变量days表示。大月31天,小月30天,闰年的2月是29天,非闰年的2月是28天,这需要用switch语句来实现。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/coer/coer201012/coer20101228-2-l.jpg)
图2
第三步:将第一步、第二步中所计算的天数进行计算,即将totaldays和days相加后赋值给totaldays。
3.计算year年month月的第一天是周几,用整型变量firstdayofmonth来表示。用计算得到的总天数除以7取余加1,用整型变量temp表示。如果结果为7,那么month月的第一天是周日,firstdayofmonth=0;如果结果不是7,那么month月的第一天firstdayofmonth=temp。
4.是否添加空格。如果month月的第一天是周日,不需要添加空格,如果不是周日,需要输出空格,空格个数由temp决定。
示例代码:
temp=totaldays%7+1;
if(temp= =7)
firstdayofmonth=0;
else firstdayofmonth=temp;
5.输出最后的日历。在输出时需要考虑如果遇到周六,需要换行,否则只需将两天之间用空格隔开即可。
for(k=0;k printf(" ");
for(m=1;m<=days;m++)
if(1+(totaldays+m-1)%7==6)
printf(“%d “,m);
else printf(“%d “,m);
阶段3——调试运行阶段
在程序不断调试过程中,程序成功运行,运行结果如图3:
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/coer/coer201012/coer20101228-3-l.jpg)
图3
三、结语
学生在完成日历程序编写的过程中,复习了变量的定义、顺序结构、选择结构、循环结构等基础知识,掌握了软件开发的主要步骤,培养了学生分析问题、解决现实问题的能力。
参考文献:
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2010.
[2]曹衍龙.C语言实例解析精粹[M].北京:人民邮电出版社,2007.
关键词:基础;结构化;软件开发
一、引 言
任何一个程序的基本开发过程都是大同小异的。就算简单的只有几行的小程序,也需要完整的结构,一般包括:问题描述、需求分析、概要设计、详细设计、程序代码和调试运行6个大的阶段。由于日历程序比较小,可以将6个阶段整合为3个。
二、程序的开发
阶段1——分析阶段
随意给出某年某月(如2010年10月),可以显示该年的日历(包括每月的天数和所对应的星期)。此阶段的实现思路是全面分析问题,对实际问题进行抽象,完成需求分析并抽象出程序的基本需求。
1.输入年份和月份,判断输入的年份是否为闰年。
2.以1900年1月1日星期一为标准,计算从1900年到year年1月1日的天数。
3.判断每个月的天数days。
4.计算year年month月1日距离1900年1月1日的天数。
5.确定year年month月的第一天为周几。
6.输出日历。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/coer/coer201012/coer20101228-1-l.jpg)
图1
阶段2——设计阶段
此阶段主要根据阶段1的分析,得到程序开发的详细过程。
1.输入要查看的年份year和月份month,判断输入的年份是否为闰年,目的是通过判断的结果判断每一年的天数和每个月的天数。在此阶段中最先要做的就是需要year、leap和month三个整型的变量,其中leap作为标识变量。判断某一年是否为闰年的条件只要满足下列二者之一即可:
①年份能够被4整除,且不被100整除;
②年份能够被4整除,且能被400整除。
代码如下:
if(year%4==0&&year%100!=0||year%400==0)
leap=1;
else leap=0;
2.以1900年1月1日星期一为标准,计算从1900年到year年month月1日的天数。分三步走:
第一步:计算从1900年1月1日到year年1月1日的前一天的天数。在这一步中,需要定义整型变量i作为循环变量、整型变量totaldays用来表示总天数。其中需要for语句来循环表示从1900到year年之间的时间段,用if语句来判断是否为闰年。如果是闰年,每年366天;如果不是闰年,每年365天。
第二步:计算从year年1月1日到year年month月1日前一天的天数,如图2。这就需要对每个月的天数进行判断,天数需要用整型变量days表示。大月31天,小月30天,闰年的2月是29天,非闰年的2月是28天,这需要用switch语句来实现。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/coer/coer201012/coer20101228-2-l.jpg)
图2
第三步:将第一步、第二步中所计算的天数进行计算,即将totaldays和days相加后赋值给totaldays。
3.计算year年month月的第一天是周几,用整型变量firstdayofmonth来表示。用计算得到的总天数除以7取余加1,用整型变量temp表示。如果结果为7,那么month月的第一天是周日,firstdayofmonth=0;如果结果不是7,那么month月的第一天firstdayofmonth=temp。
4.是否添加空格。如果month月的第一天是周日,不需要添加空格,如果不是周日,需要输出空格,空格个数由temp决定。
示例代码:
temp=totaldays%7+1;
if(temp= =7)
firstdayofmonth=0;
else firstdayofmonth=temp;
5.输出最后的日历。在输出时需要考虑如果遇到周六,需要换行,否则只需将两天之间用空格隔开即可。
for(k=0;k
for(m=1;m<=days;m++)
if(1+(totaldays+m-1)%7==6)
printf(“%d “,m);
else printf(“%d “,m);
阶段3——调试运行阶段
在程序不断调试过程中,程序成功运行,运行结果如图3:
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/coer/coer201012/coer20101228-3-l.jpg)
图3
三、结语
学生在完成日历程序编写的过程中,复习了变量的定义、顺序结构、选择结构、循环结构等基础知识,掌握了软件开发的主要步骤,培养了学生分析问题、解决现实问题的能力。
参考文献:
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2010.
[2]曹衍龙.C语言实例解析精粹[M].北京:人民邮电出版社,2007.