没有合适的资源?快使用搜索试试~ 我知道了~
数据结构课程设计 -万年历.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
28 浏览量
2022-10-29
12:15:35
上传
评论 1
收藏 581KB DOCX 举报
数据结构课程设计 -万年历.docx数据结构课程设计 -万年历.docx
资源推荐
资源详情
资源评论





















学生实验报告
实验课名称:数 据 结 构
实验项目名称:万年 历
专 业 名 称:计算机科学与技术
班
学
级:44444444444444
号:4444444444444
学 生 姓 名:古古怪怪
教 师 姓 名:坎坎坷坷
2009 年 6 月 28 日
一、 实验名称:
万年历
二、实验目的与要求

设计目的
1、数据结构是计算机专业的教学计划中的核心课程之一,数据结构在计算机科
学中是一门综合性的专业基础课。“数据结构”的研究不仅涉及到计算机硬件(特
别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究
有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储
器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便查找和存
取数据元素更为方便。因此,可以认为“数据结构”是介于数学、计算机硬件
和计算机软件三者之间的一门核心课程。在计算机科学中,“数据结构”不仅是
一般程序设计(特别是非数值计算的程序设计 )的基础,而且是设计和实现编译
程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。
2、 通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能
力,能更好的巩固《数据结构》课程学习的内容,掌握 工程软件设计的基本方
法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了 c 语
言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以
后在工作中团队合作的重要性和必要性!
3、 通过数据结构课程设计,使学生了解高级程序设计语言的结构,掌握基本
的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,
具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计
打下坚实基础。
设计要求
1、能够显示星期;
2、能够显示年月日;
3、能显示十二个月;
4、能准确显示阳历的每一天;
4、格式与日历一致;
二、 实验内容:
1、 输出公元 1 年至 9999 年的日历;
2、 以标准日历的形式输出,包含月份、星期以及具体某一天对应的年、月、
星期;
3、 用数据结构课上所学二叉树及队列顺序存储形式存储;
三、 程序设计思路
【一】由于万年历具有以下特点:
1。平年 365 天(52 周+1 天),闰年 366 天(52 周+2 天)。平年 2 月 28 天,闰
年 2 月 29 天。
2。每 400 年整一闰,或每 4 年且不为百年的一闰。(原因:地球绕太阳一周的
时间是 365 天 5 小时 46 秒,为了使一年的天数为整数,将一年的天数定为 365
天,余下的时间积累起来,四年就是 23 小时 15 分 4 秒,将近一天,把这一天
加在某年的二月而成 29 天,该年称为闰年,其它年称为平年。但四年加一天
又多用了 44 分 56 秒,这个数积满 400 年为三天。因此 400 年中只能有 97 个
闰年,所以凡能被 400 整除,或不能被 100 整除但能被 4 整除的年份为闰年。)

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年前是一家)
【二】根据万年历以上特点进行编写:
(1)首先对万年历年、月、日进行编写,编写程序先定义每月的天数为 28天,
如月份为 1、3、5、7、8、10、12就定义天数为 31天反之如果月份为 4、6、
9、11 就输出天数为 30 天,由上可见 2 月份为 28 天但是如果为闰年就有 29
天就要定义一个数组存放天数,用 while循环控制。
(2)再对其中的星期进行编写:由于公元 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
例:
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年是平年)
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=星期四
剩余13页未读,继续阅读
资源评论

春哥111
- 粉丝: 7507
- 资源: 6万+

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
