中山大学C++程序设计课件第一讲程序设计简要回顾.pptVIP

中山大学C++程序设计课件第一讲程序设计简要回顾.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一讲: 程序设计简要回顾 参见: 上学期教材 本学期教材第1、2、3、4、5、6、7、10章 主要内容及要求 主要内容 程序设计与程序设计语言 C++语言回顾 要求 重点掌握C++程序的各种基本要素 了解程序设计和程序设计语言 1、程序设计与程序设计语言 算法( algorithm ) a step-by-step procedure for solving a problem in a finite amount of time 对解决问题的过程(方法和步骤)的描述 算法的特征: 以数据为主要操作对象 确定性 有穷性 有效性 0个或多个输入 一个或多个输出 1、程序设计与程序设计语言(续) 实体(entity) 客观存在的单个事物 如:一个银行帐户,一颗行星 程序(program) A sequence of instructions to be performed by a computer 实体或算法在计算机中的表示 程序设计(programming)是指编制程序的活动,也就是用计算机能够理解的形式表达算法(或实体)的过程 1、程序设计与程序设计语言(续) 结构化程序设计(Structured Programming) 围绕功能设计程序 采用自顶向下分解的方法分析问题域所要实现的功能,使用算法描述实现功能的步骤 对于复杂功能则进行分解以使得每个功能都可设计算法实现,然后将这些算法组合起来实现该复杂功能 结构化程序设计的主要工作就是功能分解和算法设计 1、程序设计与程序设计语言(续) 面向对象程序设计(Object-Oriented Programming) 对象(object):客观存在的单个事物(又称实体(entity)) 属性 行为 类(class):描述同类对象(同类实体)的共性 对象称为类的实例(instance) 1、程序设计与程序设计语言(续) 面向对象程序设计 功能分析 ? 对象(实体)分析 以类作为构造程序的基本单位,程序结构对应实体的结构 用对象表示单个实体(对象数据描述实体属性,对象操作模拟实体的行为) 以对象为中心进行程序设计,对象数据被封装在对象内部,数据与操作成为一个整体 面向对象设计的主要工作是寻找问题域的实体,描述其属性和行为,并讨论实体间的关系 OOP的基本特征:封装(encapsulation) 、继承(inheritance)、多态性(polymorphism) 结构化程序设计与面向对象程序设计的对比 [例] 设想用程序模拟一个自动售货机。该自动售货机一次只能接受5分或10分的硬币,并且只能销售15分或20分的货物。程序的任务是,模拟自动售货机对一系列投币的反应。 结构化程序设计的解决方法 构造一个算法模拟自动售货机对投币的反应: 步骤1∶设自动售货机的现有硬币金额数count = 0。 步骤2∶等待投入一个硬币(或者说等待输入所投硬币的金额)或按投币过程结束键(或者说等待输入一个特殊的终止数字,比如说0)。 步骤3∶投币过程结束了吗?如果没有结束则转步骤4。否则判断count是否等于15,如果是则转步骤5,否则判断count是否等于20,如果是则转步骤6,否则转步骤7。 步骤4∶设投入的硬币的金额为m,如果m不等于5 而且m不等于10,吐出投入的硬币(或者说程序输出投入的硬币数不对的信息),转步骤2。否则令count等于count + m,转步骤2。 步骤5∶吐出价值等于15分的货物(或者说程序输出价值15分的货物名称)。 步骤6∶吐出价值等于20分的货物(或者说程序输出价值20分的货物名称)。 步骤7∶吐出所投入的所有硬币(或者说程序输出投入硬币的总数不对的信息)。 面向对象程序设计的解决方法 首先考察问题域有哪些实体,实体包含哪些属性和行为 然后考虑如何利用这些实体实现程序的功能 显然可将自动售货机看成一个实体,考察这个实体,发现售货机当前已接受的金额决定它的状态,以及下一步的动作。因此可围绕售货机的状态考察它的行为,这些行为可能包括: 接受投入的硬币或接受按投币终止键,该行为记为wait_coin 判断是否终止投币过程,该行为记为is_end 判断当前所投入的硬币金额数是否合法,记为is_legal 判断当前所投入的硬币金额数对于当前售货机的状态是否能合法终止,记为can_end 根据投入的合法硬币金额数修改当前售货机的状态,记为run 根据售货机最终状态吐出相应货物,记为output 自动售货机实体的描述 实体∶ 自动售货机 属性∶ 已接受的硬币金额总数count、当前投入的硬币金额数m、是否终 止投币end 行为∶ 1) wait_coin 输入∶ 当前投入的硬币金额数m 输出∶

文档评论(0)

jz6501 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档