c语言编写方案万年历

上传人:第*** 文档编号:57492937 上传时间:2018-10-22 格式:PDF 页数:22 大小:324.69KB
返回 下载 相关 举报
c语言编写方案万年历_第1页
第1页 / 共22页
c语言编写方案万年历_第2页
第2页 / 共22页
c语言编写方案万年历_第3页
第3页 / 共22页
c语言编写方案万年历_第4页
第4页 / 共22页
c语言编写方案万年历_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《c语言编写方案万年历》由会员分享,可在线阅读,更多相关《c语言编写方案万年历(22页珍藏版)》请在金锄头文库上搜索。

1、C 语言程序设计课程综合案例常州信息职业技术学院第 1 页 共 22 页难易程度难易程度中等中等开发语言开发语言C C开发工具开发工具操作系统: Windows XP 或更高 开发平台:VC+ 6.0关键字关键字万年历万年历C 语言程序设计语言程序设计课程课程综合综合案例案例案例案例 06 万年历万年历6.1 需求分析需求分析本系统提供给用户一个万年历查询平台,用来查询 1900-2050 年任何一个月的月历。在使用本系统的过程中,用户除了可以查看到公历数据外,还可以查看相应的农历数据。要查询的年份和月份可以从键盘直接输入,另外还可以输入 1 和 2 来增加和减少年份,输入 3 和 4 来增加

2、和减少月份。6.1.1 功能概述功能概述如图 6-1 所示,系统主要功能有:1.显示当前日期和时间,以及星期信息。2.显示要查询的某年某月的月历,包括公历数据以及其相应的农历数据,如:天干地支、生肖、节气等。3.要查询的年份和月份可以从键盘直接输入,也可以通过输入“1-4”四个数字键来增加减少年份和月份的方法查询。6.1.2 系统系统运行环境运行环境一、一、硬件环境硬件环境处理器:Intel Pentium 166 MX 或更高内存:32MB硬盘空间:1GB显卡:SVGA 显示适配器二、二、软件环境软件环境操作系统:Windows 98/ME/2000/XP6.1.3 功能需求描述功能需求描述

3、万年历查询平台为用户提供简单方便的日期查询功能,给出完整清晰的日期信息。本系统需要实现的C 语言程序设计课程综合案例常州信息职业技术学院第 2 页 共 22 页基本功能如下:1.取得系统当前时间:取得系统当前的日期、时间及星期信息。2.判断某年是否为闰年。3.得到阳历某月的天数以及某年的总天数等信息。4.判断某年月日为星期几。5.得到某个具体日期的农历数据,包括农历日期、天干地支、节气等信息。图图 6-1 万年历界面万年历界面6.2 总体总体设计设计6.2.1 系统流程描述系统流程描述系统的流程描述如图 6-2 所示。6.2.2 功能模块功能模块设计设计根据功能需求描述,定义如下函数:void

4、 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,

5、Lunar_info *l_info,Chinese_era *china_era):返回农历信息;C 语言程序设计课程综合案例常州信息职业技术学院第 3 页 共 22 页int out_chinese(Lunar_info *l_info,char *chinese_str):输出农历日期信息;void sub_menue():界面输出。开始开始结束结束图图 6-2 系统流程图系统流程图1:计算上一年份:计算上一年份 2:计算下一年份:计算下一年份计算阳历信息计算阳历信息计算农历信息计算农历信息输 入 年输 入 年输入输入 1-2输入输入 3-4输入输入 5输 入 月输 入 月界 面 输界

6、面 输1:计算上一月份:计算上一月份 2:计算下一月份:计算下一月份6.2.3 数据结构设计数据结构设计一、农历信息数据结构一、农历信息数据结构typedef structint lunar_year; /农历年份int lunar_month; /农历月份int lunar_day; /农历日期int current_mday; /本月天数int leap_month; /本年闰月int leap_flag; /闰月标记C 语言程序设计课程综合案例常州信息职业技术学院第 4 页 共 22 页Lunar_info;二、公历信息数据结构二、公历信息数据结构typedef structint er

7、a_year; /阳历年份int era_month; /阳历月份int era_day; /阳历日期Chinese_era;三、数组三、数组用来定义相关的农历信息,如天干地支、节气、生肖、农历日和月等数据。1. 1900-2050 年的农历数据年的农历数据int lunar_info=0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14

8、977,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,

9、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,0x0e

10、a50,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,

11、0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0,0x14b63;数据格式说明:数组中的每一个数字都是一个由 5 位十六进制数组成的数字, 例:04bd8。第 0 位表示当年有无闰月, 有的话为闰月的月份,没有的话,为 0;第 1、2、3 位转换成二进制共 12 位,如:01001011 1101 表示一年中的 12 个月分别有多少天(1 为 30 天,0 为

12、 29 天) ;第 4 位表示闰月是大月还是小月,仅当存在闰月的情况下有意义。C 语言程序设计课程综合案例常州信息职业技术学院第 5 页 共 22 页例如:1980 年的数据是: 0x095b0其二进制为:0000 1001 0101 1011 0000表示 1980 年没有闰月,从 1 月到 12 月的天数依次为:30、29、29、30、29、30、29、30、30、29、30、30。2.天干、地支、生肖、节气等天干、地支、生肖、节气等/*天干*/char Gan103=“甲“,“乙“,“丙“,“丁“,“戊“,“己“,“庚“,“辛“,“壬“,“癸“;/*地支*/char Zhi123=“子“

13、,“丑“,“寅“,“卯“,“辰“,“巳“,“午“,“未“,“申“,“酉“,“戌“,“亥“;/*生肖*/charAnimals123=“鼠“,“牛“,“虎“,“兔“,“龙“,“蛇“,“马“,“羊“,“猴“,“鸡“,“狗“,“猪“;/*24 节气*/char solar_term245=“小寒“,“大寒“,“立春“,“雨水“,“惊蛰“,“春分“,“清明“,“谷雨“,“立夏“,“小满“,“芒种“,“夏至“,“小暑“,“大暑“,“立秋“,“处暑“,“白露“,“秋分“,“寒露“,“霜降“,“立冬“,“小雪“,“大雪“,“冬至“;/*农历日*/char chinese_day305=“初一“,“初二“,“

14、初三“,“初四“,“初五“,“初六“,“初七“,“初八“,“初九“,“初十“,“十一“,“十二“,“十三“,“十四“,“十五“,“十六“,“十七“,“十八“,“十九“,“廿十“,“廿一“,“廿二“,“廿三“,“廿四“,“廿五“,“廿六“,“廿七“,“廿八“,“廿九“,“卅十“;char build45=“光绪“,“宣统“,“民国“,“建国“;/*农历月*/char chinese_month125=“正“,“二“,“三“,“四“,“五“,“六“,“七“,“八“,“九“,“十“,“冬“,“腊“;C 语言程序设计课程综合案例常州信息职业技术学院第 6 页 共 22 页6.3 详细设计详细设计6.3

15、.1 程序预处理程序预处理头文件 calendar.h 包含上节所描述的所有数据。具体清单如下:#include#include#include#include#include#include#define YUANDAN 1typedef structint lunar_year; /农历年份int lunar_month; /农历月份int lunar_day; /农历日期int current_mday; /本月天数int leap_month; /本年闰月int leap_flag; /闰月标记Lunar_info;typedef structint era_year; /阳历年份in

16、t era_month; /阳历月份int era_day; /阳历日期Chinese_era;int s_year;int s_month;int s_day;static int t_year;static short today = YUANDAN;/*1900-2050 年的农历数据*/int lunar_info=0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,C 语言程序设计课程综合案例常州信息职业技术学院第 7 页 共 22 页0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号