• 第1课 学习 C++ 的意义


    1.  回顾历史

    (1)UNIX操作系统诞生之初是直接用汇编语言写成的。随着UNIX的发展,汇编语言的开发效率成为一个瓶劲。

    (2)1971年,Ken Thompson和Denis Ritchie对B语言(解释型)进行改良,使其能够直接产生机器码,C语言(编译型)诞生

    (3)UNIX开始用C语言重写,同时C语言在实践的过程中得到发展。

    2.  C语言的特点

    (1)C 语言是在实践的过程中逐步完善起来的,没有深思熟虑的设计过程,仍残留过多低级语言的特征

    (2)C语言的目标是高效,追求最终程序执行的效率要高。

    3. 软件方法论的发展

    3.1  面向过程程序设计:数据结构 +  算法,主要用于解决科学计算问题,用户需求简单而固定。

    (1)特点:

      ①先分析解决问题所需要的步骤

      ②利用函数实现各个步骤

      ③依次调用函数解决问题

      (2)问题:软件可重用性和可维护性差

    3.2 面向对象程序设计:由现实世界建立软件模型,将现实中的事物直接映射到程序中

    可直接满足用户需求。

    (1)特点:

      ①直接分析用户需求中涉及的各个实体

      ②在代码中描述现实世界中的实体

      ③在代码中关联各个实体协同工作解决问题

    (2)优势:

      ①构建的软件能够适应用户需求的不断变化

      ②直接利用面向过程方法的优势而避开其劣势

    4. C语言的加强

    (1)当面向过程方法论暴露越来越多的缺陷的时候,业界开始考虑在工程项目中引入面向对象的设计方法,而第一个需要解决的问题就是:高效的面向对象语言,并且能够兼容己经存在的代码。即C语言 + 面向对象方法论(如Objective-c和C++语言)

    (2)C语言和C++并不是对立的竞争关系。C++是以C语言为基础的,并且完全兼容C语言的特征,C语言的加强,是一种更好的C语言

    (3)学习C++并不会影响原有的C语言知识。相反,会让我们学到更多的软件设计方法

    5. 学习C++的优势

     

    6. 为什么要为以后学习其他语言做准备

    (1)现代软件产品架构图

     

    (2)实例:商场收银系统架构图

     

    (3)现代软件产品的特性

      ①系统一般是由多种语言写成的

      ②系统架构的目标是拥抱用户需求的变化

      ③系统拥用较好的移植性

      ④系统能够方便的部署和更新

      ⑤操作系统和驱动程序的开发在现代软件产品中占据的比重越来越小

    7. 学习C++的意义

    (1)C++是一种更强大的C,通过学习C++能够掌握更多的软件设计方法

    (2)C++是Java/C#/D等现代开发语言的基础,学习C++后能够快速掌握这些语言

    (3)C++是各大知名软件企业挑选人才的标准之一

    8. 小结

    (1)所有的软件系统都是为了满足用户需求而开发的

    (2)对于一个开发团队而言,在短期内开发出用户满意的软件系统是其核心竞争力的体现

    (3)对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现

    (4)对于一个架构师而言,掌握各种语言的优势并合理运用到系统中,由此简化系统的开发,是其核心价值的体现。

  • 相关阅读:
    BZOJ4569: [Scoi2016]萌萌哒
    BZOJ4566: [Haoi2016]找相同字符
    BZOJ4556: [Tjoi2016&Heoi2016]字符串
    BZOJ4545: DQS的trie
    BZOJ4458: GTY的OJ
    Codeforces Beta Round #19E. Fairy
    不确定性推理
    朴素贝叶斯
    对抗搜索
    struct
  • 原文地址:https://www.cnblogs.com/5iedu/p/5363054.html
Copyright © 2020-2023  润新知