1、 c+课程设计 万年历系统 1 信息科学与技术学院信息科学与技术学院 程序设计基础课程设计报告程序设计基础课程设计报告 题目名称题目名称: 万年历系统万年历系统 2012 2012 年年 7 7 月月 1 1 日日 c+课程设计 万年历系统 2 目录目录 1 1 课程课程设计设计题目与要求题目与要求 3 3 1.1 设计题目 . 3 1.2 设计要求 . 3 2 2 总体设计总体设计 4 4 2.1 基本思路 . 4 2.2 框架结构图 . 4 3 3 详细设计详细设计 5 5 3.1 数据结构设计 . 5 3.2 主模块设计 . 5 4 4 运行结果运行结果 1010 5 5 课程设计总结课
2、程设计总结 1515 c+课程设计 万年历系统 3 1 1 课程课程设计设计题目题目与要求与要求 1.1.1 1 设计题目设计题目 万年历系统 1.1.2 2 设计设计要求要求 1.21 问题描述 要求: 模仿现实生活中的挂历. 当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的 星期几). 当系统日期变到下一月时,系统自动翻页到下一月 1.22 问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的哥哥实体之间的关系及其属性和行为; (2) 根据系统描述,设计系统的类层次; (3)完成类层次中个各类的描述(包括属性和方法;) (4)完成类中各个成员
3、函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统 使用说明书。 1.23 其他要求 (1)只能使用 CC+语言,源程序要有适当的注释,使程序容易阅读。 (2)至少采用文本菜单界面。 (3)学生可自动增加新功能模块。 c+课程设计 万年历系统 4 2 2 总体设计总体设计 2.12.1 基本思路基本思路 先从系统调用时间,判断是否是闰年,再返回当月的天数以及当月的第一天 是星期几最后输出当月的月历 2.22.2 框架结构图框架结构图 主程序主程序 获取系统日期 打印输出 本月月历 查询年份月历 判断是否是闰年 计算出当月有几天 换算出本月第 1天是 星期
4、几 c+课程设计 万年历系统 5 3 3 详细设计详细设计 3 3. .1 1 数据结构设计数据结构设计 本程序采用类定义 代码如下: class Date private: int year; public: int weekday(); void disp(int x); int isleapyear(); int monthday(int i); void getyear(); ; 类名:Date 数据成员:year 成员函数:void getyear();/输入年份的函数 int isleapyear();/判断是否是闰年的函数 int weekday();/判断本月第一天是星期几的函
5、数 int monthday(int i);/ 计算每月有几天的函数 void disp(int x); /输出月份及查询年份的月历的函数 及字符串数组定义 代码如下: char* weekd7=“MON“,“TUE“,“WEN“,“THU“,“FRI“,“STA“,“SUN“; 3 3. .2 2 主模块主模块设计设计 主函数流程图主函数流程图: 函数名:int main 函数作用 获取系统时间, 调用 getyear 和 disp 这两个函数 入口参数 year,nowtime 出口参数 month 开始 int year,monthday, month; c+课程设计 万年历系统 6 i
6、sleapyear 函数功能设计流程图:函数功能设计流程图: 函数名 isleapyear 函数作用 判断是否是闰年 入口参数 year 出口参数 return 返回值 否 是 否 否 是 是 执行相应功能, 输出当月月历与查询年份功能 调用系统时间, 输出当前时间 结束 Int year; year%4=0? 调用输出函数 year%100= 0? year%400= 0? c+课程设计 万年历系统 7 weekday 函数功能设计流程图函数功能设计流程图 函数名:int weekday() 函数作用 判断每月的第一天是星期几 入口参数 year 出口参数 return 返回值 是 是闰年 不是闰年 结束 开始 int n=year-1900; n