日期时间显示程序廖海洋Word文档下载推荐.docx

上传人:b****1 文档编号:14987783 上传时间:2022-10-26 格式:DOCX 页数:29 大小:874.48KB
下载 相关 举报
日期时间显示程序廖海洋Word文档下载推荐.docx_第1页
第1页 / 共29页
日期时间显示程序廖海洋Word文档下载推荐.docx_第2页
第2页 / 共29页
日期时间显示程序廖海洋Word文档下载推荐.docx_第3页
第3页 / 共29页
日期时间显示程序廖海洋Word文档下载推荐.docx_第4页
第4页 / 共29页
日期时间显示程序廖海洋Word文档下载推荐.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

日期时间显示程序廖海洋Word文档下载推荐.docx

《日期时间显示程序廖海洋Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《日期时间显示程序廖海洋Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。

日期时间显示程序廖海洋Word文档下载推荐.docx

所在的月份具有的天数N,假设加1之后的"

数值超过所在的月份具有的天数N时,"

到月,而月份假设超过12时还要"

到年。

1.2设计要求

〔1〕定义一个时间构造体类型time,能提供时、分、秒组成的时间,并提供时间增加的方法〔按秒〕。

〔2〕定义一个日期构造体类型Date,记录年、月、日,并提供日期增加的方法〔按天〕。

〔3〕定义个日期时间构造体类型DateTime,除具有年、月、日、时、分、秒外,还增加国名和与格林威治时间的差。

思考:

可对该类增加你所考虑到的其他功能,如,对日期进展输入,计算二日期的间隔天数,计算某日期为星期几,打印对象当前数据的y年m月的月历,一次增加假设干天,对两个日期进展其他比拟运算等。

2总体设计

2.1总体功能框架

1.时间模块

功能:

能提供时、分、秒组成的时间,并提供时间增加的方法〔按秒〕。

2.日期化模块

记录年、月、日,并提供日期增加的方法〔按天〕。

3.日期时间模块

除具有年、月、日、时、分、秒外,还增加国名和与格林威治时间的差

4.时间差模块

1.计算从出生到现在的年,月,日

2.计算两日期间隔天数

3.计算某日为星期几蔡勒(Zeller)公式

4.根据给定的日期,求出它在该年的第几天

5.日历模块

显示y年m月的日历

6.验证模块

功能:

1.验证所有日期格式是否正确

2.验证所有时间格式是否正确

7.杂项:

1.当前系统时间

2.返回一个月的天数

3.判断是否是闰年

2.2数据构造概要设计

classdate(基类)

classTime(基类)

classDateTime:

publicdate,Time(派生类)

继承前两个类,并提供全部时间的增加方法

图2-1

3详细设计

3.1数据构造详细设计

classdate//定义日期类

{

public:

intyear;

//年

intmonth;

//月

intday;

//日

date(inty,intm,intd);

~date(){};

voidadd();

//日期增加的方法

voidshowdate();

};

功能:

能提供时、分、秒组成的时间,并提供时间增加的方法〔按秒〕。

classTime//定义时间类

{

inthour;

//时

intminute;

//分

intsecond;

//秒

Time(inth,intm,ints);

~Time(){};

voidadd();

voidshowTime();

记录年、月、日,并提供日期增加的方法〔按天〕。

publicdate,Time//日期时间类

stringcountry;

//国家名

inttime_differ;

//时间差

DateTime(inth,intmi,ints,inty,intm,intd);

~DateTime(){};

//日期增加的方法

voidshowDateTime();

继承data,time类,提供所有时间的增加方法(年月日时分秒)

3.2系统功能详细设计

time类时间增加函数:

add()

使时间增加的算法

入口参数:

无。

出口参数:

图3-1

data类中的成员函数add()

使日期增加的算法

图3-2

DateTime类add()

使所有函数增加的方法

图3-3

全局函数intDayInYear(intyear,intmonth,intday)year:

年month:

月day日;

能根据给定的日期,求出它在该年的第几天。

intyear,intmonth,intday

day;

图3-4

全局函数intyearDay(intyear,intmonth,intday,intyear1,intmonth1,intday1)

求日期间隔

intyear,intmonth,intday,intyear1,intmonth1,intday1

天数。

图3-5

全局函数voidcalendar(inty,intm)

显示日历

inty,intmy:

年m月

输出日历

图3-6

全局函数boolpass_date(inty,intm,intd)

验证日期格式是否正确

inty,intm,intdy:

年m:

月d:

日。

0或1

图3-7

全局函数intMonth_Day(intyear,intmonth)year:

返回一个月的天数

intyear,intmonth

图3-8

4运行结果

图4-1

显示菜单的系统时间

图4-2

通过输入的年月日时分秒,显示一个模拟动态时钟,并显示相应格林威治时间.

图4-3

通过输入的两个日期,计算两日期间隔天数

图4-4

通过输入的日期,计算这一日是星期几

图4-5

通过输入的日期,显示这一月的日历

图4-6

通过输入的生日,显示从出生到现在的年月日

5课程设计总结

5.1编程中的问题及解决方法

相对于其他同学来说我的题目还是相对简单,不过也遇到了一些问题,就是对一些东西还不太懂,但这终归来说是学习不够,我解决问题最主要的问题是在网上搜,还有就是和同学交流讨论

5.2小结

回忆这次课程设计,至今我仍感慨颇多,确实,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以稳固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考能力

5.3心得体会

这次课程设计自我感觉我的题目比拟简单,但是我也很用心的在做,相比于上课来说,我认为课程设计能学到更多的知识,在这个过程中,遇到不会的,我会自己查资料,上网,实现一个个的功能,虽然我这道题目并不是很难,但是却学到了很多.课堂上要讲授许多关于c++语言的语法规那么,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c++语言这个工具解决实际问题,又必须掌握它。

通过屡次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的根底上就会自然而然地掌握c语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大局部学生是初次接触程序设计,缺乏程序设计的实践所致。

5.4程序设计方法

1.在这个程序首先我用到了oop面向对象的程序设计思想,

2.我用到了基类和派生类的方法来实现模拟时钟的实现

3.在实现星期的函数中我还用到的数学方法来计算

[1]C++面向对象程序设计教程〔第3版〕.:

清华大学2021.6

附:

源代码

#include<

iostream>

#include<

windows.h>

cstdio>

time.h>

usingnamespacestd;

boolIsLeap(intyear)//判断是否是闰年

return(year%4==0)&

&

(year%100!

=0)||(year%400==0);

}

intMonth_Day(intyear,intmonth)//返回一个月的天数

intday=0;

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)

day=31;

elseif(month==4||month==6||month==9||month==11)

day=30;

elseif(month==2)

day=28+IsLeap(year);

returnday+1;

Time:

:

Time(inth,intm,ints):

hour(h),minute(m),second(s)//采用成员初始化列表对成员赋值

{}

voidTime:

add()//时间增加的方法

if(second<

60)

++second;

if(second==60)

{

++minute;

second=0;

}

if(minute==60)

++hour;

minute=0;

if(hour==24)

hour=0;

}

showTime()//输出时间的方法

cout<

<

"

\t\t※"

\t\t"

hour<

时"

minute<

分"

second<

秒"

endl

<

\t\t※※※※※※※※※※※※※※※※"

endl;

//cout<

intyear;

//年

intmonth;

//月

intday;

//日

date(inty,intm,intd);

~date(){};

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1