C语言编写方案万年历讲解

上传人:Wo****Z 文档编号:170098644 上传时间:2022-11-18 格式:DOC 页数:9 大小:19.50KB
返回 下载 相关 举报
C语言编写方案万年历讲解_第1页
第1页 / 共9页
C语言编写方案万年历讲解_第2页
第2页 / 共9页
C语言编写方案万年历讲解_第3页
第3页 / 共9页
点击查看更多>>
资源描述
C语言编写方案-万年历讲解 - C语言程序设计课程综合案例 常州信息职业技术学院 难易程度 开发语言 开发工具 中等 C 操作系统:Windows XP或更高 开发平台:VC+ 6.0 万年历 关键字 C语言程序设计课程综合案例 案例06 万年历 6.1需求分析p 本系统提供应用户一个万年历查询平台,用来查询1900-2050年任何一个月的月历。在使用本系统的过程中,用户除了可以查看到公历数据外,还可以查看相应的农历数据。要查询的年份和月份可以从键盘直接输入,另外还可以输入1和2来增加和减少年份,输入3和4来增加和减少月份。 6.1.1 功能概述 如图6-1所示,系统主要功能有: 1. 显示当前日期和时间,以及星期信息。 2. 显示要查询的某年某月的月历,包括公历数据以及其相应的农历数据,如:天干地支、生肖、节气等。 3. 要查询的年份和月份可以从键盘直接输入,也可以通过输入“1-4”四个数字键来增加减少年份和月份的方法查询。 6.1.2 系统运行环境 一、硬件环境 ? 处理器:Intel Pentium 166 MX或更高 ? 内存:32MB ? 硬盘空间:1GB ? 显卡:SVGA显示适配器 二、软件环境 ? 操作系统:Windows 98/ME/2000/XP 6.1.3 功能需求描绘 万年历查询平台为用户提供简单方便的日期查询功能,给出完好明晰的日期信息。本系统需要实现的第 1 页 共 22 页 C语言程序设计课程综合案例 常州信息职业技术学院 根本功能如下: 1. 获得系统当前时间:获得系统当前的日期、时间及星期信息。 2. 判断某年是否为闰年。 3. 得到阳历某月的天数以及某年的总天数等信息。 4. 判断某年月日为星期几。 5. 得到某个详细日期的农历数据,包括农历日期、天干地支、节气等信息。 图6-1 万年历界面 6.2总体设计 6.2.1系统流程描绘 系统的流程描绘如图6-2所示。 6.2.2功能模块设计 根据功能需求描绘,定义如下函数: void TIME:获得系统当前时间; int leap(int year):返回阳历某年的天数,闰年返回366天,平年返回365天; int day(int month):返回阳历当月的天数; int get_solar_total(int solar_year, int solar_month):返回1900年01月01日到M年M月的天数; int get_week(int solar_year, int solar_month):返回M年M月的1号为星期几; int get_lunar_info(int solar_year, int solar_month, Lunar_info *l_info,Chinese_era *china_era):返回农历信息; 第 2 页 共 22 页 C语言程序设计课程综合案例 常州信息职业技术学院 int out_chinese(Lunar_info *l_info,char *chinese_str):输出农历日期信息; void sub_menue:界面输出。 开场 输入年份 输入1-2 输入3-4 输入5 输入月份 1:计算上一年份 2:计算下一年份 1:计算上一月份 2:计算下一月份 计算阳历信息计算农历信息 6.2.3数据构造设计 一、农历信息数据构造 typedef struct int lunar_year; /农历年份 int lunar_month; /农历月份 int lunar_day; /农历日期 int current_mday; /本月天数 int leap_month; /本年闰月 int leap_flag; /闰月标记 第 3 页 共 22 页 界面输出 完毕 图6-2 系统流程图 C语言程序设计课程综合案例 常州信息职业技术学院 Lunar_info; 二、公历信息数据构造 typedef struct int era_year; /阳历年份 int era_month; /阳历月份 int era_day; /阳历日期 Chinese_era; 三、数组 用来定义相关的农历信息,如天干地支、节气、生肖、农历日和月等数据。 1. 1900-2050年的农历数据 int lunar_info= ; 数据格式说明:数组中的每一个数字都是一个由5位十六进制数组成的数字, 例:04bd8。第0位表示当年有无闰月, 有的话为闰月的月份,没有的话,为0;第1、2、3位转换成二进制共12位,如:0100 1 1表示一年中的12个月分别有多少天1为30天,0为29天;第4位表示闰月是大月还是小月,仅当存在闰月的情况下有意义。 第 4 页 共 22 页 0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2, 0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977, 0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970, 0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950, 0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557, 0x06ca0,0x0b550,0x15355,0x04da0,0x0a5b0,0x14573,0x052b0,0x0a9a8,0x0e950,0x06aa0, 0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0, 0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b6a0,0x195a6, 0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570, 0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0, 0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5, 0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930, 0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530, 0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45, 0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0, 0x14b63 C语言程序设计课程综合案例 常州信息职业技术学院 例如: 1980年的数据是: 0x095b0 其二进制为:0000 1001 0 1 0000 表示1980年没有闰月,从1月到12月的天数依次为:30、29、29、30、29、30、29、30、30、29、30、30。 2.天干、地支、生肖、节气等 /*天干*/ char Gan103=甲乙丙丁戊己庚辛壬癸/*地支*/ char Zhi123=子丑寅卯辰巳午未申酉戌亥/*生肖*/ char Animals123=鼠牛虎兔龙蛇马羊猴鸡狗猪/*24节气*/ char solar_term245= 小寒大寒立春雨水惊蛰春分清明谷雨立夏小满芒种夏至 小暑大暑立秋处暑白露秋分 寒露霜降立冬小雪大雪冬至; /*农历日*/ char chinese_day305= 初一初二初三初四初五初六初七初八初九初十十一十二十三十四 十五十六十七十八十九廿十廿一 廿二廿三廿四廿五廿六廿七廿八 廿九卅十; char build45=光绪宣统民国建国/*农历月*/ char chinese_month125=正二三四五六七八九十冬腊第 5 页 共 22 页 第 9 页 共 9 页
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!