计算机程序设计基础知识
程序设计基础知识

程序设计基础知识程序设计是现代社会中一项非常重要的技能,它涉及到计算机科学、软件开发等多个领域。
程序设计的基础知识是程序员必备的核心能力,下面将介绍一些程序设计的基础知识。
一、算法与流程图算法是指解决问题的一系列步骤,是程序设计的核心。
算法的好坏直接影响着程序的效率和准确性。
在设计算法时,一般使用流程图来描述算法的执行流程,流程图是用于表示算法的图形化工具。
通过流程图,程序员可以清楚地了解程序的执行过程,从而编写出高效、准确的程序。
二、编程语言编程语言是程序员用于编写程序的工具。
常见的编程语言有C、C++、Java、Python等。
不同的编程语言有各自的特点和适用场景。
掌握一门编程语言需要学习其语法规则、数据类型、变量、运算符等基本概念。
熟练掌握编程语言可以帮助程序员更好地实现算法,并编写出功能完善、易于维护的程序。
三、数据结构数据结构是程序设计中用于组织和存储数据的方式。
常见的数据结构有数组、链表、栈、队列、树等。
不同的数据结构适用于不同的场景,选择合适的数据结构可以提高程序的效率和可读性。
掌握数据结构,包括其定义、基本操作和应用场景,是程序设计的基础。
四、面向对象编程面向对象编程(Object-Oriented Programming,OOP)是一种编程思想和技术,它以对象作为程序的基本单元,通过封装、继承和多态等概念来组织和设计程序。
面向对象编程可以提高程序的模块化和可重用性,使程序更易于理解和扩展。
五、软件开发流程软件开发是程序设计的一个重要环节,它包括需求分析、设计、编码、测试、部署等多个阶段。
软件开发流程的规范性和合理性对于项目的成功至关重要。
了解软件开发流程,并熟悉软件开发中常用的工具和技术,可以使程序员更好地协作、提高工作效率。
六、调试与优化调试与优化是程序设计过程中必不可少的环节。
调试是指查找程序中的错误并进行修复的过程,而优化是指对程序性能进行改进,使其在执行效率和资源利用上更加优化。
程序设计基础(c++)

程序设计基础(c++)程序设计基础(C++)是一门非常重要的课程,它为学生提供了掌握计算机程序设计基本概念和技能的机会。
通过学习C++语言,学生可以了解计算机程序的基本结构、数据类型、运算符、控制结构、函数等概念,并掌握基本的编程技巧和算法。
在C++语言中,学生需要掌握以下基本概念:1. 数据类型:C++支持多种数据类型,包括基本类型(如int、float、double等)、字符类型(char)、布尔类型(bool)、数组类型、结构体类型等。
学生需要了解每种数据类型的定义和使用方法。
2. 运算符:C++支持多种运算符,包括算术运算符(如+、-、*、/等)、关系运算符(如==、!=、<、>等)、逻辑运算符(如&&、||等)等。
学生需要了解每种运算符的含义和使用方法。
3. 控制结构:C++支持多种控制结构,包括顺序结构、选择结构(如if语句)和循环结构(如for循环、while循环)。
学生需要了解每种控制结构的含义和使用方法。
4. 函数:C++支持函数的概念,函数是实现特定功能的代码块。
学生需要了解函数的定义、声明和调用方法。
5. 指针:C++支持指针的概念,指针是一种变量,它存储了另一个变量的地址。
学生需要了解指针的定义和使用方法。
在程序设计基础课程中,学生通常需要完成一些实验和项目,以加深对C++语言的理解和掌握。
这些实验和项目可能包括编写简单的程序、实现算法、解决实际问题等。
通过实践,学生可以更好地理解计算机程序设计的概念和技能。
总之,程序设计基础(C++)是一门非常重要的课程,它为学生提供了掌握计算机程序设计基本概念和技能的机会。
通过学习C++语言,学生可以了解计算机程序的基本结构、数据类型、运算符、控制结构、函数等概念,并掌握基本的编程技巧和算法。
自考计算机基础与程序设计第一章

⾃考计算机基础与程序设计第⼀章第⼀章计算机及程序设计基础知识常见考点1.计算机的基本组成2.计算机中数制的转换3.计算机中的编码4.程序设计基础知识重难点串讲⼀、计算机系统组成与⼯作原理计算机的基本结构代表数据流代表控制流(1)冯·诺依曼结构有3条重要的设计思想:①计算机应由运算器、控制器、存储器、输⼊设备和输出设备5⼤部分组成;②以⼆进制的形式表⽰数据和指令;③程序和数据预先存⼊存储器中,使计算机在⼯作中能⾃动地从存储器中取出程序指令。
(2)计算机的⼯作原理指令:是能被计算机识别并执⾏的⼆进制代码,它规定了计算机能完成的某⼀种操作。
⼀条指令通常由如下两个部分组成:①操作码:它是指明该指令要完成的操作。
②操作数:它指操作对象的内容或者所在的单元格地址。
指令系统:某⼀台计算机所能识别的所有指令的集合。
程序:⼀系列指令的有序集合。
历年试题【单选题】在计算机中,指令通常是由( )A.操作码、操作数组成B.源操作数、⽬标操作数组成C.反码、补码组成D.直接寻址、⽬的寻址组成【答案】A 【解析】该题考查的是指令的组成。
教材中没有相关内容。
⼆、计算机系统组成历年试题【单选题】⼀个完整的计算机系统应该包括( )A.主机和外设 B.主机和操作系统C.硬件系统和软件系统 D.系统软件和应⽤软件【答案】C【解析】该题考查的是⼀个完整的计算机系统的组成。
教材(P2)。
1.中央处理器(CPU)是计算机的核⼼部件,由运算器和控制器构成。
运算器⼜称算术逻辑部件,主要功能是完成对数据的算术运算、逻辑运算和逻辑判断等操作。
控制器是整个计算机的指挥中⼼,发出各种控制信号,指挥计算机各部分⼯作。
2.存储器(Memory)⽤来存储程序和数据,存储器可分为两⼤类:内存储器和外存储器(1)内存储器简称内存,可以与CPU直接交换数据,特点是:容量⼩、速度快,但价格贵。
内存⼀般分为ROM和RAM。
ROM:只读存储器,⼀种只能读取数据不能写⼊数据的存储器,断电后,ROM中的信息不会全丢失。
计算机程序设计基础习题册含答案)

《计算机程序设计基础》计算机程序设计基础_基础知识(一) 班级学号 姓名 成绩一、 单选题习题册1.C++源程序文件的默认扩展名为A。
2.A) cpp B) exeC) obj D) lik3.由C++源程序文件编译而成的目标文件的默认扩展名为C。
4.A) cpp B) exeC) obj D) lik5.由C++目标文件连接而成的可执行文件的默认扩展名为B。
6.A) cpp B) exeC) obj D) lik7.编写C++程序一般需经过的几个步骤依次是B。
8.A)编译、编辑、连接、调试B)编辑、编译、连接、调试C)编译、调试、编辑、连接D)编辑、调试、编辑、连接9.程序中主函数的名字为A 。
10.A) main B) MAINC) Main D) 任意标识符11.下面四个选项中,均是不合法的用户标识符的选项的是C。
12.A) A p_o doB)float lao _AC)b-a goto intD)_123 temp INT13.下列变量名中合法的是C。
14.A) B)C)Tom B) 3a66C) _6a7b D) $ABC15.存储以下数据,占用存储字节最多的是 D 。
16.A) 0 B) ‘0’C) “0” D) 0.017.在C++语言中,字符型数据在内存中的存储形式是D。
18.A) 补码 B) 反码C) 原码 D) ASCII码19.若有说明语句:char c =’\072’;则变量c A。
20.A) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法,变量的值不确定二、填空题1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。
2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。
3.一条表达式语句必须以__分号_;___作为结束符。
4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。
大一上学期第10章 程序设计基础

2
程序设计的基本步骤: 程序设计的基本步骤: (1)分析问题,确定数学模型或方法。 分析问题, 分析问题 确定数学模型或方法。 (2)设计算法,画出流程图。 设计算法, 设计算法 画出流程图。 (3)选择编程工具,按算法编写程序。 选择编程工具, 选择编程工具 按算法编写程序。 (4)调试程序,分析输出结果。 调试程序, 调试程序 分析输出结果。
10
10.2.5 算法示例
1.迭代算法 . 迭代是一种建立在循环基础上的算法。在数学中, 迭代是一种建立在循环基础上的算法。在数学中, 迭代经常被用来进行数值计算,例如求方程的解, 迭代经常被用来进行数值计算,例如求方程的解, 不断用变量原来的值递推求新的值的过程。 不断用变量原来的值递推求新的值的过程。 讨论求若干个数之和或乘积的问题。 讨论求若干个数之和或乘积的问题。
15
(2)折半查找 )
作为折半查找的表必须是顺序存储的有序表, 作为折半查找的表必须是顺序存储的有序表,即表采 用顺序结构存储,表中的元素按关键字值递增(或递减) 用顺序结构存储,表中的元素按关键字值递增(或递减) 排列。 排列。 假设表中的关键字值递增排列, 假设表中的关键字值递增排列,则折半查找的实现方 法是:首先取整个有序表的中间元素A 法是:首先取整个有序表的中间元素 m的关键字同给定 比较, 值x比较,若相等,则查找成功;否则,若Am的关键字小 比较 若相等,则查找成功;否则, 于x,则说明待查元素只可能落在表的后半部分中,接着 ,则说明待查元素只可能落在表的后半部分中, 只要在表的后半部分子表中查找即可; 只要在表的后半部分子表中查找即可;若 Am的关键字大 于x,则说明待查元素只可能落在表的前半部分中,接着 ,则说明待查元素只可能落在表的前半部分中, 只要在表的前半部分子表中查找即可。这样, 只要在表的前半部分子表中查找即可。这样,经过一次关 键字的比较,就缩小一半的查找空间,重复进行下去, 键字的比较,就缩小一半的查找空间,重复进行下去,直 到找到关键字为x的元素 或者表中没有待查元素( 的元素, 到找到关键字为 的元素,或者表中没有待查元素(此时 查找区间为空)为止。 查找区间为空)为止。
程序设计基础学习知识(学习知识重点)

第三部分程序设计基础3.1 程序、程序设计、程序设计语言的定义⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。
⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。
程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。
程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。
⑶程序设计语言:程序设计语言用于书写计算机程序的语言。
语言的基础是一组记号和一组规则。
根据规则由记号构成的记号串的总体就是语言。
在程序设计语言中,这些记号串就是程序。
程序设计语言有3个方面的因素,即语法、语义和语用。
3.2 高级语言和低级语言的概念及区别⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。
它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。
⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。
机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。
⑶区别:高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。
越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。
而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,使编写程序的过程更符合人类的思维习惯,并且极大了简化了人力劳动。
《程序设计基础

《程序设计基础
程序设计基础
1. 什么是程序设计基础
程序设计基础指的是计算机编程的基本知识和技能,包括编程语言、算法和数据结构。
了解程序设计基础可以帮助我们理解计算机是如何工作的,能够开发出高效、可靠的软件应用程序。
2. 编程语言
编程语言是用来描述计算机任务的一种形式化语言。
常见的编程语言有C、C++、Java、等。
不同的语言有不同的语法和特性,选择合适的语言取决于具体的应用需求。
3. 算法
算法是用来解决问题的一系列步骤。
好的算法能够提高程序的效率和性能。
常见的算法有排序算法、搜索算法等。
4. 数据结构
数据结构是组织和存储数据的方式。
常见的数据结构有数组、链表、栈、队列、树等。
选择合适的数据结构能够提高程序的效率。
5. 程序设计过程
程序设计过程包括问题分析、算法设计、编码实现、测试和调试等步骤。
良好的程序设计过程能够提高程序的质量和可维护性。
6. 软件开发工具
软件开发工具是用来辅助程序开发的工具。
常见的开发工具有集成开发环境(IDE)、代码编辑器、调试器等。
选择合适的开发工具能够提高开发效率。
7. 实践与项目
程序设计基础需要通过实践和项目来巩固和应用。
通过实际的编程练习和项目开发,能够提高编程能力和解决问题的能力。
8.
程序设计基础是计算机编程的基本知识和技能,包括编程语言、算法和数据结构。
通过学习程序设计基础,我们能够更好地理解计算机和开发高效、可靠的软件应用程序。
实践和项目是巩固和应用程序设计基础的重要方式。
计算机基础与程序设计知识点

1.电脑内部储存、处理、加工和传输汉字时使用的是汉字机内码。
2.Cache是为了解决CPU与储存器速度不匹配的问题。
3.蠕虫病毒是对电脑软件系统造成极大危害,他是一段特制的程序。
4.在C#中可以标识不同控件的属性是Name.5.在C#中不能作为变量名的是long.6.关于变量的声明和初始化,语句正确的选项是double x=137.不属于C#循环的中断语句的是jump语句。
8.设数组定义为:int[,]a=new int[5,6];,则以下数组元素的引用正确的选项是a[0,0]9.在C#中,不会显示在窗体上的控件是ImageList10.如果每隔15S产生一个定时器事件,则Timer的Interval属性应设置为1500011.在C#中,如果不希望类被继承,则定义类时要使用关键字sealed12.如果某个类程序员属于整个类而不属于类的某一个具体实例,则该程序员前需用修饰符static13.在C#中,对文本文件进行读取通常使用StreamReader类14.SQL Server 2008实一个关系模型数据库。
15.在中,用于对数数据源执行SQL命令语句的对象是Command对象。
16.以下软件工具中,不属于软件开发工具的是版本控制工具。
17.主要用于面向对象的开发过程的模型是喷泉模型。
18.在数据流图中,用圆或圆角矩形表示加工。
19.为了提高模块的独立性,模块之间最好是数据耦合。
20.在微型电脑中,西文字符一般采用ASCII 码进行编码。
21.文件型病毒通常寄生在可执行文件中。
22.C#程序的入口函数是Main 函数。
23.在C#中。
注释有两种方法,其中/* */可以进行多行注释。
24.已知数组mun的定义为:int[]num=new int[5]{5,4,3,2,1};,则num.Length=525.已知某类的类名Studend,则该类的析构函数名为~Student绘图时,默认的坐标原点在窗体和控件的左上角。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机程序设计基础知识要求:这是计算机程序设计的一些基础知识,要求大家了解,不作为考试的主要类容,但是会涉及一些。
因为在进行论文答辩时,如果问到一些软件设计的基础知识你都不知道可能会让得分减少很多,所以大家一定要看下。
第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
非空线性表的结构特征:(1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件;(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。
顺序表的运算:插入、删除。
1.4 栈和队列栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。
用top表示栈顶位置,用bottom 表示栈底。
栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
Rear指针指向队尾,front指针指向队头。
队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。
队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。
循环队列:s=0表示队列空,s=1且front=rear表示队列满1.5 线性链表数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表,HEAD称为头指针,HEAD=NULL(或0)称为空表,如果是两指针:左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。
线性链表的基本运算:查找、插入、删除。
1.6 树与二叉树树是一种简单的非线性结构,所有元素之间具有明显的层次特性。
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。
每一个结点可以有多个后件,称为该结点的子结点。
没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。
树的最大层次称为树的深度。
二叉树的特点:(1)非空二叉树只有一个根结点;(2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
二叉树的基本性质:89(1)在二叉树的第k层上,最多有2k-1(k≥1)个结点;(2)深度为m的二叉树最多有2m-1个结点;(3)度为0的结点(即叶子结点)总是比度为2的结点多一个;(4)具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分;(5)具有n个结点的完全二叉树的深度为[log2n]+1;(6)设完全二叉树共有n个结点。
如果从根结点开始,按层序(每一层从左到右)用自然数1,2,….n给结点进行编号(k=1,2….n),有以下结论:①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2);②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点);③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。
满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,则k层上有2k-1个结点深度为m的满二叉树有2m-1个结点。
完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。
二叉树存储结构采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储。
二叉树的遍历:(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树;(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树;(3)后序遍历(LRD)首先遍历左子树,然后访问遍历右子树,最后访问根结点。
1.7 查找技术顺序查找的使用情况:(1)线性表为无序表;(2)表采用链式存储结构。
二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。
1.8 排序技术排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。
交换类排序法:(1)冒泡排序法,需要比较的次数为n(n-1)/2;(2)快速排序法。
插入类排序法:(1)简单插入排序法,最坏情况需要n(n-1)/2次比较;(2)希尔排序法,最坏情况需要O(n1.5)次比较。
选择类排序法:(1)简单选择排序法, 最坏情况需要n(n-1)/2次比较;(2)堆排序法,最坏情况需要O(nlog2n)次比较。
第二章程序设计基础2.1 程序设计设计方法和风格如何形成良好的程序设计风格1、源程序文档化;2、数据说明的方法;3、语句的结构;4、输入和输出。
注释分序言性注释和功能性注释,语句结构清晰第一、效率第二。
2.2 结构化程序设计结构化程序设计方法的四条原则是:1. 自顶向下;2. 逐步求精;3.模块化;4.限制使用goto语句。
结构化程序的基本结构和特点:(1)顺序结构:一种简单的程序设计,最基本、最常用的结构;(2)选择结构:又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;(3)循环结构:可根据给定条件,判断是否需要重复执行某一相同程序段。
2.3 面向对象的程序设计面向对象的程序设计:以60年代末挪威奥斯陆大学和挪威计算机中心研制的SIMULA语言为标志。
面向对象方法的优点:(1)与人类习惯的思维方法一致;(2)稳定性好;(3)可重用性好;(4)易于开发大型软件产品;(5)可维护性好。
对象是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。
面向对象的程序设计方法中的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。
属性即对象所包含的信息,操作描述了对象执行的功能,操作也称为方法或服务。
对象的基本特点:(1)标识惟一性;(2)分类性;(3)多态性;(4)封装性;(5)模块独立性好。
类是指具有共同属性、共同方法的对象的集合。
所以类是对象的抽象,对象是对应类的一个实例。
消息是一个实例与另一个实例之间传递的信息。
消息的组成包括(1)接收消息的对象的名称;(2)消息标识符,也称消息名;(3)零个或多个参数。
继承是指能够直接获得已有的性质和特征,而不必重复定义他们。
继承分单继承和多重继承。
单继承指一个类只允许有一个父类,多重继承指一个类允许有多个父类。
多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象第三章软件工程基础3.1 软件工程基本概念计算机软件是包括程序、数据及相关文档的完整集合。
软件的特点包括:(1)软件是一种逻辑实体;(2)软件的生产与硬件不同,它没有明显的制作过程;(3)软件在运行、使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素。
软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。
软件危机主要表现在成本、质量、生产率等问题。
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
软件工程包括3个要素:方法、工具和过程。
软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动:(1)P——软件规格说明;(2)D——软件开发;(3)C——软件确认;(4)A——软件演进。
软件周期:软件产品从提出、实现、使用维护到停止使用退役的过程。
软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是:(1)可行性研究与计划制定;(2)需求分析;(3)软件设计;(4)软件实现;(5)软件测试;(6)运行和维护。
软件工程的目标和与原则:目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。