202111051401结构化程序设计.mp4

大纲要求

•【1】顺序结构、分支结构和循环结构

•【2】自顶向下、逐步求精的模块化程序设计

•【2】流程图的概念及流程图描述


本章内容偏向理论,作为知道性质的学习,知道即可

深入“自顶向下,逐步求精”,面向过程程序设计方法

https://blog.csdn.net/sxhelijian/article/details/7303605
程序设计初学者常常受困于不会想问题:“不知道让计算机解决这个问题该如何做”。其实,程序员的一个基本功是,能够将复杂的问题分解开来。学会分解任务,因超级大分为大的、中的、小的、超小的,直到能用很直接的方法解决。记住一个很管用的策略:自项向下,逐步求精。不管做何事,都拿这个策略套一套,程序能编好,其他事也都能做。

  1. 让你建立“自顶向下,逐步求精”的思维方式,你的大脑先能“机械化”,为指挥计算机“一步一步”地完成任务打下基础;
  2. 让循环的概念在头脑中扎根:在顺序、选择、循环三种控制结构中,循环是最复杂的(只要你掌握了,也就不复杂,而成为一种自然的思维方式了),也是解决问题的最有效的结构,我们就先在此力求先期得到体会。
  3. C++程序的基本单位是函数,用函数解决更小的问题,这是求精实现的途径。

这部分内容并未对应到课本上的某一段。要学会“跳跃”的学习方式,自己构建知识,跳出所谓课本的框框。课本给出了一种知识的组织形式,然而知识本身并不本来就呈现这种关系的,这样组织只是作者的一种思路而已。工科学生要学会查阅资料,因为你所需的知识“背”不会,也不应该是用“背书”的方式学的。将课本看成是手册、工具书,无论学到哪儿,能随时恰当、准确地找到书中能够给你启示和参考的地方。不要迷信老师讲过就如何如何,只要你需要,消除心理障碍,你就能读下去,获得自己需要的知识。
image.png
求精技术包含: 顺序连接的求精、分支和选择的求精、循环的求精、递归的求精

面向过程,自顶向下;面向对象,自下向上

https://blog.csdn.net/quzhan2018/article/details/80997005
面向过程:站在程序员的角度按照“自顶向下,逐步求精”的模块化思想去解决问题,适合解决小规模的问题。
面向对象:按照“由下而上”的思想,站在用户的角度先考虑系统由什么物体(对象)组成,对象之间时如何交互的。它比较适合解决大规模的问题。

面向对象基本概念

对象:万物皆对象,对象是由静态的属性和动态的方法组成。
类:一组具有相同属性和行为对象的抽象事物。
消息:向某个对象发送请求。(如:手机来电)
方法:对象对收到请求的响应。(如:手机收到来电会震动提示)

面向对象的基本特征

抽象:从一个具体的对象中提取提取一组数据,去除非本质和特性的属性,保留本质的、共性的。
比如学生,有很多的属性(学号、姓名、性别、身高、体重、血型、专业、班级、成绩),如果我们要做一个学生成绩管理系统,我们应该关注的,除了学生的基本信息(姓名、性别等),还要关注和学习相关的属性(学号、专业、班级、成绩),不用关注他的血型、体重、身高等跟成绩无关的属性。而如果我们要做的是一个学生健康管理系统,那么除了基本属性,身高、体重就是学生的本质属性。

封装:给对象一个边界,将内部信息尽量的隐藏,只保留对外的操作接口。比如:显示器内部的元器件是看不到的,也不允许随意摆弄,而是留下电源、信号接口以及调节亮度的按钮。封装使得对象更加的安全,容易。

继承:继承是允许后代直接使用前辈直接拥有的。比如,长得像父母就是继承了父母的部分基因。如果自然界中没有继承,世界就依然是混沌状态,所有生物的出现都是从初始状态,也就没有了进化。继承是一种代码重用的机制,使得代码更省略、更可靠、更高效。
比如:一个拥有卡车设计和制造能力的企业,要设计消防车,显然是比没有经验的企业更加高效和可靠,因为他继承了之前的设计和制造能力,只是需要在此基础上稍加改动即可。

多态:同样的消息发送给不同的对象,不同的对象做出的响应可能有所不同。比如:跑步运动员和游泳运动员,都有“出发”的这个方法,当收到裁判员传来的消息时,都开始执行“出发”,但是他们所做出来的动作是不相同的。