- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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输出年(二)程序设计标
您可能关注的文档
最近下载
- 2024-2030年中国白羽鸡行业发展潜力及投资价值研究报告.docx
- DB51_T5058-2020:四川省抗震设防超限高层民用建筑工程界定标准.pdf VIP
- 腰椎间盘突出症医学课件.ppt VIP
- 腰椎间盘突出症医学课件.ppt VIP
- 电动汽车充电策略动态优化模型及仿真分析.docx VIP
- Q-CR9149-2018铁路大型临时工程和过渡工程设计规范(附条文).pdf VIP
- 《地理信息系统导论》复习资料(要点).pdf VIP
- 2024年天津市河东区中考英语模拟试卷(3月份)(含详细答案解析).docx VIP
- 《功能型无人车通用技术条件》.pdf VIP
- 机械维修的主要事迹范文(共10篇).pdf VIP
原创力文档


文档评论(0)