- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++面向对象程序设计
主讲教师 薛华柱
hpuxhz@163.com
;课程性质与设置目的;理论学习
理解、掌握基本概念,多看例题
理论指导实践,实践提高认识
实践学习
勤思考,多动手
重视上机实习环境
坚持自学
;计算机程序;机器语言与汇编语言;高级语言;面向对象的语言;面向对象的语言;例:请编程计算出1999年5月10日到2006年3月8日期间一共有多少天?
一年有 365 天,但闰年有366 天;
?? 一年有 12 个月,大月31 天,小月30 天;
?? 2 月最特殊,普通年有28 天,闰年有29 天。;①计算从1999 到2006 期间共有多少个整年:
2000、2001、2002、2003、2004、2005,共有6 个整年,其中2000 和2004 年是闰年,因此,共有6×365+2=2192 天。
②计算从1999 年5 月10 日到本年底(即12 月31 日)共有多少天:
5 月10 日到12 月31 日中共有4 个整的大月(7 月、8 月、10 月、12 月),3 个整的小月(6 月、9 月、11 月),共记4×31+3×30=214 天。5 月10 日到本月底(31 日)还有31?10=21 天。
所以,1999 年5 月10 日到年底共有214+21=235 天。
③计算从2006 年1月1日到2006 年3 月8 日期间一共有多少天:
1 月有31 天,2006 年不是闰年,2 月有28 天,所以,总共有31+28+8=67 天。
综上所述,1999 年5 月10 日到2006 年3 月8 日期间一共有2192+235+67=2494 天。
;;;//计算两年之间的整年天数,不足一年的去掉
static int CalculateDaysOfTwoYear(int beginYear, int endYear)
{ //… }
//根据两个日期,计算出这两个日期之间的天数,忽略中间的整年
static int CalculateDaysOfTwoMonth(MyDate beginDate, MyDate endDate)
{ //… }
第一个函数根据两个年份之间的整年数计算出天数,第二个函数根据月和日计算出两个日期之间的天数(忽略中间的整年)。在深入地考虑这两个函数的具体实现算法时,会发现它们都需要判断一年是否是闰年,于是,设计另一个函数IsLeapYear()完成此功能:
;//根据年数判断其是否为闰年
static bool IsLeapYear(int year)
{
//…
};在整个结构化分析过程中,采用的是先设计出最顶层的CalculateDaysOfTwoDate()函数的接口,再设计第二层的两个函数CalculateDaysOfTwoYear()和CalculateDaysOfTwoMonth(),最后抽象出第三层的函数IsLeapYear()。
有了设计图,即可动手写代码。现在有四个函数需要开发,如何确定开发顺序?
很明显,必须先开发IsLeapYear()函数,因为此函数被其他函数调用,但它不调用其他函数。接着可以开发CalculateDaysOfTwoMonth()和CalculateDaysOfTwoYear()两个函数,因为CalculateDaysOfTwoYear()函数比较简单,所以先开发它。最后开发CalculateDaysOfTwoDate()函数。;;函数开发完成之后,以下代码调用最顶层函数
CalculateDaysOfTwoDate()完成计算两日期之间天数的工作:
MyDate d1, d2; //起始日期和结束日期
//1999年5月10日
d1.Year = 1999;
d1.Month = 5;
d1.Day = 10;
//2006年3月8日
d2.Year = 2006;
d2.Month = 3;
d2.Day = 8;
//计算结果
int days = CalculateDaysOfTwoDate(d1, d2);;结构化程序设计方法小结:
?? 结构化软件系统的基本程序设计单位是函数。
?? 整个系统按功能划分为若干个模块,每个模块都由逻辑上或功能上相关的若干个函数构成,各模块在功能上相对独立。
?? 公用的函数存放在公用模块中,各模块间可以相互调用,拥有调用关系的模块形成一个树型结构,这种调用关系应尽可能做到是单向的。;结构化程序设计的开发过程可以分为以下3 个阶段:
①分析阶段:在程序设计之前,需要仔细分析要解决的问题,确定好数据结构与算法。
②设计阶段:结构化程序设计的基本单元是函数,每个函数都完成
文档评论(0)