理工大学计算机与通信学院2014年秋季学期面向对象课程设计题目:万年历的设计序言《面向对象的程序设计》是计算机专业一门重要的专业基础课。此次课程设计的目的是以面向对象程序设计语言为基础,通过完成一些具有一定难度的课程设计题目的编写、调试、运行工作,进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合。从而提高自我分析问题、解决问题的能力。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C++语言程序设计》的基本理论知识,理论联系实际,进一步培养学生综合分析问题、解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象的程序设计方法。(6)进一步掌握在集成环境下如何调试程序、修改程序和程序的测试。目录摘要 2第一章系统总体设计 4第二章系统详细设计 9第三章系统测试 34四软件使用说明书 40总结 41参考文献 42致 42摘要万年历作为日常中的小工具,具有多方面的功能,能有效帮助人们记录以及计算时间,在极大程度上帮助人们在日期以及时间方面有最直观的体现。该设计通过C++的基本知识和技能设计出一个万年历程序,该程序需实现时间和日期的显示以及计算。、分、秒组成的时间,并提供时间增加的方法(按秒);、月、日的过程,并提供日期增加的方法(按天);,设计出除除具有年、月、日、时、分、秒外,还增加国名和与格林威治时间的差;、月、日、时、分、秒,在屏幕上模拟显示一电子计时器,不断输出下一秒的时间和日期,以及格林威治的日期和时间。该设计不仅体现了普通日历的功能,还加入了电子计时器的部分,使得万年历在原本的基础上有了更大的扩充。关键字:时间,日期,格林威治时间差,,须体现时间,日期等,所以,定义时间类time,日期类date,完成关于年(year),月(month),日(day),时(hour),分(minute),秒(second)的定义。1在计算时间的时候,每达到1秒的时候对second进行加1,然后判断是否达到60秒,达到的话minute就加1,minute到达60hour就加一,同样的方法对hour、day、month和year进行计算。2在计算日期的时候,在对day计数时,考虑到大小月和闰年,对day进行加1时,判断是哪一月和是否为闰年。在确定年、月、日之后,使用函数Week()进行对星期几的计算,根据1901年每月1号是星期几可以得出现在是星期几。在这个程序中,还使用了一个对话框类,使用对话框来对时间日期的设置。在菜单栏里添加一个“设置时间”的选项和一个菜单消息,当点击这个选项就会弹出设置时间日期的对话框,对话框中编辑控件设定了每个值的取值围,从而对输入错误进行排除。(图一)(1)输入年份结束365天366天28天29天天闰年否是 二月天数 是 全年天数 (图二)(2)判断年份情况完成日期的定义以及增加方式完成时间的定义以及增加方式日期类date时间类timeDatetime完成电子时钟的模拟定义week()输出日期的星期数计算两日期相差天数定义situation()打印结果(图三)另:在本程序中共用到三个类,定义时间的time类,定义日期的date类,以及公有继承了time和date的datetime类,此派生类的作用是定义电子时钟的运行方式。在程序中还运用到一些独立的函数,以实现星期以及格林威治时间差等功能。二、,其中功能时间的显示使用类datetime来实现,功能时差的计算使用类time和类date来实现。下面分别介绍类time,date的详细设计。时间类time的具体实现流程:先声明后定义,类time定义为时间基类,其中:成员函数time()主要功能为时分秒赋初值,实现方式为:函数定义成员函数intgethour(){returnhour;}; intgetminute(){returnminute;}; intgetsecond(){retu
课程设计万年历的设计说明 来自淘豆网m.daumloan.com转载请标明出处.