资源描述:
《c语言程序设计报告《万年历》》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《“万年历”》—C语言程序设计报告专业:计算机科学与技术班级:姓名:指导教师:年月日9目录1.设计的任务32.对问题的分析理解33.采用的算法(流程图)54.算法中涉及的知识点65.设计用的计算机环境66结论67.源代码791.设计的任务1.1设计编写一个C程序—“万年历”。1.2输入任一年将显示出该年的所有月份日期,对应的星期。1.3下一行显示星期,从周日到周六,中英文都可以。1.4下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐。1.5月份:中文英文都可以,注意闰年情况。2.对问题的分析理解2.1要输
2、入任一年显示出该年的所有月份日期,应该先设计具体的输出格式,如下:thecalendaroftheyear2008.JanuarySunMonTueWedThuFriSat12345678910111213141516171819202122232425262728293031FebruarySunMonTueWedThuFriSat91234567891011121314151617181920212223242526272829=============================================…………
3、2.2判断是不是闰年(year%4!=0
4、
5、year%100==0&&year%400!=0)满足条件就是平年,把一年中的所有月份分为四类(28,29,30,31)。2.3求出一年中的第一天是周几(year+(year-1)/4-(year-1)/100+(year-1)/400)%7。2.4有指针数组存放十二个月的英文和星期的英文缩写。2.5用FOR循环输出各月份的日历93.采用的算法(流程图)输出占六个字节的天数输出六个空格j++,j<7输出星期回车输出月份回车定义整型变year,i=0,j=0,a,n,m=1,k=0和函数
6、judgen=judge(year,i+1),p=month+ii++,i<4定义两个字符型数组,month,week定义一个指针变量**pa=(year+(year-1)/4-(year-1)/100+(year-1)/400)%7输入年份,year开始Nbreak,退出本次循环n==4&&m==30break,退出本次循环n==3&&m==29break,退出本次循环YYn==2&&m==28输出回车(a+m)%7==0NYYm++,m<32k++,k7、YY94.算法中涉及的知识点4.1定义整型,字符型,指针变量,字符型数组和指针数组。数组的初始化和引用和指针的使用。4.2函数的定义、声名、调用以及函数的返回值。4.3程序的三种基本结构:顺序,选择,循环。if语句的嵌套,for语句的嵌套。4.5赋值语句的使用。4.6输入(scanf)输出(printf)函数的应用。4.7算术运算符、关系运算符和逻辑运算符的应用。5.设计用的计算机环境WindowsXP,Turboc2.0和MicrosoftVisualC++6.06.结论6.1经过运行和调试得到了想要的结果—“万年历”,任意输
8、入一个年份能按当初设计的格式输出每个月份的日历。6.29对C语言在编写程序时的用处有了更明确的认识,懂得了编写C程序的一般法方步骤。最大的收获是,编写程序时一定要有信心和勇气,要相信自己一定可以把这个程序编写出来。分析问题做出算法,想好思路,在心里有个大致的框架,然后按部就班的记下自己想到的每一点内容,把写下的东西认真整理,查缺补漏,把一些细节的地方补上,就这样一个貌似很难的程序就写出来了(其实编程并不难,关键是要投入,要钻到里面去)。下一步就是读程序了,读程序时一定要小心仔细,一条语句一条语句的读,看是否能输出自己想要输出的结
9、果,如果发现错误要马上改过来,再接着向下读,直到把程序调试的完美无缺为至。7.源代码#include"stdio.h"intjudge(intyear,intmonth)/*定义一个函数,把月分为四类(28,29,30,31)*/{if(month==1
10、
11、month==3
12、
13、month==5
14、
15、month==7
16、
17、month==8
18、
19、month==10
20、
21、month==12)return(1);/*31天的月份,返回值为1*/elseif(month==2){if(year%4!=0
22、
23、year%100==0&&year%40
24、0!=0)return(2);/*平年的2月份,返回值为2*/elsereturn(3);/*闰年的2月份,返回值为3*/}elsereturn(4);/*30天的月份,返回值为4*/}main(){intyear,i,j,a,n,m,k;char**p;cha