1、(1) 作用:为有效利用计算机系统的资源、充分发挥计算机系统的工作潜力、正常运行、尽可能方便用户使用计算机而编制的软件。如汇编程序、编译程序、操作系统、数据库管理系统及计算机网络软件等。没有这些软件,计算机将难以发挥其功能,甚至无法工作。(2)特点:一是通用性、二是基础性。(3)提供者:计算机厂家。(4)操作系统: 系统软件的核心是操作系统。操作系统(Operating System,简称OS)是由指挥与管理计算机系统运行的程序模块和数据结构组成的一种大型软件系统,其功能是管理计算机的全部硬件资源和软件资源,为用户提供高效、方便的服务界面。例如,Windows 2000,UNIX ,Windo
2、ws XP 等。5从图灵机到冯诺伊曼机:(1)冯诺伊曼方案的基本内容:1)用二进制形式表示数据和指令;2)将程序(数据和指令序列)预先存放在主存储器中,使计算机在工作时能够自动高速地从存储器中取出指令,并加以执行,这是“存储程序控制”的基本特点; 3)确立了计算机系统的5大基本部件:存储器、控制器、运算器、输入设备和输出设备,同时也规定了5大部件的基本功能。见教材第21页图1.8所示。(2)冯诺依曼型计算机的两大特征:“程序存储”和“采用二进制”。(3)图灵机和冯诺伊曼机对比: “图灵机” ,是计算机的“粗框图”,是计算机的概念模型,奠了现代计算机的理论基础。冯诺伊曼机,是计算机的“细框图”,
3、是计算机的结构模型,奠了现代计算机的设计基础。第二章 解题要有程序1、(1)计算机程序:按照工作步骤事先编排好的、具有特殊功能的指令序列(2)程序=数据结构+算法2、 计算机语言:计算机语言有三种类型:机器语言、汇编语言和高级语言。(1) 机器语言: 由二进制代码组成,可以直接访问和使用计算机的硬件资源。计算机能直接识别并执行这种程序,其指令的执行效率高。(2) 汇编语言:将每一条机器语言指令用一串符号来代替,然后用符号进行程序设计,这样的语言称为符号语言或汇编语言,其符号常常用英语的动词或动词的缩写表示。用汇编语言编写的程序称为汇编语言源程序。汇编程序的任务是自动地将用汇编语言编写的源程序翻
4、译成计算机能够直接理解并执行的机器语言程序,即目标程序。再通过连接程序将目标程序中所需要的一些系统程序片段(如标准库函数等)连接到目标程序中,形成可执行文件才能执行,获得所希望的结果。(3)高级语言:高级语言的表示形式近似于人们的自然语言,对各种公式的表示也近似于数学公式。用高级语言编写的程序称为高级语言源程序。同汇编语言源程序一样,计算机也不能理解和执行高级语言源程序,于是,人们设计了各种编译程序和解释程序,用于将高级语言源程序翻译成计算机能直接理解并执行的二进制代码的目标程序3、高级语言源程序的翻译有两种方式:一种是解释方式,另一种是编译方式。(1)编译程序的工作原理1)词法分析;2)语法
5、分析;3)语义分析;4)中间代码生成;5)代码优化;6)目标代码生成。(2)解释执行需要有一个解释程序,它将源代码程序逐句读入,通过一边分析源程序,一边执行程序。4、微机中常用的高级语言主要有3类:面向过程的程序设计语言、面向问题的程序设计语言和面向对象的程序设计语言。(1)面向过程的程序设计语言传统的程序设计高级语言几乎都是面向过程的程序设计语言,在程序设计中需要将任务的每个步骤逐一编写出来,对问题的描述接近于对问题求解过程,易于掌握和书写。微机中经常用到的这类高级语言有BASIC、FORTRAN、PASCAL、C等。(2)数据库语言面向过程的高级语言要仔细告诉计算机每步“怎么做”,而面向问
6、题的数据库语言就只需告诉计算机“做什么”,不需要告诉它“怎么做”,它就会自动完成所需的操作。例如,SQL语言。 (3)面向对象的程序设计语言传统的高级语言,用户不仅要告诉计算机“做什么”,而且要告诉计算机“怎么做”,也就是把每一步的操作事先都设想好,用高级语言编成程序,让计算机按指定好的步骤去执行。近年来出现了“面向对象”的程序设计语言。所谓对象是数据及相关方法的软件实体,可以在程序中用软件中的对象来代表现实世界中的对象。目前微机上流行的这类程序设计语言有JAVA、VFP(Visual Foxpro)、C+、VB、VC、PowerBuilder、Delphi等。第三章 语言基础1、C语言的主要
7、特点:(1)可进行位操作。(2)代码效率高。(3)可以书写系统软件和应用软件。2、C语言程序的基本结构:(1) 程序由函数构成。一个函数由两部分组成:函数说明和函数体。一个C程序总是从主函数main开始执行,无论主函数在程序中的位置如何。主函数只能有一个。(2) 每个语句必须以分号(;)结尾。(3) 一行内可同时写几个语句,必须 用分号(;)分隔。3、C语言的基本数据类型(1)整数型(int):%d(2)实数型(float):%f(3)字符型(char):%c(4)枚举型(enum):4、运算符1)C语言的运算符主要有以下几种:(1) 算术运算符:+ 、-、 *、 /、 %(2) 逻辑运算符:
8、& 、| 、!(3) 关系运算符: 、=、=(4) 条件运算符: ?(5) 逗号运算符: , (6) 位运算符: |、 、&、 (7) 赋值运算符: =、+=、 -= (8) 自增自减运算符:+、-2)表达式的运算规则:不同运算符出现在同一表达式中时,先按运算符的优先级、相同优先级时按运算符的结合性决定运算的先后次序。结合性从右向左的运算符有:赋值及复合赋值运算符、条件运算符、逻辑非、按位求反、自增、自减、取负、取地址、取内容、强制类型等。5、复合语句在C语言中,把多条语句用一对大括号”括起来组成的语句称复合语句。复合语句虽然可有多条语句组成,但它是一个整体,其作用相当于一条语句,凡可以使用单
9、一语句的位置都可以使用复合语句。注意:大括号”之后不再加分号。第四章 程序设计1、if 语句:C语言中提供了3种形式的if 语句:if 语句、if-else 语句、if-else-if 语句。2、循环语句: (1) 三种循环可相互替代处理同一问题。(2) do - while 循环至少执行一次循环体,而while及for循环的循环体有可能一次都不执行。(3)while及do - while循环多用于循环次数不可预知的情况,而for循环多用于循环次数可以预知的情况。3、 函数(1)C语言程序是由函数组成的。函数是C语言的基本模块。(2)若不要求函数有返回值,则函数类型可以写为void。(3)如果
10、被调用函数是标准库函数时,必须在程序开头用#include命令将有关头文件包含到本程序中。例如:#include “math.h”#include “stdio.h” 第五章 数据结构基础 1数据结构一般包含三个方面的内容:数据的逻辑结构、数据的存储结构和数据的运算。 2、数据的逻辑结构分为线性结构和非线性结构两大类。(1)线性结构包括:线性表、栈和队列等。其主要特征为各个数据之间有明确的、唯一的“先后”顺序。 3、数据的存储结构:顺序存储方式和链式存储方式。 4、后进先出表-栈栈是一种受限的线性表,它限定在表的一端进行插入和删除操作。表中允许进行插入、删除操作的一端称为栈顶(top)。 5、
11、先进先出表-队列 队列是线性表,也是一种受限的线性表,它限定只能在表的一端进行插入,另一端进行删除操作。允许插入的一端称作队尾(rear),允许删除的一端称为队头(front)。 6、二叉树与树是有区别的:在二叉树中,一个结点的子树有左、右之分不能互换位置,而树则无此限制。 7、二叉树遍历: (1)先序遍历,先访问根结点,再访问左子树,最后访问右子树;(2)中序遍历,先访问左子树,再访问根结点,最后访问右子树;(3)后序遍历,先访问左子树,再访问右子树,最后访问根结点。 第六章 算法和问题求解1(1)算法:解决特定问题而采取的有限步骤。(2)算法的性质:1).有穷性 2)确定性 3)可行性 4
12、)输入性5)输出性 2.算法的控制结构: (1)顺序结构 (2)选择结构 (3)循环结构 3、算法的描述(1) 用自然语言表达,如汉语、英语或数学语言。(2)用伪代码表示:伪代码是一种介于自然语言与计算机语言之间的算法描述方法。 (3)用传统流程图描述算法(流程图也叫框图): 它是是用各种几何图形、流程线及文字说明来描述计算过程的框图。 (4)N-S结构化流程图 4、算法设计中的基本方法(1) 逐个检测穷举法; (2)我中有我递归法; (3)分而治之分治法; (4)边试边走回溯法。 5、算法的评价方法:(1)算法评价,最主要的是算法的正确性和算法的运行效率。 (2)算法的运行效率:程序在计算机
13、上执行所耗费时间和所占用空间。 第七章 程序设计基本方法与原则1、结构化程序设计方法的主要技术是自顶向下、逐步求精。 2、面向对象方法是一种把面向对象的思想运用于软件开发过程中,指导开发活动的系统方法,简称OO方法,是建立在“对象”概念(对象、类和继承)基础上的方法学。对象是由数据和允许的操作组成的封装体,与客观实体有直接的对应关系。3、软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。它借鉴了传统工程的原则、方法,以提高软件质量,降低开发成本为目的。其中,计算机科学、数学用于构造模型和算法,工程科学用于制订规范、设计范型、评估成本等,管理科学用于计划、资源、质量、成本等管理。 4、软件的生存周期(1)软件产品从形成概念开始,经过开发、使用和维护,直至最后退役的全过程称为软件生存周期。 (2)根据软件所处的状态、特征以及软件开发活动的目的、任务可以将生存周期划分为若干阶段。一般说来,软件生存周期包括软件定义、软件开发、软件使用与维护三个部分,并可进一步细分为可行性研究、需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用、维护和退役10个阶段。 5、软件开发模型软件开发模型大体上可分为两种类型:第一种是以软件需求完全确定为前提的瀑布模型。第二种是在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如原型模型、螺旋模型等。