欢迎来到天天文库
浏览记录
ID:56182462
大小:491.39 KB
页数:20页
时间:2020-06-04
《CC++程序设计——万年历(完整代码+实验报告).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、程序设计报告(2009/2010学年第一学期)题目:万年历查询系统专业电气信息工程_学生姓名王XX班级学号B080510XX指导教师张台国指导单位计算机软件基础教学中心日期2009.10.30-评分项优秀良好中等差遵守机房规章制度评上机时的表现学习态度程序准备情况分程序设计能力团队合作精神课题功能实现情况细算法设计合理性用户界面设计报告书写认真程度内容详实程度则文字表达熟练程度回答问题准确度简短评教师签名:语年月日评分等级备评分等级有五种:优秀、良好、中等、及格、不及格注-万年历查询系统一、课题内容和要求万年历在现在日常生活工作学习等众多方面被广泛使
2、用。本课题旨在以“公元2005年10月20日星期四”为已知条件编写一个基本的万年历查询系统,可以查询公元元年至公元9999年间任一年的全年日历,以双月并排显示的方式输出,并要求对用户输入的待查询数据有较强的错误检查能力。通过该课题,进一步加深对C++面向对象特性的认识,更加深层的理解了类的封装意义,较为熟练的掌握了函数调用、文件读写、对象操作等知识。二、需求分析功能框架图:(图2-1)进入万年历查询系统输入待查询年份检查输入的数是据是否有误否打印*号组成的年份图案计算待求年份元旦为星期几打印每月日历的标题与日期是是否继续查询其它年份日历否退出万年历查
3、询系统图2-1正文第1页(共18页)功能详解:(1)提供界面友好的操作菜单:输出欢迎信息和操作菜单,用于提示用户选择需要的操作。根据用户输入的选项实现相应的功能。(2)进行数据的输入和错误检查:要求用户输入待查询数据,并对输入的数据执行错误检查,如果输入有误,则提示用户重新输入,直到输入正确。(3)计算待求年份元旦的星期数:通过求出待求年份与2005年元旦相距的总天数求出待求年份元旦的星期数,为准确输出万年历奠定基础。(4)打印日历的标题和日期:可以将万年历以双月并排的形式输出,一方面使得万年历看起来美观;另一方面,也确保了万年历日期与星期的准确对应
4、。(5)选择菜单:供用户选择需要继续的操作,具有较强的输入数据错误检查能力;同时实现了程序操作的循环性。三、概要设计1、主要类:classData{private:intWeek[12];//用于储存每个月1号为星期几intyear;//用于存放用户输入的年份public:Data();//类Data的构造函数intGetyear();//获取用户输入的年份voidFirstDayOfYear(int);//求出任意一年元旦的星期数voidFirstDayOfMonth(int);//求出任意年份的每个月一号的星期数intIsLeapyear(int
5、);//判断是否为闰年voidPrintYear(int);//显示年份图案voidPrintTitle(int);//输出每个月日历的标题部分voidPrintMonth(int);//打印月份日历voidPrintForm(int);//使日历按照每两个月并排的方式输出voidChooseMenu();//显示选择操作界面,实现程序的循环voidPrintThanks();//退出程序时显示结束信息};2、主要函数流程图:(1)类的构造函数:用于给类的对象赋值。提示用户输入数据,并具有较强的错误输入数据检查功能。(参见图3-1)(2)闰年判断函数
6、:判断哪些年份为闰年。(图3-2)正文第2页(共18页)开始开始year%4==0否输入待查询的是年份否year%100==0否判断输入数是据是否正确是否year%400==0是是闰年不是闰年return1return0结束结束图3-1图3-2开始是否year>=2005n=(year-2005)*365n=(2005-year)*365year为闰年year为闰年否否是是n=n+1n=n+1Week[0]=(n+1)%7-2Week[0]=7-(n+1)%7结束图3-3正文第3页(共18页)(3)求待求年份元旦星期函数:求出待求年份元旦距离2005
7、年元旦的总天数,进而求出待求年份元旦的星期数。(图3-3,其中Week[0]代表元旦星期数)四、程序源码#include#include#include#includeusingnamespacestd;ofstreamfout("万年历_执行结果.txt");//文件输出到“万年历_执行结果.txt文件中”constintYear=2005;//const符号常量,代表2005年intMonNum[12]={31,28,31,30,31,30,31,31,30,31,30,31
8、};//储存每月的天数voidPrintWelcome();//顶层函数,用于开始执行程序时输出欢迎信息cl
此文档下载收益归作者所有