1、 C C 语言课程设计实习报告语言课程设计实习报告 班班 级级: : 学生姓名:学生姓名: 学学 号:号: 指导老师:指导老师: 日日 期期: : 2013.01.142013.01.14 目目 录录 一、程序分析与设计 . 1 二、流程图 . 2 三、源程序清单 . 2 四、调试过程 . 15 五、程序有待改进的地方 16 六、本次实习的收获和建议 16 附录 错误错误!未定义书签。未定义书签。 C 语言课程设计实习报告 1 一一 程序分析与设计程序分析与设计 1.1 题目的内容与要求题目的内容与要求 内容:模仿现实生活中的挂历。当前页以系统当前日期的月份为准显示当前月的每一天(显 示出日及
2、对应的星期几)。当系统日期变到下一月时,系统自动翻页到下一月。 要求: (1)提供菜单方式选择 (2)输入年份、月份、日期,计算得到的是这一天据今天有多少天,星期几; (3)输入公历的年月日,输出农历年月日。 (4)输入农历节气,输出当年农历的年月日及公历年月日。可以假定只涉及年份是 1940 年到 2040 年。 1.2 总体结构总体结构 本程序主要分为四个模块:菜单模块,日历与系统日期同步模块,公历转换农历模块, 二十四节气查询。 菜单模块:指导用户如何使用本程序。 日历与系统日期同步模块:从系统获取系统时间,并显示出当月月历。 公历转换农历模块:输入公历输出公历与农历。 二十四节气查询:
3、输入农历节气,输出当年农历的年月日及公历年月日。 1.3 本程序涉及的知识点本程序涉及的知识点 函数的调用,二.十和十六进制之间的转换,产生随机数函数等。 1.4.算法及函数设计算法及函数设计 1)公历转换农历:农历数据定义定义如下: 前 12 个字节代表 1-12 月:1 为大月,0 为小月;压缩成十六进制(1-3 位) 第 13 位为闰月的情况,1 为大月 30 天,0 为小月 29 天;(4 位) 第 14 位为闰月的月份,如果不是闰月为 0,否则给出月份(5 位) 最后 4 位为当年农历新年的公历日期,如 0131 代表 1 月 31 日;当作数值转十六进制(6-7 位。 2)二十四节
4、气:原理:因为每一个公历月会有二个节气,所以分别用高/低 4 位来表示 表格制作方法:比如:2010 年 1 月 5 号是第一个节气,1 月 20 是第二个节气 高 4 位写第一个节气,低 4 位即 20-10=A 写第二个节气,最终=0x5A; 3)获取系统时间:库函数有 time 函数,利用#include调取系统时间。 地理信息系统专业 10 级 2 4)算法设计:利用 switch 语句实现菜单的选择项 (1)根据提示选择查询项; (2)输入查询年月日或节气; (3)输出结果; 二、二、流程图流程图 三、三、源程序清单源程序清单 #include #include #include Scanf b=1 主函数开始 结束 主函数开始 调用 gongli函 数 调用TIME1函 数 调用TIME2函 数 Scanf b=2,year,month,day 结束 主函数开始 Scanf b=3 调用 jieqi 函 数 结束 调 用 TIME3 函数 调用 week 函 数 C 语言课程设计实习报告 3 #include /*公历转换