资源描述:
《c语言课程设计报告报告--万年历,最详细》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、完美WORD格式整理C语言课程设计报告-----万年历设计人:贾伟涛学号:2013010912班级:13电信应电班指导老师:张伟日期:2014年6月9日专业资料分享完美WORD格式整理内容提要通过大一下学期对C语言的学习,了解到了很多C语言的相关知识。学习的过程虽然有很多困惑,但是当自己能够独立的看懂和独立的完成一个简单的程序时,心中就会收获无限的喜悦和成就感。我虽然可以看懂一些简单的程序,编写一些简单的计算程序,更多的是学会了一种思想——编程,它让我在去思考很多日常生活中的事物是怎么样通过一个个小小的函数实现功能的,激发我对c语言的兴
2、趣。C语言是近年在国内外得到迅速推广应用的一种机器语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。因此,C语言特别适合于编写各种软件。在这次的课程设计中我将把日常生活中最经常接触的——日历的查询,利用C语言的程序编成一个简单的万年历查询系统。通过这个小小的系统可以实现很多功能。在程序中你能看到很多熟悉的C语言关键字,同时也加入了很多自己课外了解到的一些关键字。在不断的调试中最终才获得最为完整的程序。接下来就是我的C语言课程设计的具体内容来了,大家拭目以
3、待吧!专业资料分享完美WORD格式整理目录一、系统功能和数据说明-----------------------二、问题分析---------------------------------三、程序总体设计及功能结构框图---------------四、程序流程图-------------------------------五、源程序代码-------------------------------六、使用说明---------------------------------七、个人心得--------------------------
4、-------八、参考文献---------------------------------专业资料分享完美WORD格式整理一、系统功能和数据说明(一)功能简介在日常生活中能接触到很多不同类型的日历,在日历上我们通常希望它能简单明了的给我们最想要的日期信息。在我的万年历系统当中,就是将日历,月历做的简单明了,很方便我们的查询使用。下面是它要实现的一些基本功能:C语言编写万年历查询系统:(1)输入年份,判断是否为闰年(2)输入年月日,判断是星期几(3)输入年份,打印出12个月的月历(4)输入年月,打印出本月的日历另新增:(1)对输入指令错
5、误的提示(2)加入了调用系统时间函数(3)还添加了欢迎界面并进行界面优化(二)程序中的数据说明①intdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};这是定义的关于每个月天数的数组,根据大小月以及二月份的特殊情况将每个月的天数变为数组中的元素存入数组当中。其中days[1]=28,是将闰年二月的天数28天作为初始元素存入。在经过yearMonth函数后就可以给days[1]中存入正确的月天数。②tm*tp;char*week[]={"一","二","三","四","五","六","日"};这
6、两组数据设计都利用了指针定义,利用指针可以提高程序的可读性,可以更方便使用。这两个数组的作用是用于调用系统时间,而定义的星期数组*week[]和年月日变量*tp,由于还没学到指针,在这里查阅了很多资料,并也借鉴了前辈们的很多程序。专业资料分享完美WORD格式整理二、问题分析对于闰年的判断,能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。日期的查询,就是直接打印改天所在月份的月历。程序难点在于判断星期,但根据公式,我们可以很容易地用年月日推断出星期:weekday=(day+2*month+3*(month+1)
7、/5+year+year/4-year/100+year/400)%7;其中year:要查询的年份day:从该年的一月一日起到该天的天数weekday:得出的星期数。在打印月历时,只要知道第一天的星期,就可以依次输入后面的日期,通过一定长度输出日期,在遇到某天时星期天时,就换行输出,因此可以按照月历的格式输出。对于初始输入当前系统时间,可以通过中的time和localtime函数取出系统时间进行初始化。判断日期是否合法,if((year>=3000
8、
9、year<=1600)
10、
11、(month>=12
12、
13、month<0)
14、
15、
16、(day>=31
17、
18、day<=0)){system("CLS");printf("输入错误,系统及即将返回!");Sleep(3000);gototz;}可以先判断年月日是否有小于0的值,月和日是否有超出最