万年历综合课程设计报告.docx
- 文档编号:5493087
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:32
- 大小:134.79KB
万年历综合课程设计报告.docx
《万年历综合课程设计报告.docx》由会员分享,可在线阅读,更多相关《万年历综合课程设计报告.docx(32页珍藏版)》请在冰豆网上搜索。
万年历综合课程设计报告
目录
目录1
第一章设计目的与要求3
1.1设计目的3
1.2设计要求3
第二章课程设计分析4
2.1设计背景4
2.2程序开发环境4
2.3课程设计主要内容4
第三章总体设计5
3.1整体流程图5
3.2功能模块图6
3.3各模块功能详细说明6
3.3.1查询星期模块6
3.3.2判断模块6
3.3.3查询月历模块6
3.3.4显示模块7
3.3.5显示模块7
3.3.6退出模块7
3.4各模块函数说明7
3.4.1查询星期模块程序:
7
3.4.2判断模块程序7
3.4.3查询月历模块7
3.4.4显示模块程序9
3.4.4重载模块程序10
3.4.4类成员与成员函数11
第四章程序调试与功能实现13
4.1系统使用说明13
4.2系统运行结果及运行截图13
4.2.1系统总体选择图13
4.2.2当前月份日历并可以翻页13
4.2.3某一年的日历14
4.2.4输出所要查询的日期并可以翻页15
4.2.5输出所查询的日期星座17
4.3主函数代码17
第五章课程设计心得与体会20
参考文献21
附录:
源代码22
第一章设计目的与要求
1.1设计目的
通过显示年日历程序的设计,培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。
通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C++面向对象程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!
更加了解了C++语言的好处和其可用性!
同时增加了同学之间的团队合作精神!
更加也体会到以后在工作中团队合作的重要性和必要性!
通过C++语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
1.2设计要求
1、能够显示年份、月份、星期;
2、能够像挂历一样上下翻页;
3、能够提示用户是否继续;
4、当系统时间变动时,能改变到相应的时间;
5、要求用C++语言编程,在Visual C++6环境下调试完成;
6、要求划分功能模块,各个功能分别使用函数来完成;
7、源代码程序要有必要的注释。
第二章课程设计分析
2.1设计背景
C++教学起步的背景1996年,国外计算机产业界正在全面兴起面向对象编程与设计的热潮,其主要工具就是C++。
C++在数据类型的安全上,弥补了C的不足,克服了C的种种安全隐患,用C++开发的产品正在稳步上市,并开始超过了C。
C++的开发工具正在稳步推出,在Windows环境下的两个主要C++开发工具——BorlandC++Builder4.0和MicrosoftVisualC++6.0标志着C++开发工具已经成熟。
2.2程序开发环境
a.开发工具MicrosoftVisualC++6.0
b.系统环境Windows7
c.设计工具Office2003
2.3课程设计主要内容
1、提示用户输入需要查询的年月;
2、提示用户是否继续;
3、上下翻页显示前一月份(后一月份)的日历;
4、提示用户是否继续
5、自动显示某一年的所有月份日历;
6、根据用户输入进行操作。
第三章总体设计
3.1整体流程图
图3.1流程图
3.2功能模块图
图3.2功能模块图
3.3各模块功能详细说明
3.3.1查询星期模块
本模块是用来查询输入日期是星期几。
3.3.2判断模块
本模块是用来判断输入年份是否为闰年。
3.3.3查询月历模块
本模块是用来查询、显示输入年份中的月历。
3.3.4显示模块
本模块是用来显示输入年份的年历。
3.3.5显示模块
本模块是用来显示用户的星座及相关信息。
3.3.6退出模块
本模块是用来合法退出本系统。
3.4各模块函数说明
3.4.1查询星期模块程序:
intCalendar:
:
week(CalendarCd)
{
intS=0,W=0;
S=Cd.sumday(Cd);
W=S%7;
returnW;
}
从1年1月算起
3.4.2判断模块程序
intCalendar:
:
isleapyear(inty)
{
if(y%4==0&&y%100!
=0||y%400==0)return1;
elsereturn0;
}
3.4.3查询月历模块
voidCalendar:
:
showoutCalendar(CalendarCd)
{
cout<<"---------------------------------------------------------------"< cout.fill(''); cout.width(40); cout< cout<<"星期日"<<"星期一"<<"星期二"<<"星期三"<<"星期四"<<"星期五"<<"星期六"< for(intj=0;j<6;j++) { if(j==0) { for(inti=0;i { A[j][i]=''; cout.fill(''); cout.width(10); cout< } for(i;i<7;i++) { A[j][i]=NU; NU++; cout.fill(''); cout.width(10); cout< } } else for(inti=0;i<7;i++) { if(NU<=Cd.getmonthdays(Cd)) { A[j][i]=NU; cout.fill(''); cout.width(10); cout< NU++; } } cout< } NU=1; cout<<"-----------------------------------------------------------------"< } 3.4.4显示模块程序 voidshow() { intY; CalendarYEAR[12]; cout<<"请输入查询年份: "< cin>>Y; CalendarC(Y,0,1); if(Y%4==0&&Y%100! =0||Y%400==0) { cout<<""< } for(inti=0;i<12;i++) { C=C.change1(C); YEAR[i]=C; YEAR[i].showoutCalendar(YEAR[i]); } } 3.4.4重载模块程序 voidoperator++() { if(month<12) { month=month+1; CalendarD(year,month,day); Calendar*p; p=newCalendar; p=&D; p->showoutCalendar(D); } else { cout<<"************"< year=year+1; month=1; CalendarE(year,month,day); E.showoutCalendar(E); } } voidoperator--() { if(month>1) { month=month-1; CalendarD(year,month,day); Calendar*p; p=newCalendar; p=&D; p->showoutCalendar(D); } else { cout<<"************"< year=year-1; month=12; CalendarE(year,month,day); E.showoutCalendar(E); } } } 重载++、--函数以实现上下翻页 3.4.4类成员与成员函数 classCalendar { intyear; intmonth; intday; intA[5][6]; public: Calendar(inty=1,intm=1,intd=1): year(y),month(m),day(d){} intgetyear(){returnyear;} intgetmonth(){returnmonth;} intgetday(){returnday;} intisleapyear(inty);//判断是否是闰年 intgetyeardays(inty);//某一年的天数 intgetmonthdays(CalendarCd); intweek(CalendarCd);//星期几 voidgetdate(); intsumday(CalendarCd);//从1年1月到当前日期的天数 voidshowoutCalendar(CalendarCd); Calendarchange1(CalendarCd) { Cd.month++; returnCd; } Calendar(Calendar&Cd) { year=Cd.year; month=Cd.month; day=Cd.day; } 第四章程序调试与功能实现 4.1系统使用说明 这个程序是用C++编写的,在软件MicrosoftVisualC++6.0上运行,首先打开VisualC++,创建文件夹保存,新建文件,然后编入代码,编译,如果没有错误的话运行。 运行界面上有五个选项,根据需求选择选项。 4.2系统运行结果及运行截图 4.2.1系统总体选择图 图4.2.1菜单选项 4.2.2当前月份日历并可以翻页 图4.2.2当前月份 4.2.3某一年的日历 图4.2.3(a)显示2000年12月份日历且为闰年 4.2.4输出所要查询的日期并可以翻页 图4.2.4(a)日历查询图 图4.2.4(a)翻页后得到的日历 4.2.5输出所查询的日期星座 图4.2.5月历打印图 4.3主函数代码 #include #include #include intNU=1; constintsize=80; intmain() { CalendarA,B[12]; intselect; do { cout<<"***************万年历*************"< cout<<"*1: 显示当前月份*"< cout<<"*2: 显示某一年的12个月份*"< cout<<"*3: 查看某个日期的月份*"< cout<<"*4: 查看你的星座*"< cout<<"*5: 查看当前日期*"< cout<<"*6: 退出*"< cout<<"**********************************"< cout<<"请选择: "< cin>>select; inti=1;//第几月 switch(select) { case1: A.getdate(); A.showoutCalendar(A); choice(A); break; case2: show(); break; case3: seek();break; case4: Constellation(); break; case5: Present(); break; } } while(select! =6); return0; } 第五章课程设计心得与体会 学习了本课程了解了面向对象的程序设计的方法,面向对象的实现主要通过类及其成员和成员函数来实现。 学习C++就是学习一门语言,不仅仅是学语言, 语言仅是一种表达方式而已。 只有全面撑握了这些东西,然后学了语法.就要经常锻炼。 写不好没关系,哪怕再小的程序,写写改改慢慢地,就会提高的。 还有, 不要死攻一门语言,多看看其他的,触类旁通。 需要自身积累一些常用的函数,方便今后做大程序时调用。 像程序工程师一般都有自己的函数库,一方面也是给自己的身价升值。 因为自己的函数库在调用时,自己的名字只有自己清楚。 这也是保护自己的方法。 一句话: 熟能生巧。 我深刻地体会到,做事情要有安排,要有自己的想法。 对事情有一定的管理分类,就像本次设计的万年历系统一样。 在管理的同时要有清晰的思路。 本次课程设计唯一的遗憾就是没有完成将日历从阳历转化到农历的设计,农历应该是一般日历都应该出现的日期,但是在转化过程中没有将其一一对应,另一个原因是自己对农历的算法没有清晰地认识,比如有时候农历会连续出现两个相同的月份等等。 在完成此次设计以后,我会在研究农历的转化。 当一切都完成以后,我除了学会编写程序以外,我也学会了许多别的东西。 首先,我学会了合作。 合作,必然产生分歧,学会解决分歧,我们便会让友谊更加牢固。 其次,我们学会了分工。 分工是为了更好的合作,分工才能提高合作的效率。 我们要和同学有更的交流,和同学交流学习方法等等。 参考文献 [1]郑振杰.C++程序设计北京: 人民邮电出版社,2005 [2]柴欣,C/C++程序设计河北大学出版社,2002 [3]余苏宁、王明福,C++程序设计北京: 高等教育出版社,2003 [4]吕凤翥.C++语言程序设计(第2版).电子工业出版社,2007.2 [5]]李云清、杨庆红、揭安全.数据结构[M].人民邮电大学出版社,2004.6 附录: 源代码 #include #include #include intNU=1; constintsize=80; classCalendar { intyear; intmonth; intday; intA[5][6]; public: Calendar(inty=1,intm=1,intd=1): year(y),month(m),day(d){} intgetyear(){returnyear;} intgetmonth(){returnmonth;} intgetday(){returnday;} intisleapyear(inty);//判断是否是闰年 intgetyeardays(inty);//某一年的天数 intgetmonthdays(CalendarCd); intweek(CalendarCd);//星期几 voidgetdate(); intsumday(CalendarCd);//从1年1月到当前日期的天数 voidshowoutCalendar(CalendarCd); Calendarchange1(CalendarCd) { Cd.month++; returnCd; } Calendar(Calendar&Cd) { year=Cd.year; month=Cd.month; day=Cd.day; } voidoperator++() { if(month<12) { month=month+1; CalendarD(year,month,day); Calendar*p; p=newCalendar; p=&D; p->showoutCalendar(D); } else { cout<<"************"< year=year+1; month=1; CalendarE(year,month,day); E.showoutCalendar(E); } } voidoperator--() { if(month>1) { month=month-1; CalendarD(year,month,day); Calendar*p; p=newCalendar; p=&D; p->showoutCalendar(D); } else { cout<<"************"< year=year-1; month=12; CalendarE(year,month,day); E.showoutCalendar(E); } } }; voidCalendar: : showoutCalendar(CalendarCd) { cout<<"---------------------------------------------------------------"< cout.fill(''); cout.width(40); cout< cout<<"星期日"<<"星期一"<<"星期二"<<"星期三"<<"星期四"<<"星期五"<<"星期六"< for(intj=0;j<6;j++) { if(j==0) { for(inti=0;i { A[j][i]=''; cout.fill(''); cout.width(10); cout< } for(i;i<7;i++) { A[j][i]=NU; NU++; cout.fill(''); cout.width(10); cout< } } else for(inti=0;i<7;i++) { if(NU<=Cd.getmonthdays(Cd)) { A[j][i]=NU; cout.fill(''); cout.width(10);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万年历 综合 课程设计 报告