本人能力有限,不太会处理阴历,就在这个平台上找了一个比较好理解的博主的文章进行二创,因为其中有部分需求和我的不太一样,就进行了修改。同时也发现该博主代码好像只能在Dev-C++上运行,在VisualStudio2022上反复报错,也可能是我的能力不足的原因。
该博主的原文链接在这里:万年历实现:周几查询、农历转换与节假日检索-CSDN博客
博主文章开头"字体重叠是因为没有全屏,或者屏幕缩放率不为100%造成的"这个问题:
我采用其他方法进行了解决,就不需要调整系统屏幕的自定义缩放。因为这个调整还要两次重新启动,且打印出来的字体较小。但不得不佩服博主的聪明才智,我理解为通过控制光标的位置来实现打印位置的偏移。我在源代码中进行了一定的调整,即换行打印的时候缩小行间距,使得可以不改变系统屏幕的自定义缩放来打印出来。
首先下载后解压,点击calendar.dev用Dev-C++打开。
我的代码里面有着详细的注释,在main.c这个程序里面编译运行。
出来黑窗口后,只有在进行需求3、显示阴历时才要进行以下的操作,其他情况不要
缩小:按住Ctrl键,转动鼠标滚轮,使得屏幕上的字尽可能的小。然后输入你要查询的年份:由于博主是通过网上农历数据表变成txt文本的形式来取农历的数据,该文件记录的数据量有限,所以说只能画出2000年到2050年的农历,就像原来的纸质农历一样的效果,我会把整个代码的流程图以及各个函数的运行结果图放在课程设计书里面,都是可以跑出来的。黑窗口里会展示你输入有效年的农历图,然后按照缩小相反的方式对其结果进行放大。
博主有的函数是多余的,如:week.c,可以看看我的阳历代码,就可以简化掉。week.c函数实现的是返回某年某月某日是周几,可以利用struct tm 结构体里面的tm_wday这个成员变量来直接返回周几。
鉴于csdn平台不太好把docx文件放在文章里,所以用资源绑定的形式和代码一起上传,放在同一个压缩包里面。
入侵的话,请联系我立即删除,按照原主的开源精神,我的也是开源的。我把我的整个代码全部压缩上传了,绝无保留。如果不会下载,可以看看原博主的文章。
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 一、设计题目 电子万年历 |
| 二、设计内容 【题目描述】 设计一个电子万年历,要求具有以下功能: 1、显示当前系统日期(年月日);2、显示当前系统时间(24小时制);3、日历生成和显示(阴历和阳历);4、节日提醒; 5、日期查询功能。 【题目要求】 (1)为各项操作功能设计一个主菜单。然后用户通过菜单项选择进入操作显示项目; (2)可以实现以上各功能; (3)要求以上功能分别用函数实现。 【输入/输出要求】 (1)应用程序运行后,显示主菜单。然后用户通过菜单项选择进入操作显示项目。 |
| 三、基本要求 1、编写源程序的要求: (1)能够实现任务书中的功能;(2)直观、易操作;(3)源程序要有适当的注释,使程序容易阅读。 2、撰写"课程设计报告",要求如下: (1)封面:统一采用《常州大学课程设计说明书》封面格式 (2)任务书 (3)目录 (4)"课程设计报告"正文 3、课程设计验收要求: (1)运行系统;(2)回答有关问题;(3)提交课程设计报告;(4)提交源程序。 |
| 四、进度安排 1、系统分析、设计准备阶段:4学时 2、编程调试阶段:30学时 3、总结和书写课程设计报告阶段:2学时 4、机房考核阶段:4学时 |