Android万年历课程设计,电子万年历的设计(课程设计)

本文介绍了使用C++语言在单片机上设计电子万年历的方法,强调了软件的模块化结构和可读性。设计中考虑了闰年的计算规则,能够显示公农历日期、星期、节气和天干地支。系统通过DOS界面展示,操作简单,具备日期查询、修改和阴阳历转换功能。算法包括判断闰年、计算总天数和输出星期等功能。
摘要由CSDN通过智能技术生成

摘要:

随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。尤其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便。本设计主要是以单片机的C++语言进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。系统通过纯DOS界面显示调试结果,所以运行操作比较简单。可以显示公农历日期、星期、节气,天干地支。是一个比较简易适合大众的万年历。

设计思想:

众所周知,地球绕太阳公转,公转一周历时365天5小时48分46秒。现代国际上普遍采用罗马历法,在罗马历法中人为地规定一年365天,也就是我们所说的平年,为了弥补每一年多出的5小时48分46秒,同时又规定4年中有一年是闰年,闰年为366天(平年的2月份为28天,而闰年的2月份为29天),这样4年有365*3+366=1461天,而地球绕太阳公转4周历时1460天23小时15分4秒,这样,每4年又产生了44分56秒的误差,为了减小影响,历法上又规定,每400年中只存在97个闰年,这样400年中共有365*400+97=146097天,而地球绕太阳公转400周历时146096天21小时6分40秒,较好的弥补了这一缺陷,这样几乎3300年才产生一天的误差。所以在历法规定:年份能被4整除的(即年份为4的倍数)都是闰年,不过,年份以“00”结尾的但年份不能被400整除的不是闰年,即公元100、200、300等都不是闰年,公元400、800、1200等是闰年。这一规定适合于公元后的任何年份,但是不适合于公元前的年份,同时现代历法也认为, 不存在公元0年,公元前1年的第二年为公元1年,并不存在公元0年。

实现年月日及时间的查询与修改,功能类似于Windows的时间和日期。同时具备了阴阳历的转换功能,能显示所要查日期的星期和一些纪念日等的功能。

算法分析说明

1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为355。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。

2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。

3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。

d582b1edf822f0a07c7be7cc1dabc3df.png

c0d3c55a0f729294db142311e3bb0abe.png

9cb70b2e63a0bb1dd41baad7b42ec5e1.png

目   录

1.引言    1

2.设计思想:    1

3.算法分析说明    2

4.要用到的函数和语句    2

5.流程图    3

6.设计分析    4

7.功能过程的推导:    5

8.测试结果    13

9.部分源代码    15

10.结束语    21

11.参考文献    22

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值