没有合适的资源?快使用搜索试试~ 我知道了~
首页C语言课程设计报告————编制万年历
C语言课程设计报告————编制万年历
需积分: 34 18 下载量 156 浏览量
更新于2023-03-03
评论
收藏 101KB DOC 举报
感觉还不错 跟大家分享一下 通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性
资源详情
资源评论
资源推荐
万年历的设计
二 、设计要求
1、能够显示星期;
2、能够显示年月日;
3、能够修改;
4、当系统时间变动时,能自动跳到相应的时间。
三 、 设计目的
1. 通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的
能力,能更好的巩固《C 语言程序设计》课程学习的内容,掌握 工程软件
设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!
更加了解了 c 语言的好处和其可用性!同时增加了同学之间的团队合作精
神!更加也体会到以后在工作中团队合作的重要性和必要性!
2. 通过 C 语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的
程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,
具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业
设计打下坚实基础。
四 、设计思想及过程
【一】由于万年历具有以下特点:
1。平年 365 天(52 周+1 天),闰年 366 天(52 周+2 天)。平年 2 月 28 天,闰
年 2 月 29 天。
由于公元 1 月 1 日设为星期六,故 3 月 1 日为星期三。 ——注意这个“三”
为使算法达到最简,故本算法以“星期”为计算单位。且选 3 月 1 日为基月。
2。每 400 年整一闰,或每 4 年且不为百年的一闰。(原因:地球绕太阳一周的
时间是 365 天 5 小时 46 秒,为了使一年的天数为整数,将一年的天数定为 365
天,余下的时间积累起来,四年就是 23 小时 15 分 4 秒,将近一天,把这一天
加在某年的二月而成 29 天,该年称为闰年,其它年称为平年。但四年加一天又
多用了 44 分 56 秒,这个数积满 400 年为三天。因此 400 年中只能有 97 个闰年,
所以凡能被 400 整除,或不能被 100 整除但能被 4 整除的年份为闰年。)
所以百年%4=0 闰或(年%4=0 并且年<>0)闰。
3。每 4 年(3 个平年+1 个闰年)共 208 周+5 天 ——注意这个“5 天”
每百年共 100*(208 周+5 天)-1 天=5217 周+5 天 ——注意这个“5 天”
(整百年暂设为平年)
每 400 年共 4*(5217 周+5 天)+1 天(整 400 年闰)=20871 周+0 天——注意
这个“0 天”和
“1 天”(4 个整百年只有一个闰年)
即 400 年一轮回!(原来万年历 400 年前是一家)
【二】根据万年历以上特点进行编写:
首先对万年历年、月、日进行编写,编写程序先定义每月的天数为 28 天,如
月份为 1、3、5、7、8、10、12 就定义天数为 31 天反之如果月份为
4、6、9、11 就输出天数为 30 天,由上可见 2 月份为 28 天但是如果为闰年就有
29 天就要定义另一个函数#dene Year(x) (x%4==0&&x%100!=0||x
%400==0) ? 1:0 当为闰年时可得 1 加上该程序便可得到每月的天数。 具体
程序见(五、万年历程序)
再对其中的星期进行编写:由于公元 1 月 1 日设为星期六,故 3 月 1 日为星期
三,可以用万年 3 月 1 日星期算法(特别是那个三)
由于其公式为:
某年 3 月 1 日星期几=(3 天+百年%4*5 天+年/4*5 天+年%4+月星期表+日-1 天)
%7
某年 3 月 1 日星期几=(百年%4*5 天+年/4*5 天+年%4+月星期表+日+2 天)%7
或 某年 3 月 1 日星期几=(百年%4*5 天+年+年/4+月星期表+日+2 天)%7
闰 4 百年 3 月 1 日星期算法(百年%4=0)
其公式为:
某年 3 月 1 日星期几=(年+年/4+月星期表+日+2 天)%7
例:0000 年 3 月 1 日星期几=(0+0/4+0+1+2)%7=3%7=星期三
1600 年 3 月 1 日星期几=(0+0/4+0+1+2)%7=3%7=星期三
2000 年 3 月 1 日星期几=(0+0/4+0+1+2)%7=3%7=星期三
2001 年 3 月 1 日星期几=(1+1/4+0+1+2)%7=4%7=星期四
2004 年 3 月 1 日星期几=(4+4/4+0+1+2)%7=8%7=星期一
2008 年 3 月 1 日星期几=(8+8/4+0+1+2)%7=13%7=星期六
2042 年 3 月 1 日星期几=(42+42/4+0+1+2)%7=55%7=星期六
平 4 百年 3 月 1 日星期算法(百年%4<>0)
其公式为:
某年 3 月 1 日星期几=(百年%4*5 天+年+年/4+月星期表+日+2 天)%7
例:1700 年 3 月 1 日星期几=(17%4*5+0+0/4+0+1+2)%7=8%7=星期一(注
意:1700 年是平年)
1800 年 3 月 1 日星期几=(18%4*5+0+0/4+0+1+2)%7=13%7=星期六(注
意:1800 年是平年)
1900 年 3 月 1 日星期几=(19%4*5+0+0/4+0+1+2)%7=18%7=星期四(注
意:1900 年是平年)
1901 年 3 月 1 日星期几=(19%4*5+1+1/3+0+1+2)%7=19%7=星期五
1918 年 3 月 1 日星期几=
(19%4*5+18+18/4+0+1+2)%7=(15+22+3)%7=40%7=星期五
1958 年 3 月 1 日星期几=
(19%4*5+58/4*5+58%4+3)%7=(15+70+2+3)%7=90%7=星期六
1988 年 3 月 1 日星期几=
(19%4*5+88/4*5+88%4+3)%7=(15+110+0+3)%7=128%7=星期二
1999 年 3 月 1 日星期几=
(19%4*5+99/4*5+99%4+3)%7=(15+120+3+3)%7=141%7=星期一
2100 年 3 月 1 日星期几=
(21%4*5+0/4*5+0%4+3)%7=(5+0+0+3)%7=8%7=星期一(注意:2100 年是平
年)
2101 年 3 月 1 日星期几=
(21%4*5+1/4*5+1%4+3)%7=(5+0+1+3)%7=9%7=星期二
2102 年 3 月 1 日星期几=
(21%4*5+2/4*5+2%4+3)%7=(5+0+2+3)%7=10%7=星期三
2103 年 3 月 1 日星期几=
(21%4*5+3/4*5+3%4+3)%7=(5+0+3+3)%7=11%7=星期四
2104 年 3 月 1 日星期几=
(21%4*5+4/4*5+4%4+3)%7=(5+1+0+3)%7=9%7=星期二(注意:2104 年是闰
年)
9999 年 3 月 1 日星期几=
(99%4*5+99/4*5+99%4+3)%7=(120+15+3+3)%7=141%7=星期一
注:按 400 年一轮回!(400 年前是一家)的说法
1600 年,2000 年是一样的;
1700 年,2100 年是一样的;
1800 年,2200 年是一样的;
1900 年,2300 年是一样的。
其中万年某日星期算法
其公式为:
某日星期几=(百年%4*5 天+年+年/4+月星期表+日+2 天)%7
通同星期偏差表
闰年 1 月 2 月 3 月 4 月 5 月 6 月 7 月 8 月 9 月 10 月 11 月 12 月
天数 31 29 31 30 31 30 31 31 30 31 30 31
星期 3 6 0 3 5 1 3 6 2 4 0 2
平年 1 月 2 月 3 月 4 月 5 月 6 月 7 月 8 月 9 月 10 月 11 月 12 月
天数 31 28 31 30 31 30 31 31 30 31 30 31
星期 4 0 0 3 5 1 3 6 2 4 0 2
为对以上的万年历星期的算法是正确的对其进行了以下的计算:
剩余14页未读,继续阅读
Fainche
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0