c语言课程设计报告万年历最详细.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计报告 万年历 设计人:贾伟涛 学号: 2013010912 班级: 13 电信应电班 指导老师:张伟 日期: 2014年6月 9日 内容提要 通过大一下学期对 C语言的学习,了解到了很多 C语言的相关知识。学习的过 程虽然有很多困惑,但是当自己能够独立的看懂和独立的完成一个简单的程序时, 心中就会收获无限的喜悦和成就感。我虽然可以看懂一些简单的程序,编写一些简 单的计算程序,更多的是学会了一种思想——编程,它让我在去思考很多日常生活 中的事物是怎么样通过一个个小小的函数实现功能的,激发我对 c 语言的兴趣。 C语言是近年在国内外得到迅速推广应用的一种机器语言。 C语言功能丰富,表 达能力强, 使用灵活方便, 应用面广, 目标程序效率高, 可移植性好, 既具有高级语 言的优点,又具有低级语言的许多特点。因此, C语言特别适合于编写各种软件。 在这次的课程设计中我将把日常生活中最经常接触的——日历的查询,利用 语言的程序编成一个简单的万年历查询系统。通过这个小小的系统可以实现很多功 能。在程序中你能看到很多熟悉的 C 语言关键字,同时也加入了很多自己课外了解 到的一些关键字。在不断的调试中最终才获得最为完整的程序。接下来就是我的 C 语言课程设计的具体内容来了,大家拭目以待吧! 目录 一、 系统功能和数据说明 二、 问题分析 三、 程序总体设计及功能结构框图 四、 程序流程图 五、 源程序代码 六、使用说明 七、个人心得 八、参考文献 一、系统功能和数据说明 (一)功能简介 在日常生活中能接触到很多不同类型的日历, 在日历上我们通常希望它能简单明 了的给我们最想要的日期信息。在我的万年历系统当中,就是将日历,月历做的简 单明了,很方便我们的查询使用。下面是它要实现的一些基本功能: C语言编写万年历查询系统: 输入年份,判断是否为闰年 输入年月日,判断是星期几 输入年份,打印出 12 个月的月历 输入年月,打印出本月的日历 另新增: 对输入指令错误的提示 加入了调用系统时间函数 还添加了欢迎界面并进行界面优化 (二)程序中的数据说明 ① int days[12] = {31,28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 这是定义的关于每个月天数的数组,根据大小月以及二月份的特殊情况将每个 月的天数变为数组中的元素存入数组当中。其中 days[1]=28, 是将闰年二月的天数 28 天作为初始元素存入。在经过 yearMonth 函数后就可以给 days[1] 中存入正确的 月天数。 ② tm *tp; char *week[]={ 一, 二, 三 , 四, 五, 六, 日 }; 这两组数据设计都利用了指针定义,利用指针可以提高程序的可读性,可以更 方便使用。 这两个数组的作用是用于调用系统时间, 而定义的星期数组 *week[] 和年 月日变量 *tp ,由于还没学到指针,在这里查阅了很多资料,并也借鉴了前辈们的很 多程序。 二、问题分析 对于闰年的判断, 能被 4整除但不能被 100整除,或者能被 400 整除的年份 为闰年,否则为平年。日期的查询,就是直接打印改天所在月份的月历。 程序难点在于判断星期, 但根据公式, 我们可以很容易地用年月日推断出星 期: weekday=(day+2*month+3*(month+1)/5+year+year/4- year/100+year/400)%7; 其中 year :要查询的年份 day:从该年的一月一日起到该天的天数 weekday:得出的星期数。 在打印月历时, 只要知道第一天的星期, 就可以依次输入后面的日期, 通过 一定长度输出日期, 在遇到某天时星期天时, 就换行输出, 因此可以按照月历的 格式输出。 对于初始输入当前系统时间, 可以通过 time.h 中的 time 和 localtime 函 数取出系统时间进行初始化。 判断日期是否合法, if((year=3000||year=1600)||(month=12||month0)||(day=31||day =0)) { system(CLS); printf( 输入错误,系统及即将返回! ); Sleep(3000); goto tz; } 可以先判断年月日是否有小于 0 的值,月和日是否有超出最大值 12 和 31 ,如 果通过此判断合法, 再判断是否时闰年, 如果时闰年, 则判断二月份是否满足要 求,闰年二月份不能超过 29 天,平年二月份不能超过 28 天。在查询过程中,如 果发现输入不合法或者不满足输入要求,则提示错误,并返回主菜单。 三、程序总体设计及功能结构框图 (一)功能结构框图星期查11输出年(二)程序设计标

文档评论(0)

wangsux + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档