万年历面向对象程序设计.doc
《万年历面向对象程序设计.doc》由会员分享,可在线阅读,更多相关《万年历面向对象程序设计.doc(20页珍藏版)》请在沃文网上搜索。
1、目录一、需求分析11.1开发背景11.2运行环境1二、概要设计22.1程序设计思想22.2 程序的结构3三、详细设计3四、用户使用说明6五、测试结果10六、课程设计的总结10七、附录和参考资料12一、需求分析1.1 开发背景目前的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基于该程序所开发的各种应用程序中的日历程序。然而,这些程序都是千遍一律的局限于一个很短的时间内。但是,很多情况下,特别是在众多的科学领域中,一个时间跨度较大的程序是有参考价值的。C+程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本就弥补了这一领域的空白。 万年历作为日常中的一种小工具,它具有
2、多方面的小工能,主要在日期的显示上给人以直观的表达效果,在日期的查询上方便简洁,还有就是在某些节日的提醒上都给我们带来极大的方便 ,是一种比较实用的小工具。在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率具有重要意义。随着时代的发展,尽管日历的品种增多、花样也不断翻新,但仍旧保持着古老日历的格局。日历在当今社会的影响也是毋庸置疑的!同时,随着个人电脑的普及,简单的桌面万年历成为人们日常作息及重要事件提醒记录的重要工具。简易万年历可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日
3、和备忘事件等方面进行有效的查询和管理。这套系统旨在为用户方便有效地进行重要事件的查询和管理。 本系统采用C+语言编写,接针对简单的有效查询信息化系统。该系统具有完整的信息查询功能,充分满足了广大用户的基本需求。1.2运行环境一台安装windows xp、wndows vista、windows 7并且能够运行.exe可执行文件的计算机。二、概要设计 1.1设计的思想程序运行时,在首先给出的菜单中共有7个选项,分别是:1.距离世界末日还有多少天?2.某年的日历3.某年、某月的日历4.某年某月某日是周几5.判断闰年6.计算指定年份的生肖7.退出用户根据需求选择7个阿拉伯数字,程序根据选择做出不同的
4、响应,用户选择1,4时,系统会提示用户输入年份,月份和日子(年份1900,0月份12,天数会根据某个月的情况判断是否符合实际),然后分别输出距离末日的天数和星期几;用户选择2、5、6时,系统会提示用户输入年份,然后通过算法分别输出该年的日历、是否为闰年的信息和该年的生肖;程序还可以直接按月份索取日历,即用户在主菜单中选择3,系统会提示用户依次输入某年和某月,然后输出对应的日历。每次用户做出选择并且获取对应的信息之后,系统不会直接关闭,系统会自动调用主函数,以满足用户继续使用的目的。当用户需要退出程序时,用户通过选择7,程序会自动关闭。程序的特点在于使用了C+里的类,运用类的借口等知识、枚举法、
5、递归主函数、从1900年(21世纪万年历的起始年)开始算起,大大简化了程序的设计和实现,相对节约了系统的开支,使程序简单明了运行流畅。 1.2程序的结构程序由一个cal类,一个main(),data_order、hourd、t 组成。三、详细设计相关模块详细设计及部分程序:3.1距离世界末日还有多少天部分程序:switch(x)case 1 :/距离世界末日还有多少天.d.get_year();if(d.get_y()1900)/判断年份有否输错 d.print_blanks(t);cout年份输入错误!12)/判断月份有否输错 d.print_blanks(t);cout月份输入错误!d.d
6、ay_kind(d.get_m()d.print_blanks(t);cout日期输入有误!endl;return main(); d.print_blanks(t);cout距离世界末日还有 41262-d.days_total() 天.endlendl;return main();3.2某年的日历部分程序:case 2: /某年的日历d.get_year();if(d.get_y()1900)/判断年份有否输错 d.print_blanks(t);cout年份输入错误!endl;return main() ;for(int i=1;i=12;i+)d.initM(i);/d.print_b
7、lanks(t);d.print_days();coutendlendl; return main();3.3某年、某月的日历部分程序:case 3: /某年、某月的日历.d.get_year();if(d.get_y()1900) /判断年份有否输错 d.print_blanks(t);cout年份输入有误!12) /判断月份有否输错 d.print_blanks(t);cout月份输入有误!endl;return main() ;d.print_days();return main();3.4某年、某月、某日是周几部分程序:case 4:/某年、某月、某日是周几.d.get_year();
8、if(d.get_y()1900)/判断年份有否输错 d.print_blanks(t);cout年份输入错误!12)/判断月份有否输错 d.print_blanks(t);cout月份输入错误!d.day_kind(d.get_m()d.print_blanks(t);cout日期输入有误!endl;return main(); d.print_blanks(t);cout那 天 是 : 星期data_orderd.dayinaweek()endlendl;return main();3.5判断闰年部分程序:case 5: /判断闰年 .d.get_year();if(d.get_y()19
9、00)/判断年份有否输错 d.print_blanks(t);cout年份输入错误!endl;return main() ;if(d.isleap() d.print_blanks(t);cout这是个闰年哎.endlendl;return main();elsed.print_blanks(t);cout这不是闰年呢.endlendl; return main();3.6计算制定年份生肖部分程序:case 6:d.get_year();if(d.get_y()1900)/判断年份有否输错 d.print_blanks(t);cout年份输入有误!endl;return main() ;d.p
10、rint_blanks(t);cout这一年是 :hoursd.animals()年endl;return main();case 7:return 0;default:d.error_();return main();3.2相关模块涉及函数3.1输入日子void cal:get_day();3.2输入月份void cal:get_month();3.3输入年份void cal:get_year();3.4给出错误提示 void cal:error_();3.5判断闰年 inline int cal:isleap();3.6判断每个月有多少天 inline int cal:day_kind(i
11、nt mm);3.7选择1900年 1月 1日星期一为起点 .inline int cal:days_total();3.8判断某天周几int cal:dayinaweek();3.9打印眉头:一二三四五六日 void cal:print_();3.10记录每月一号是周几void cal:print_days();3.11判断生肖 int cal:animals();四、用户使用说明书运行程序得到界面:根据界面目录输入你的选择:输入1 输入当前的年份:2012输入当前的月份:12输入当前的日子:20显示结果如下:继续进行目录的选择;输入3输入当前的年份:2012输入当前的月份:12显示结果如下
12、:输入界面选择:输入 2输入年份:2012/12/24显示结果如下:显示结果是抽取的部分月份!界面选择输入:输入6输入年份:2012继续输入:输入5输入年份:2012显示结果如下:五、测试结果程序一切正常,测试的截图使用说明中已经给出。六、课程设计总结经过一个学期对C+程序设计的学习,我学习到了基本的理论知识,了解到了C+语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原
13、则,便于查询。根据C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C+语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。在C+课程设计中,我体会颇多,学到了很多东西。我加强了对C+程序设计这门课程的认识,并且复习了自己以前学习到的知识。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。像万年历这样的程序设计,经历了平
14、时在课堂和考试中不会出现的问题和考验。而这些问题,这并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。特别是学会了在Visual C+中如何调试程序的方法。当然,老师的指导和同学的帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复杂程序的方法。在老师和同学的帮助下,通过自己的努力,终于完成了这个万年历的简单课程设计。我经过这段时间的编程,对其中的艰辛,我是深有体会。从刚开始的选择程序、理解程序到后来的调试程序以及改进程序这个过程中,我遇到了各种各样的困难和挫折。但是我坚定信念,对自己充
15、满了信心,想尽一切办法克服重重困难。通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵 财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。我很欣慰自己能在程序中加入自己的想法和有关程序内容,也就是对它的程序改进了一番改进,并有创新。但是我感觉自己的创新还不够典型,总之还不是很满意。另外由于时间
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万年历 面向 对象 程序设计