万年历报告
万年历实验报告
万年历实验报告1. 引言日历是人们日常生活中必不可少的工具,用于追踪时间和日期。
在计算机科学中,开发一个能够准确显示日期和日历的程序也是非常重要的。
本实验的目标是设计并实现一个万年历程序,能够显示指定年份和月份的日历。
2. 实验目标本实验的目标是设计和实现一个简单的万年历程序,具体要求如下: - 能够根据指定的年份和月份显示该月的日历。
- 显示的日历应包含月份的名称、年份、星期几和日期。
- 如果输入的年份和月份超出了合法范围(如年份小于1或大于9999,月份小于1或大于12),程序应给出相应的错误提示。
3. 实验方法为了实现上述目标,我们采用了以下步骤:3.1 设计算法设计一个算法来确定给定年份和月份的开始日期,以及该月份的天数。
我们使用基于蔡勒公式的算法来计算开始日期,并根据每个月的天数确定日历的布局。
3.2 编写代码使用Python编程语言编写代码来实现万年历程序。
采用面向对象的编程方式,将日历的显示和计算逻辑封装到一个Calendar类中。
3.3 编写测试用例编写一系列测试用例来验证万年历程序的正确性。
测试用例包括输入合法年份和月份的情况,以及输入非法年份和月份的情况。
3.4 运行程序运行程序,并根据输入的年份和月份来显示相应的日历。
如果输入的年份和月份超出合法范围,程序应给出相应的错误提示信息。
4. 实验结果经过编写代码并进行测试,我们得到了一个能够正常显示日历的万年历程序。
以下是几个测试用例的示例结果:4.1 输入合法年份和月份输入年份为2022,月份为6的情况下,程序显示的结果如下:六月 2022日一二三四五六1 2 3 45 6 7 8 9 10 1112 13 14 15 16 17 1819 20 21 22 23 24 2526 27 28 29 304.2 输入非法年份和月份输入年份为0,月份为13的情况下,程序应给出错误提示信息,如下:输入的年份或月份不合法,请重新输入。
万年历实验报告
万年历实验报告万年历实验报告一、引言万年历是一种用来记录日期和时间的工具,它可以帮助人们追溯过去和规划未来。
在这个数字化时代,人们已经习惯了使用智能手机或电脑上的日历应用来管理时间。
然而,万年历的历史悠久,它的设计和功能一直在不断演进。
本实验旨在通过制作一个简单的万年历,探索其原理和功能。
二、实验材料和方法1. 材料:- 一张大纸板- 一支铅笔- 一把剪刀- 一些彩色纸张- 一些装饰用的贴纸或标签- 一把直尺2. 方法:- 使用直尺和铅笔在大纸板上绘制一个正方形,边长为30厘米。
- 将正方形分为7行7列,形成一个格子状的网格。
- 在每个格子中填写日期和星期几,从1号到31号。
- 使用剪刀将彩色纸张剪成小方块,每个方块代表一个特殊的日子(如生日、节日等)。
- 将彩色纸张粘贴在相应的日期上,并使用贴纸或标签进行装饰。
三、实验结果经过一番努力,我成功地制作了一个简单的万年历。
每个格子中都填写了日期和星期几,并且我还用彩色纸张标记了一些特殊的日子。
整个万年历看起来非常漂亮,装饰用的贴纸和标签增添了一些趣味性。
四、讨论万年历是人类文明的重要组成部分,它不仅帮助人们记录时间,还反映了人们对时间的认知和组织。
通过制作万年历,我更深入地理解了时间的概念和日期的变化规律。
我发现,每个月的天数不同,而星期几则是按照一定的循环顺序变化的。
此外,万年历还可以帮助我们规划未来。
通过标记特殊的日子,我们可以提前做好准备,如购买礼物、安排行程等。
而且,万年历还可以提醒我们重要的事项,如朋友的生日、会议的时间等。
它是我们生活中不可或缺的工具之一。
然而,制作一个完整的万年历并不容易。
除了填写日期和星期几之外,还需要考虑闰年的影响。
闰年是指能被4整除但不能被100整除的年份,或者能被400整除的年份。
在闰年中,2月份会多出一天,即29号。
这是为了与地球公转周期相适应,以保持日历系统的准确性。
五、结论通过本实验,我成功地制作了一个简单的万年历,并对时间的概念和日期的变化规律有了更深入的了解。
数字万年历实习报告
实习报告一、实习背景及目的随着科技的不断发展,数字电子技术在人们的生活中扮演着越来越重要的角色。
数字万年历作为一种实用性强的电子产品,不仅能够提供准确的日期信息,还能具备一些扩展功能,如节日提醒、闹钟等。
为了提高自己的实践能力和对数字万年历的了解,我选择了数字万年历设计制作作为实习项目。
本次实习的主要目的是通过实际操作,掌握数字万年历的设计原理和制作过程,提高自己的电子技术应用能力。
二、实习内容1. 数字万年历的设计在实习过程中,我首先学习了数字万年历的设计原理,了解了其核心组成部分,包括微控制器、显示模块、按键输入模块等。
在此基础上,我根据实习指导书提供的电路图和程序代码,设计了数字万年历的硬件电路和软件程序。
2. 数字万年历的组装在设计完成后,我开始进行数字万年历的组装工作。
首先将微控制器、显示模块、按键输入模块等元器件焊接在电路板上,然后连接电源模块和时钟模块。
在组装过程中,我学习了如何使用电烙铁、焊锡等工具,提高了自己的动手能力。
3. 数字万年历的调试与优化完成组装后,我开始对数字万年历进行调试。
通过反复测试,发现并解决了一些问题,如显示模块显示异常、按键响应不良等。
在解决问题过程中,我深入分析了电路原理和程序代码,掌握了数字万年历的运行机制。
最后,我对程序代码进行了优化,提高了数字万年历的运行效率。
三、实习收获1. 提高了自己的电子技术应用能力。
通过本次实习,我掌握了数字万年历的设计原理、组装方法和调试技巧,提高了自己在电子技术方面的实际操作能力。
2. 培养了动手能力和团队协作精神。
在实习过程中,我学会了如何使用各种电子工具,培养了动手能力。
同时,与同学们一起讨论问题、分享经验,提高了团队协作精神。
3. 增强了自己的问题解决能力。
在数字万年历的调试过程中,我遇到了各种问题,通过查阅资料、请教同学和老师,逐步解决问题,增强了自己的问题解决能力。
4. 加深了对数字电子技术的理解。
通过实习,我对数字电子技术的基本原理和应用有了更深入的了解,为今后学习相关课程和从事相关工作奠定了基础。
万年历实验报告
篇一:电子万年历实验报告重庆电力高等专科学校计算机科学系实训报告课程名称实验名称班级信息0911 姓名廖林单片机应用技术电子万年历学号 200903020243 教师任照富日期 2010-12-28 地点一教七机房一、实训任务:1、看实训要求,计划出自己实训所要用元件,在网上查找资料。
2、思考仿真原理图,然后画出来(具体i/o口暂时不确定)。
3、在网上找一些程序,然后自己改一些,进行编译。
4、编译无误之后,跟原理图相联系,完成最终的仿真图。
5、进行最后的改写,把程序和仿真原理图确定下来。
6、根据仿真图形,制作出实物图。
7、在实物制作过程中,进行电路检查和最后的调试。
二、实训要求:要求:能显示阳历的年、月、日、星期、时、分、秒;能显示阴历的年、月、日;能进行日期、时间的调整。
扩展:能显示当前温度;有闹钟功能(至少2个)选择ds1302时钟芯片,温度传感器采用ds18b20数字温度传感器。
三、实训环境(软件、硬件):软件:keil protues7.5硬件:计算机2单片机的应用四、实训意义:在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
因此我们需要一个定时系统来提醒这些忙碌的人,而数字化的钟表给人们带来了极大的方便。
由于单片机具有灵活性强、成本低、功耗低、保密性好等特点,所以电子日历时钟一般都以单片机为核心,外加一些外围设备来实现。
电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。
因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。
而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。
所以,电子万年历无论作为竞赛题目还是毕业设计题目都是很有价值。
对于这个实验项目,我们还要有一些其他的基本知识掌握和意义:(1)在学习了《数字电子技术》和《单片机原理及接口技术》课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,为了培养动手能力和解决实际问题的经验,了解专用时钟芯片ds1302,并会用ds1302芯片开发时钟模块,应用到其他系统中去。
万年历实验报告
万年历实验报告万年历实验报告一、实验目的本次实验的目的是通过制作一个万年历来加深对时间、日期和闰年的理解,并提高对日历制作的实践能力。
二、实验材料1. 硬纸板2. 尺子3. 铅笔4. 剪刀5. 胶水6. 彩色纸7. 圆规三、实验步骤1. 使用尺子和铅笔在硬纸板上绘制一个正方形,边长为20厘米。
2. 将正方形分成7个等分,每个小方格的边长为2.86厘米。
3. 使用圆规在彩色纸上绘制一个直径为2.86厘米的圆。
4. 将圆剪下来,并在其上方留下一段直线。
5. 将圆粘贴在正方形的左上角小方格内,并将直线向下延伸至第二行小方格的中心。
6. 在正方形的左上角小方格内写下月份的缩写,如1月、2月等。
7. 在第二行小方格内写下1、2、3等日期。
8. 重复步骤6和步骤7,直到填满整个正方形。
9. 在正方形的左上角小方格内写下星期几的缩写,如周一、周二等。
10. 将整个正方形的边缘用彩色纸包裹,以增加美观度。
四、实验结果通过以上步骤,我们成功制作了一个简易的万年历。
每个小方格对应一个日期,上方的直线表示该月份的第一天是星期几。
通过翻阅这个万年历,我们可以轻松地查找到任意日期所对应的星期几。
五、实验心得通过这次实验,我深刻理解了时间和日期的关系,以及闰年的概念。
制作万年历的过程中,我不仅学会了使用尺子、铅笔、剪刀等工具,还提高了我的手工能力和空间想象力。
此外,通过实践,我对日历的结构和设计有了更深入的了解。
六、实验拓展1. 可以尝试使用不同颜色的彩色纸来制作万年历,增加视觉效果。
2. 可以尝试增加一些特殊日期的标记,如节假日、生日等。
3. 可以尝试制作一个更大的万年历,包含更多年份和月份的信息。
七、结论通过本次实验,我们成功制作了一个简易的万年历,并通过实践加深了对时间、日期和闰年的理解。
这个万年历不仅具有实用性,还提高了我们的手工能力和空间想象力。
通过实践,我们对日历的结构和设计有了更深入的了解。
2024万年历 - A4打印一页
日一二三四五六日一二三四五六日一二三四五六12345612312元旦廿⼀廿⼆廿三廿四小寒廿⼆廿三廿四廿⼀廿⼆78910111213456789103456789廿六廿七三九廿九⼗⼆月初⼆初三立春六九廿七廿⼋廿九除⼣春节九九廿四惊蛰廿六廿七廿⼋廿九141516171819201112131415161710111213141516初四初五初六初七四九初九⼤寒初⼆初三初四七九初六初七初⼋⼆月龙头初三初四初五初六初七212223242526271819202122232417181920212223⼗⼀⼗⼆⼗三⼗四⼗五⼗六五九初九雨⽔⼗⼀⼗⼆⼗三⼋九元宵初⼋初九初⼗春分⼗⼆⼗三⼗四28293031252627282924252627282930⼗⼋⼗九⼆⼗廿⼀⼗六⼗七⼗⼋⼗九⼆⼗⼗五⼗六⼗七⼗⼋⼗九⼆⼗廿⼀31廿⼆日一二三四五六日一二三四五六日一二三四五六12345612341廿三廿四寒食清明廿七廿⼋劳动廿四廿五廿六⼉童789101112135678910112345678廿九三⼗三月初⼆上巳初四初五立夏廿⼋廿九四月初⼆初三初四廿六廿七廿⼋芒种五月初⼆初三14151617181920121314151617189101112131415初六初七初⼋初九初⼗⾕雨⼗⼆护⼠初六初七初⼋初九初⼗⼗⼀初四端午初六初七初⼋初九初⼗212223242526271920212223242516171819202122⼗三⼗四⼗五⼗六⼗七⼗⼋⼗九⼗⼆小满⼗四⼗五⼗六⼗七⼗⼋⼗⼀⼗⼆⼗三⼗四⼗五夏⾄⼗七28293026272829303123242526272829⼆⼗廿⼀廿⼆⼗九⼆⼗廿⼀廿⼆廿三廿四⼗⼋⼗九⼆⼗廿⼀廿⼆廿三廿四30廿五日一二三四五六日一二三四五六日一二三四五六1234561231234567廿六廿七廿⼋廿九三⼗小暑廿七廿⼋廿九廿九三⼗⼋月初⼆初三初四白露7891011121345678910891011121314初⼆初三初四初五初六初七初⼋七月初⼆初三立秋初五初六七⼣初六初七初⼋初九初⼗⼗⼀⼗⼆141516171819201112131415161715161718192021初九初伏⼗⼀⼗⼆⼗三⼗四⼗五初⼋初九初⼗末伏⼗⼆⼗三⼗四⼗三⼗四中秋⼗六⼗七⼗⼋⼗九212223242526271819202122232422232425262728⼗六⼤暑⼗⼋⼗九中伏廿⼀廿⼆中元⼗六⼗七⼗⼋处暑⼆⼗出伏秋分廿⼀廿⼆廿三廿四廿五廿六28293031252627282930312930廿三廿四廿五廿六廿⼆廿三廿四廿五廿六廿七廿⼋廿七廿⼋日一二三四五六日一二三四五六日一二三四五六123456121234567国庆三⼗九月初⼆初三初四⼗月初⼆⼗⼀月初⼆初三初四初五⼤雪初七789101112133456789891011121314初五寒露初七初⼋重阳初⼗⼗⼀初三初四初五初六立冬初⼋初九初⼋初九初⼗⼗⼀⼗⼆⼗三⼗四141516171819201011121314151615161718192021⼗⼆⼗三⼗四⼗五⼗六⼗七⼗⼋初⼗⼗⼀⼗⼆⼗三⼗四下元⼗六⼗五⼗六⼗七⼗⼋⼗九⼆⼗冬⾄212223242526271718192021222322232425262728⼗九⼆⼗霜降廿⼆廿三廿四廿五⼗七⼗⼋⼗九⼆⼗廿⼀小雪廿三廿⼆廿三廿四圣诞 廿六廿七廿⼋2829303124252627282930293031廿六廿七廿⼋廿九廿四廿五廿六廿七感恩廿九三⼗廿九三⼗⼗⼆月2 0 2 4 「甲辰龙年」2024 一月 January2024 二月 February2024 三月 March2024 四月 April2024 五月 May2024 六月 June2024 七月 July2024 八月 August2024 九月 September2024 十二月 December2024 十一月 November2024 十月 October。
多功能万年历实训报告
多功能万年历实训报告近年来,相对于表面简单的日历无可争议的是,多功能万年历已经成为一种非常有用的文具,受到越来越多的人的重视和关注,也正在广泛使用于社会各个地方。
多功能万年历是一种新型日历,其主要特点是可以将数年的日期以及日、周、月、季、年等不同粒度维度的时间信息,集中展示在一个位置上。
它即可以作为日历,也可以作为记事本,用来记录日常的重要事件。
多功能万年历不仅方便使用,还具有高效率和高质量的特性,可以满足大多数人的使用需求。
多功能万年历的具体实施方法可以根据不同的年份对内容进行调整,以满足不同的使用需求。
多功能万年历分为农历和西历两种,可以满足不同宗教信仰以及民族文化因素,方便大家使用。
报告二:多功能万年历的实际用途多功能万年历主要用来起到提醒和记录日常任务的功效,它可以帮助我们根据日历来安排日常安排,更好地实现安排效果,减少日常活动时间的浪费。
多功能万年历还可以作为学生的学习工具,在学习过程中,可以使用多功能万年历来记录课后作业、考试日期、项目时间表等内容。
这样可以帮助学生更加细致地安排时间,管理学习任务,获得更高的学习成绩。
此外,多功能万年历在工作中也有重要的作用,可以帮助用户更好地安排工作进度,更好地掌握业务进度,更快更准确地完成工作任务。
报告三:使用多功能万年历的技巧使用多功能万年历之前,有几个技巧需要了解,以便能够更好地把握使用这种新的时间管理方法所带来的好处。
首先,应该先掌握使用多功能万年历的大体原理,熟悉不同粒度维度的时间信息,以便能够更好地把握计划进度。
其次,在实际使用时,要把握好时间安排的先后顺序,合理地安排工作、学习安排,保证每一项任务得以圆满完成。
最后,应该注意定时更新多功能万年历,对于已经完成的任务,也要及时标注,以确保时间安排和任务完成的准确性。
综上所述,多功能万年历的引入,不仅为我们的日常管理活动带来便利,也为我们的工作和学习取得更好的成绩提供了可能,值得我们积极使用。
万年历的实训报告模板
摘要:本实训报告旨在通过对万年历的设计与应用,加深对时间管理、编程技术以及用户界面设计的理解。
通过实训,我们不仅学会了万年历的基本原理,还掌握了编程实现和用户体验优化的方法。
以下是对实训过程的详细记录和分析。
一、实训目的1. 理解万年历的基本原理和设计思路。
2. 掌握编程语言(如Python、Java等)在万年历开发中的应用。
3. 提升用户界面设计能力,优化用户体验。
4. 培养团队合作与沟通能力。
二、实训环境1. 操作系统:Windows 102. 开发工具:Python3.8、PyCharm3. 用户界面设计工具:Qt Designer4. 数据库:SQLite三、实训原理万年历是一种用于记录和显示日历的工具,它按照公历或农历的日期排列,方便用户查看和查询。
万年历的设计原理主要包括以下几个方面:1. 闰年判断:通过判断年份是否为4的倍数来确定是否为闰年,同时还需考虑能被100整除但不能被400整除的年份不是闰年。
2. 月份天数:根据月份和闰年/非闰年的判断来确定每月的天数。
3. 星期计算:根据年、月、日计算出星期几。
4. 农历转换:根据农历的算法将公历日期转换为农历日期。
四、实训过程1. 确定项目需求:根据实训要求,设计一个功能齐全、界面友好的万年历软件。
2. 设计软件架构:确定软件的模块划分,包括主界面、日期计算、农历转换等模块。
3. 编写代码实现:使用Python语言实现万年历的各个功能模块。
4. 用户界面设计:使用Qt Designer设计软件的用户界面,包括日期选择、查询结果展示等。
5. 数据库设计:使用SQLite数据库存储万年历的数据,包括日期、农历信息等。
6. 调试与优化:对软件进行调试,修复可能出现的问题,并优化用户体验。
五、实训结果1. 成功实现万年历的基本功能,包括公历和农历的日期转换、查询等。
2. 软件界面简洁美观,用户操作方便。
3. 数据库设计合理,保证了数据的完整性和安全性。
万年历课程设计报告
万年历课程设计报告一、课程目标知识目标:1. 学生能够理解万年历的基本概念,掌握年、月、日的关系及其换算方法。
2. 学生能够运用所学知识,独立制作并使用简易的万年历。
3. 学生了解我国农历与公历的区别及相互转换方法。
技能目标:1. 培养学生运用数学知识解决实际问题的能力,提高逻辑思维和推理能力。
2. 培养学生动手操作和团队协作能力,通过制作万年历的过程,锻炼实践操作技能。
情感态度价值观目标:1. 培养学生对时间管理的重视,树立珍惜时间的观念。
2. 增强学生对传统文化的认识,激发对中国古代天文历法的兴趣。
3. 培养学生积极探究、合作交流的良好学习态度,提高学习自信心。
课程性质分析:万年历课程属于数学与生活相结合的综合性课程,旨在让学生在实际问题中运用数学知识,提高解决实际问题的能力。
学生特点分析:考虑到学生所在年级的特点,课程内容应以直观、生动、有趣的方式进行设计,注重培养学生的动手操作能力和团队协作精神。
教学要求:1. 教师应充分准备教学资源,提供丰富的实例,引导学生主动参与学习过程。
2. 教学过程中,教师要以学生为主体,关注学生的个体差异,给予个性化指导。
3. 教师要关注学生的学习反馈,及时调整教学策略,确保课程目标的达成。
二、教学内容1. 年、月、日的关系及其换算方法- 公历与农历的基本概念- 年、月、日的定义及其相互关系- 闰年和平年的判断方法2. 简易万年历的制作- 万年历的基本结构- 制作步骤及注意事项- 万年历的使用方法3. 我国农历与公历的转换方法- 农历与公历的对应关系- 农历日期的推算方法- 二十四节气的计算与应用教学大纲安排:第一课时:导入万年历的概念,介绍年、月、日的关系及其换算方法,讲解闰年和平年的判断方法。
第二课时:指导学生动手制作简易万年历,掌握万年历的基本结构和使用方法。
第三课时:学习我国农历与公历的转换方法,了解二十四节气的计算与应用。
教材章节:《数学》教科书:第四章 时间与测量,第四节 万年历的制作与应用。
万年历开题报告
万年历开题报告万年历开题报告一、引言万年历是一种可以显示任意年份、月份和日期的工具。
它是人们日常生活中常用的一种时间管理工具,可以帮助人们追踪时间、安排日程、计算日期差等。
随着科技的发展,万年历也逐渐从纸质版转变为电子版,并且在智能手机和电脑等设备上得到广泛应用。
本文将介绍我对万年历项目的开题报告,包括项目的背景、目标和计划等。
二、项目背景随着人们生活水平的提高,时间管理变得越来越重要。
人们需要一个方便、实用的工具来帮助他们管理时间和日程。
万年历正是满足这一需求的工具之一。
然而,现有的万年历应用存在一些问题,如功能不够全面、界面不够美观等。
因此,我决定开发一个全新的万年历应用,以解决这些问题。
三、项目目标1. 提供全面的功能:新的万年历应用将提供日历、日程安排、日期计算等功能,以满足用户的各种需求。
2. 设计美观的界面:界面是用户与应用交互的重要部分,我将注重设计一个美观、简洁的界面,提升用户体验。
3. 支持多平台:新的万年历应用将支持多种平台,包括智能手机、平板电脑和电脑等,以便用户在不同设备上都能方便地使用。
四、项目计划1. 研究市场需求:首先,我将进行市场调研,了解目前市场上的万年历应用的特点和用户需求,以便更好地设计和开发新的应用。
2. 制定功能需求:根据市场调研结果,我将制定详细的功能需求文档,明确新应用需要实现的功能和特点。
3. 进行界面设计:在明确功能需求后,我将进行界面设计,包括颜色搭配、图标设计等,以确保界面美观且易于使用。
4. 开发应用:在完成界面设计后,我将着手开发新的万年历应用,包括编写代码、测试和修复bug等。
5. 测试和优化:在应用开发完成后,我将进行全面的测试,确保应用的稳定性和功能完善性。
如果发现问题,我将及时修复并进行优化。
6. 发布和推广:在应用测试通过后,我将发布新的万年历应用,并进行推广,以吸引更多用户使用。
五、预期成果通过这个项目,我希望能够开发出一款功能全面、界面美观、易于使用的万年历应用。
电子语音万年历实训报告
一、实训背景与目的随着科技的飞速发展,电子产品的应用越来越广泛,智能化、自动化已成为现代生活的趋势。
电子语音万年历作为一种结合了传统日历与现代电子技术的产品,不仅具有信息存储、查询的功能,还能提供语音播报,极大地方便了人们的生活。
本次实训旨在通过实际操作,了解电子语音万年历的设计原理、制作流程,提高学生的动手能力、创新能力和团队协作能力。
二、实训内容与过程1. 硬件选型与搭建(1)选择合适的微控制器作为核心控制单元,如STM32或Arduino等。
(2)设计电路板,包括电源电路、按键电路、显示电路、语音模块电路等。
(3)选择合适的显示屏,如OLED或LCD等,用于显示日期、星期等信息。
(4)选择语音模块,如ESP8266或ESP32等,实现语音播报功能。
2. 软件设计(1)编写程序,实现万年历的基本功能,如日期显示、星期显示、节假日查询等。
(2)设计语音播报功能,实现语音报时、语音查询等功能。
(3)优化程序,提高程序的稳定性和运行效率。
3. 系统调试与测试(1)连接电路板,进行硬件调试,确保各个模块正常工作。
(2)编写测试程序,对万年历的各项功能进行测试,确保功能完善。
(3)对语音模块进行调试,确保语音播报准确无误。
三、实训成果与分析1. 成果展示本次实训成功制作了一款电子语音万年历,具有以下功能:(1)日期显示:实时显示当前日期和星期。
(2)语音播报:可语音报时,语音查询日期、星期、节假日等信息。
(3)节假日查询:自动识别节假日,并提示用户。
2. 成果分析(1)本次实训提高了学生的动手能力,通过实际操作,掌握了电子语音万年历的设计与制作过程。
(2)培养了学生的创新意识,在实训过程中,学生可以根据自己的需求,对万年历的功能进行拓展,如添加天气查询、闹钟等功能。
(3)提高了学生的团队协作能力,在实训过程中,学生需要相互配合,共同完成实训任务。
四、实训心得与体会1. 学会了硬件选型与搭建在实训过程中,我学会了如何选择合适的微控制器、显示屏、语音模块等硬件,并掌握了电路板的设计与制作方法。
数字万年历制作实习报告
一、实习背景随着科技的发展,电子产品的普及,人们对生活品质的要求也越来越高。
为了培养自己的动手能力,提高综合素质,我在本次实习中选择了数字万年历的制作。
数字万年历是一种结合了电子技术、编程和艺术设计的产品,它能够显示日期、星期、农历等信息,方便人们的生活和工作。
通过本次实习,我对数字万年历的制作过程有了更加深入的了解,也锻炼了自己的实际操作能力。
二、实习目的1. 学习数字万年历的制作原理,掌握电子元器件的选用和焊接技术。
2. 熟悉编程软件的使用,掌握单片机编程的基本方法。
3. 提高自己的动手能力和团队合作精神。
4. 培养自己的创新意识和解决问题的能力。
三、实习内容1. 硬件部分(1)元器件选型:根据数字万年历的功能需求,选择了以下元器件:STC89C52单片机、LCD显示屏、DS1302时钟芯片、按键模块、电阻、电容、二极管等。
(2)电路设计:根据元器件的特性和功能,设计了数字万年历的电路图。
电路图主要包括单片机、时钟芯片、显示屏、按键模块等部分。
(3)焊接:按照电路图进行元器件的焊接,确保电路连接正确。
2. 软件部分(1)编程环境:使用Keil uVision4软件进行编程。
(2)编程方法:根据数字万年历的功能需求,编写了以下程序:a. 初始化程序:设置单片机的工作模式、时钟频率、端口初始化等。
b. 时钟程序:读取DS1302时钟芯片的时间信息,显示在LCD显示屏上。
c. 显示程序:根据日期、星期、农历等信息,在LCD显示屏上显示相应的信息。
d. 按键扫描程序:扫描按键状态,实现日期、星期、农历等信息的切换。
3. 系统调试(1)硬件调试:检查电路连接是否正确,元器件是否损坏。
(2)软件调试:在Keil uVision4软件中编译程序,下载到单片机中,观察LCD显示屏的显示效果。
四、实习成果通过本次实习,我成功制作了一款数字万年历。
该万年历能够显示日期、星期、农历等信息,具有以下特点:1. 操作简便:用户可以通过按键切换日期、星期、农历等信息。
数字万年历实训报告总结
一、实训背景随着科技的飞速发展,电子产品的普及,人们对信息获取和展示的需求日益增长。
数字万年历作为一种实用性强的电子设备,其设计制作在当今社会具有重要意义。
为了提高自身动手能力、设计能力和创新思维,我参加了本次数字万年历实训课程。
二、实训目的1. 熟悉数字万年历的设计原理和制作流程;2. 掌握电子元器件的选择和电路设计;3. 提高编程能力和嵌入式系统应用能力;4. 培养团队合作精神和创新能力。
三、实训内容1. 硬件设计:根据数字万年历的功能需求,选择合适的电子元器件,如单片机、显示屏、按键等,并设计相应的电路图。
2. 软件设计:编写单片机程序,实现万年历的功能,包括日期显示、星期显示、闰年判断、节假日提醒等。
3. 系统集成:将硬件和软件进行集成,调试并测试系统功能。
4. 优化与改进:针对实际运行中存在的问题,对系统进行优化和改进。
四、实训过程1. 硬件设计阶段:在老师的指导下,我了解了数字万年历的基本硬件结构,并学会了如何选择合适的电子元器件。
根据功能需求,我选择了AT89C52单片机作为核心控制单元,并选择了1602液晶显示屏和按键作为输入输出设备。
通过查阅相关资料,我完成了电路图的设计。
2. 软件设计阶段:我学习了C语言编程,并掌握了单片机程序设计的基本方法。
在编写程序时,我实现了以下功能:(1)初始化:设置单片机的工作状态,初始化LCD显示和按键扫描。
(2)日期显示:读取实时日期,并在LCD上显示年、月、日。
(3)星期显示:根据日期计算出星期,并在LCD上显示。
(4)闰年判断:根据年份判断是否为闰年。
(5)节假日提醒:根据预设的节假日信息,在LCD上显示提醒信息。
3. 系统集成阶段:将硬件和软件进行集成,调试并测试系统功能。
在调试过程中,我发现了以下问题:(1)按键响应不及时:经过检查,发现按键扫描程序存在bug,导致按键响应不及时。
经过修改程序,问题得到解决。
(2)LCD显示不清晰:发现LCD显示模块的背光亮度不足,导致显示不清晰。
温湿度万年历实训报告
一、引言随着科技的不断发展,人们对生活品质的要求日益提高,温湿度控制已成为现代生活中不可或缺的一部分。
万年历作为一种时间管理工具,其与温湿度控制系统的结合,不仅能够满足人们对时间管理的需求,还能提供更加舒适的生活环境。
本实训报告旨在通过对温湿度万年历的设计与实现,探讨其在实际应用中的可行性和实用性。
二、实训目的1. 理解温湿度万年历的设计原理和实现方法。
2. 掌握温湿度传感器的应用技术。
3. 提高嵌入式系统开发能力。
4. 培养团队合作精神和创新能力。
三、实训内容1. 系统需求分析温湿度万年历系统应具备以下功能:(1)实时显示年、月、日、星期等信息。
(2)实时显示室内外温湿度信息。
(3)温湿度阈值设置与报警功能。
(4)万年历查询功能。
2. 系统设计(1)硬件设计温湿度万年历系统主要由以下硬件组成:- 主控芯片:选用STC89C52单片机,具有丰富的片上资源,易于编程。
- 温湿度传感器:选用DHT11温湿度传感器,具有高精度、低功耗等特点。
- 显示模块:选用LCD液晶显示屏,显示万年历和温湿度信息。
- 电源模块:采用可充电锂电池,保证系统长时间运行。
(2)软件设计温湿度万年历系统软件主要包括以下模块:- 主程序模块:负责系统初始化、数据采集、显示和报警等功能。
- 时钟模块:实现实时时钟功能,提供年、月、日、星期等信息。
- 温湿度采集模块:读取DHT11传感器数据,并进行处理。
- 显示模块:控制LCD显示屏显示万年历和温湿度信息。
- 报警模块:根据用户设定的温湿度阈值,进行报警提示。
3. 系统实现(1)硬件实现根据系统设计,搭建温湿度万年历硬件平台,连接主控芯片、温湿度传感器、LCD 显示屏等硬件模块。
(2)软件实现编写温湿度万年历系统软件,实现各项功能。
四、实训过程1. 硬件搭建首先,根据系统设计图纸,搭建温湿度万年历硬件平台。
连接主控芯片、温湿度传感器、LCD显示屏等硬件模块,并检查连接是否正确。
数字万年历实验报告
一、实验目的1. 掌握数字万年历的基本原理和设计方法。
2. 熟悉单片机编程和硬件电路设计。
3. 提高动手能力和问题解决能力。
二、实验原理数字万年历是一种能够显示年、月、日、星期、时、分、秒等信息的电子设备。
它主要由单片机、时钟芯片、显示模块、按键模块等组成。
本实验采用MSP430F149单片机作为核心控制单元,通过编程实现对万年历功能的实现。
三、实验设备1. MSP430F149单片机实验板2. 1602液晶显示屏3. DS1302时钟芯片4. 按键模块5. 电源模块6. 连接线四、实验步骤1. 设计硬件电路根据实验要求,设计万年历的硬件电路。
主要包括以下部分:(1)单片机模块:使用MSP430F149单片机作为核心控制单元。
(2)时钟芯片模块:使用DS1302时钟芯片提供时间基准。
(3)显示模块:使用1602液晶显示屏显示年、月、日、星期、时、分、秒等信息。
(4)按键模块:使用按键模块实现时间调整、功能选择等操作。
2. 编写程序根据硬件电路设计,编写万年历的程序。
主要步骤如下:(1)初始化硬件设备,包括单片机、液晶显示屏、时钟芯片等。
(2)从时钟芯片读取当前时间,并显示在液晶显示屏上。
(3)编写按键处理程序,实现时间调整、功能选择等功能。
(4)编写显示程序,实现年、月、日、星期、时、分、秒等信息的显示。
(5)编写时钟芯片校准程序,实现时间的精确控制。
3. 调试程序将编写好的程序烧录到MSP430F149单片机中,通过调试工具进行调试。
主要调试内容包括:(1)检查液晶显示屏显示是否正常。
(2)检查按键功能是否正常。
(3)检查时间调整、功能选择等功能是否正常。
(4)检查时钟芯片校准是否准确。
五、实验结果与分析1. 实验结果经过调试,万年历实验板能够正常显示年、月、日、星期、时、分、秒等信息,并且可以通过按键进行时间调整、功能选择等操作。
2. 实验分析(1)万年历的硬件电路设计较为简单,主要涉及单片机、时钟芯片、液晶显示屏、按键模块等。
万年历系统报告
程序设计(C语言)课程设计报告年级专业学号学生姓名指导教师二○一五年三月一、题目万年历系统二、目的通过此次综合编程实践,进一步熟悉和掌握C语言的基本知识、基本编程原理;学习用C语言开发应用程序的方法;进一步熟悉计算机程序设计的基本方法、步骤,培养设计、调试、测试程序能力。
三、程序功能介绍模仿现实生活中的挂历,当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。
当系统日期变到下一月时,系统自动翻页到下一月。
还可以对输入的日期进行验证是否正确并查询。
四、内容(1)功能界面介绍①在主函数实现功能界面的设计,显示系统当前月月历,提供功能的选择并调用相应函数来实现模块功能。
②显示系统当前日期的模块,实现在界面中显示系统当前的日期的功能。
③在月历中显示当前日的模块,实现当前日在月历中被不同颜色标注出来的功能。
④打印出y年m月第一天的日历的模块,实现确定月历中每个月开头第一天的开始位置并显示月历基本框架的功能。
⑤计算星期几的模块,实现计算出系统当前日期是星期几的功能。
⑥计算某月天数的模块,实现计算当前月有多少天的功能。
⑦判断是否为闰年的模块,实现判断当前日期所在年份是否为闰年功能。
⑧输入查询日期的模块,实现需要另外查询日期的输入并判断所属日期是否正确的功能。
(2)算法流程图(3) 程序实现(附程序代码和相应注释说明)#include<stdio.h> #include <time.h> #include<stdlib.h> #include<string.h> #include<conio.h> #include<ctype.h> #include<windows.h>int days(int y,int m); //计算y 年m 月有多少天void show(int year,int month,int day); //显示主界面void showCurrentTime(); //显示系统当前时间int week(int y,int m,int d); //计算y年m月d日是星期几void printfirstday(int y,int m);//打印出y年m月第一天的日历int isleaf(int y); //y年是否是闰年int checkYearAndMonth(int year, int month); //查找1——3000年中的一年的日历int checkinput();int checkDay(int year, int month, int day);int inputyear(void);void main(){char ch;showCurrentTime();printf("\n\n\t*****************************\n");printf("\t1.查看任意日期日历\n\t0.退出\n");printf("\t*****************************\n");printf("请选择:");while(1){scanf("%c",&ch);switch(ch){case '1':inputyear();break;case '0':exit(1);default:printf("选择错误,请从新选择!\n");break;}printf("\n\n\t*****************************\n");printf("\t1.查看任意日期日历\n\t0.退出\n");printf("\t*****************************\n");printf("请选择:");fflush(stdin);//清空输入缓冲区}}void showCurrentTime()/*显示系统当前时间*/{time_t nowtime;struct tm *timeinfo;int year, month, day;system("cls");printf("\n\t\t*****欢迎使用日历*****\n");printf("\n******************************\n");time( &nowtime );timeinfo = localtime( &nowtime );year = timeinfo->tm_year + 1900;month = timeinfo->tm_mon + 1;day = timeinfo->tm_mday;printf("当前日期:%d %d %d\n", year, month, day);printf("******************************\n");show(year,month,day);}void show(int year,int month,int day){int i=1;printf("%d年 %d月\n", year, month);printfirstday(year,month);for(i=1;i<days(year,month);i++){HANDLE hConsole;hConsole = GetStdHandle(STD_OUTPUT_HANDLE);if(day==i+1){SetConsoleTextAttribute(hConsole,236);}elseSetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);if(week(year,month,i+1)==6)printf("\t%d\n",i+1);else if(week(year,month,i+1)==0)printf("%d",i+1);elseprintf("\t%d",i+1);}}void printfirstday(int y,int m){int w;w=week(y,m,1);printf("日\t一\t二\t三\t四\t五\t六\n");switch(w){case 1:printf(" \t%d",1);break;case 2:printf(" \t \t%d",1);break;case 3:printf(" \t \t \t%d",1);break;case 4:printf(" \t \t \t \t%d",1);break;case 5:printf(" \t \t \t \t \t%d",1);break;case 6:printf(" \t \t \t \t \t \t%d\n",1);break;case 0:printf("%d",1);break;}}int week(int y,int m,int d){static int r[13]={0,0,3,3,6,1,4,6,2,5,0,3,5};int c,w;y%=400;if((y==0||y%4==0&&y%100!=0)&&m<3)c=5; else c=6;w=(y+y/4-y/100+r[m]+d+c)%7;return w;}int days(int y,int m){int d;switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:d=31;break;case 4:case 6:case 9:case 11:d=30;break;case 2:if(isleaf(y))d=29;elsed=28;}return d;}int isleaf(int y){if(y%4==0&&y%100!=0)return 1;elsereturn 0;}int inputyear(void){int year,month,day;printf("请输入年份(例如2013.8.12),按esc退出:\n");scanf("%d.%d.%d",&year,&month,&day);if(checkDay(year, month, day)){show(year,month,day);return 1;}else{printf("输入有误\n");return 0;}}int checkYearAndMonth(int year, int month){int b = 1;if (year<1 || year >3000){b = 0;}if (month < 1 || month > 12){b = 0;}return b;}int checkDay(int year, int month, int day){int b = 1;int d=0;if(b = checkYearAndMonth(year,month)){d=days(year,month);if(0<day&&day<=d)return 1;elsereturn 0;}elsereturn 0;}(4)代码程序调试过程程序刚执行的界面选择退出后的界面选择查看任意日期日历后的界面输入要查询的日期后的界面输入错误日期后的界面选择不存在的选项时候的界面五、总结几天前的现在,当听到老师布置给我们的一些课程设计题目时,我们都蒙了,这么难的题目我们怎么会啊,我们都表示不满,抗议,可是一切都是徒劳,我们只能尽我们自己最大的努力把程序给写出来,虽然知道这一路肯定是异常的艰苦,但豁出去了。
万年历的装配实习报告
实习报告实习时间:xxxx年xx月xx日至xxxx年xx月xx日实习单位:xxxx科技有限公司实习内容:万年历的装配与调试一、实习背景随着科技的发展,人们对于时间管理的需求越来越高,万年历作为一种传统的时间管理工具,以其简洁、实用的特点受到了广大用户的喜爱。
为了更好地了解万年历的装配过程,提高自己的实践能力,我选择了xxxx科技有限公司进行为期一个月的实习,主要参与万年历的装配与调试工作。
二、实习过程1. 装配前的准备在实习开始前,公司技术人员对我进行了详细的培训,介绍了万年历的工作原理、装配流程及注意事项。
同时,我还学习了相关的装配工具的使用方法,如螺丝刀、扳手等。
2. 装配过程根据培训内容,我开始了万年历的装配工作。
首先,我需要将万年历的各个零部件按照图纸要求进行组装。
这个过程需要仔细阅读图纸,确保零部件的安装位置和方向正确。
在装配过程中,我遇到了一些问题,如零部件的拆卸和安装顺序、装配精度的控制等。
在请教技术人员后,我逐步掌握了正确的装配方法。
3. 调试与检测装配完成后,需要对万年历进行调试和检测。
我学会了使用专业的检测设备和方法,如使用游标卡尺测量零部件的尺寸、使用功能测试仪检测万年历的性能等。
在调试过程中,我发现了一些问题,如零部件的磨损、装配不良等。
针对这些问题,我采取了相应的措施,如更换零部件、重新装配等,确保万年历的性能达到要求。
4. 质量控制与改进在装配和调试过程中,我深刻认识到质量控制的重要性。
为了保证万年历的质量,我严格遵循公司的质量管理体系,做好每一道工序的记录和检查。
同时,我还积极参与质量改进活动,提出了几点建议:(1)优化装配流程,减少装配误差;(2)加强零部件的检验和筛选,确保原材料的质量;(3)加强员工培训,提高装配技能和质量意识。
三、实习收获通过这次实习,我对万年历的装配过程有了深入的了解,从零部件的选购、装配、调试到质量控制等环节都积累了宝贵的经验。
同时,我也学会了与同事沟通、协作,提高了解决问题的能力。
万年历报告
万年历报告
万年历报告是关于某一年历法的详细记录和分类的报告。
它通常包括以下内容:
1. 年份:报告会标明所记录的年份。
2. 日期和星期:报告会按照每一天的顺序记录日期和相应的星期几。
3. 节日和纪念日:报告会列出当年的重要节日和纪念日,包括公共假日和特殊的宗教、文化或国家纪念日等。
4. 节气:报告会记录每个月的节气,包括冬至、夏至、春分、秋分等。
5. 周数:报告会显示每周的顺序和对应的周数,可以帮助人们了解每一周的起始和结束日期。
6. 阳历和阴历:报告会同时显示阳历和阴历的日期,适用于那些需要根据二者进行对比和转换的人们。
7. 星座:报告会记录每个月的星座和对应的日期范围,以满足对占星学或星象学感兴趣的人们的需求。
8. 其他特殊事件:报告可能还会包括一些特殊事件,如国际体育赛事、政治选举、重要会议等。
通过万年历报告,人们可以方便地查找和了解某一年的日期、节假日和其他重要事件,以便于计划日常生活、工作和活动。
这对于个人和组织都非常有用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1 引言 (1)1.1问题的提出 (1)1.2任务与分析 (1)2 程序的主要功能 (2)2.1查找功能 (2)2.2显示功能 (2)2.3闰年与平年判断 (2)3 程序运行平台 (2)4 总体设计 (3)6 模块分析 (4)6.1查找模块 (4)6.2显示模块 (6)6.3闰年与平年判断模块 (8)7 系统测试 (8)8总结 (11)摘要随着社会的发展,人们都沉寂于默默的工作中,并总是忽视了时间的流逝,当某天想起看看时间时,却忘记了日历。
日历与日程任务是紧密相连,密不可分的。
日程计划一般以日历形式展示最为方便,目的是明确每日的日程和任务主题,简单的说如果把时间比作是树干,那么任务和日程就是枝和叶。
通过软件可以把两者结合的很好。
为更好的方便于查看日程及时间,万年历软件在此给予很多的帮助。
万年历在日常生活中也有很重要是地位,所以在开发了万年历这以软件。
关键词:万年历、生活、软件1 引言1.1 问题的提出在日常生活中,万年历占有很重要的地位,它帮助了我们日常生活安排和工作安排的有序化。
在生活中,万年历已经成为我们不可缺少的一部分。
出于这种目的,开发出了万年历这以软件。
1.2任务与分析设计题目为:万年历主要内容:设计一个万年历,实现对年月日、星期几等内容的查询和显示功能。
具体要求:(1) 采用类和对象完成系统设计,设计一个日期类Date,包含年、月私有数据成员,具有通过输入的年月日查询日历并显示的功能;(2)可进行是否为闰年的查询;(3)显示功能中:模仿挂历排列格式,以月份顺序排列,每月以星期顺序排列,控制显示宽度。
2 程序的主要功能程序的主要功能有:1、日历的查询,包括按年份查询和按年月份查询;2、闰年和平年的判断。
2.1查找功能1、按年份进行查找,只输入某个年分,找到该年12个月每个月及没一天对应的周的日子;2、按年份及月份查找,输入某年及查找的月份,找到该月对应的日期。
2.2显示功能用户输入信息后,软件对相应日期进行查找,若只查找年份,则显示时以挂历的形式,按每页面2个月进行显示(12个月分6页显示);若查找包含月份,则在显示时显示出查找当月的日历。
2.3闰年与平年判断用户输入一个年份,系统自动对其进行判断,并输入是否闰年的信息。
3 程序运行平台操作系统平台为:Windows系列操作系统,编译平台为VC++6.0。
具体操作如下:新建“万年历”工程,在此工程中添加源文件calendar,在文件calendar中添加程序代码,并进行连接、调试,最后执行程序。
4 总体设计图4.1 总体框架图·5 程序类的说明Date类的声明:class Data //data类用于对万年历的内部变量及各个操作进行封装{private:int year;int month;public:Data(){year = 0;month = 0;}void getyearANDmonth(); //提示用户输入想要查询的年份及月份void getyear(); //提示输入查询的年份int GetYear(); //返回年份值int ioleapyear(); //判断该年是不是闰年int weekday(); //判断该年的元旦是星期几int monthday(int i); //该年每个月的天数void disp(); //显示结果。
void select(); //输入选择};6 模块分析6.1查找模块查找模块又分为两个查找子模块,分别是按年份查找模块和年月份查找模块。
按年份查找就是只需要输入年份,并对该年所以月份及对应日期进行查找;按年月份查找则需要输入年份及月份,只查找该月对应的日期。
图6.1查找模块流程图关键代码:void select(){ int m;system("cls");cout << "\t1、年份查询"<<"\t2、年份及月份查询"<< endl;cout << "输入你的选择:";cin >> m;switch(m){case 1:getyear();break; //按年份进行查找case 2:getyearANDmonth();break; //按年份及月份进行查找}}6.2显示模块该模块对查询信息进行显示结果,若是按年份查询,则按分屏显示对查询结果进行输出,若是对年月份进行查询,则直接对查询月份进行输出。
关键代码:void Data::disp() //显示查询信息结果{system("cls"); int m=0; int i; //这个是月的记录变量char* weekd[7]={"MON","TUE","WEN","THU","FRI","STA","SUN"}; //记录星期一到星期天int n=weekday(); //这也是调用了一个函数,用n记录当年的元旦是星期几 for(i=1;i<=12;i++) //总共的月份 12 ,用循环来实现显示12个月 {int lemp=1;cout<<endl<<"\t\t"<<year<<"年"<<setw(5)<<i<<"月份"<<endl; //显示月份的cout<<"-------------------------------------------"<<endl;for(int j=0;j<7;j++)cout<<setw(5)<<weekd[j];cout<<endl<<"-------------------------------------------"<<endl;for(int k=1;k<n;k++,lemp++) //输入每月第一天的起始位置,用空格补充cout<<setw(5)<<" ";//如果是星期四,则前面有3个空格,1从星期四的位置出现for(int d=1;d<=monthday(i);d++,lemp++) //循环输出每个月的日子{cout<<setw(5)<<d; //d就是日子if(lemp==7) { //控制一行输出到星期天,如果到星期天则重新计数cout<<endl; //是星期天的话刚输出一个换行lemp=0; //让临时记录星期的变量为0,以备下次使用} }n=lemp%7; //当输出完一个月后,记录这个月的最后一天在哪,寻找下个月的 if(n==0) //第一天的起始位置n=7; //就是当n为0的时候,是周日,令n为7 cout<<endl<<"------------------------------------------"<<endl<<endl<<endl;if(month != 0 ){ if(i == month ){ system("pause"); break; }system("cls"); }else{ m++;if(m%2==0){ system("pause"); system("cls");} } } }6.3闰年与平年判断模块用户只需要输入一个年份,则系统将自动通过判断模块对其是否为闰年进行判断,并输入其结果。
图6.2判断模块流程图关键代码:int Data::ioleapyear() //判断闰年和平年,闰年返回1,平年返回0 {if(year%4==0&&year%100!=0||year%400==0) //计算闰年和平年的方法 return 1; //四位年份能被4整除但不能被100整除,或能被400整除 elsereturn 0;}·7 系统测试首先进入VC++6.0,打开工程“万年历.dsw”,然后进入源程序,接着选择Build 下的calendar.exe即可,也可以不打开工程,直接双击万年历文件夹下的debug或release子文件夹下的calendar.exe文件即可运行程序。
图7.1主界面图7.2查询方式选择界面图7.3按年份查找显示结果一图7.4按年份查找显示结果二图7.5按年份查找显示结果三图7.6按年月份查找图7.7按年月份查找结果图7.8闰年与平年判断一图7.9闰年与平年判断二·8 结论通过本次课程设计的过程,谈谈自己的心得体会。
此程序只有2个功能,所以整个程序的机构比较简单。
一个功能是日历的查询,可以单年份查询,也可以年份及月份查询。
另一个功能是闰年及平年的判断,此模块内容非常简单,只需要对输入年份进行一个简单的判断就可以了。
在查询后的显示功能中,年份查询的显示是按照挂历形式,以每页每两个月的日期进行显示;年份及月份的查询则只是显示该月份的信息。
在年份的查询中,底线为1900年,无法对1900年以前的日期进行查询。
在显示过程中,按年份及月份查询没有做到直接显示该月份的日期,而是需要对以前的日期进行一次输出并清屏直到该月份停止。
按年份查询和按年份及月份查询的输出使用的是同一模块,若分开写出各自的显示模块则可以解决这一问题,但有增加了代码的长度及浪费了大量的空间。