第一章软件设计概论_第1页
第一章软件设计概论_第2页
第一章软件设计概论_第3页
第一章软件设计概论_第4页
第一章软件设计概论_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章第一章 软件设计概论软件设计概论第五章第五章 类与对象类与对象第四章第四章 函数函数第三章第三章 结构化程序设计结构化程序设计第二章第二章 C+基础知识基础知识第十章第十章 异常处理异常处理第九章第九章 输入输入/输出流类库输出流类库第八章第八章 继承与多态继承与多态第七章第七章 动态内存分配动态内存分配第六章第六章 指针与数组指针与数组第十一章第十一章 标准模板类库标准模板类库(STL) 附附 录录 目目 录录第一章第一章 软件设计概述软件设计概述软件设计软件设计是一个将是一个将人类思维人类思维物化为物化为计算机思维计算机思维的的过程,通过这个过程计算机获得一定程度的独立过程,通过这个

2、过程计算机获得一定程度的独立加工甚至思维的能力,从而将人类思维推向更高加工甚至思维的能力,从而将人类思维推向更高层次。关于软件设计的概念和方法的研究是随着层次。关于软件设计的概念和方法的研究是随着计算机应用的深入和所处理问题的复杂化而不断计算机应用的深入和所处理问题的复杂化而不断加深的。本章将就软件设计的相关加深的。本章将就软件设计的相关概念概念和程序设和程序设计方法的计方法的演化发展演化发展作一简要介绍。作一简要介绍。1.1 软件与软件危机软件与软件危机1.2 软软 件件 工工 程程1.3 程序设计方法程序设计方法 1.6 一个简单的一个简单的C+程序程序1.5 C语言和面向对象的语言和面向

3、对象的C+1.4 算法的设计与分析算法的设计与分析 第一章第一章 软件设计概述软件设计概述 1.1 软件与软件危机软件与软件危机什么是软件什么是软件什么是软件危机什么是软件危机 软件 程序软件危机首次爆发于二十世纪六十年代。在大型程序设计中,人们发现投入大量的人力、物力、时间开发出的软件,其成本、效率、质量等方面却处于失控状态,尤其软件维护异常困难。程序的修改扩充往往需要大量重复性投入。 1.1 软件与软件危机软件与软件危机软件危机产生的原因主要有三个:软件危机产生的原因主要有三个:2 2 软件是一种逻辑产品而非物理产品,软件的软件是一种逻辑产品而非物理产品,软件的开发过程本质上是人的思考过程

4、。开发过程本质上是人的思考过程。3 3 人的智力在面对越来越复杂的问题时,处理人的智力在面对越来越复杂的问题时,处理问题的效率会越来越低。问题的效率会越来越低。1 1 软件开发者不熟悉用户问题的领域,或没有软件开发者不熟悉用户问题的领域,或没有理解用户需求,软件产品与要求不一致。理解用户需求,软件产品与要求不一致。1.2 软件工程软件工程软件危机的软件危机的 出现迫使人们重新认识出现迫使人们重新认识软件和软件开发过程。软件和软件开发过程。大型软件开发也应该借鉴建筑、机械大型软件开发也应该借鉴建筑、机械等行业的发展过程,由等行业的发展过程,由“手工方式手工方式”向向“工程化工程化”方向发展。方向

5、发展。19681968年在北年在北大西洋公约组织大西洋公约组织(NATO)(NATO)的年会上的年会上首次首次提出提出软件工程软件工程的概念,此后又逐步提的概念,此后又逐步提出出软件生命期软件生命期的概念。的概念。1.2 软件工程软件工程软件工程的提出和软件的定义软件工程的提出和软件的定义 软件软件是程序、方法、规则、相关文档以及在计算机上运行是程序、方法、规则、相关文档以及在计算机上运行所必需的数据的集合。而所必需的数据的集合。而软件工程软件工程是开发、运行、维护软件是开发、运行、维护软件的系统方法。的系统方法。软件生命期软件生命期软件生命期指从开始研制到废弃不用的整个期间,可划分软件生命期

6、指从开始研制到废弃不用的整个期间,可划分为五个阶段:为五个阶段:需求分析需求分析、设计设计、编程编程、测试测试和和运行维护运行维护。 软件的质量标准软件的质量标准正确性正确性 健壮性健壮性 可维护性可维护性可用性可用性 可重用性可重用性 效率等效率等1.2 软件工程软件工程正确性 软件的正确性指的是软件系统在正常条件下能够正确工作,完成规定功能。这是软件的首要指标。例如,要求设计程序,输入一批数据,计算它们的累加和。在这里,正确性就是正确能正确计算累加和。1.2 软件工程软件工程健壮性健壮性软件的健壮性指的是软件的健壮性指的是在意外情况下在意外情况下(如输入数据不合理或(如输入数据不合理或某些

7、硬件故障),软件系统仍能适当地工作,并对意外情况某些硬件故障),软件系统仍能适当地工作,并对意外情况进行适当处理,而不致于导致错误结果甚至系统的瘫痪或死进行适当处理,而不致于导致错误结果甚至系统的瘫痪或死机。机。例如,要求设计程序,根据输入的三边例如,要求设计程序,根据输入的三边a a、b b、c c的长度判别的长度判别三角形类型。现有如下设计思想:若三角形类型。现有如下设计思想:若a a、b b、c c中只有两个量相中只有两个量相等,则为等腰三角形,若三个量均相等,则为等边三角形,等,则为等腰三角形,若三个量均相等,则为等边三角形,否则为一般三角形。如果输入为(否则为一般三角形。如果输入为(

8、-2-2,-2-2,-2-2)时,程序输)时,程序输出为:等边三角形。这个结果显然是错误的。这是由于程序出为:等边三角形。这个结果显然是错误的。这是由于程序对不合理数据不能进行适当处理,我们就说这个程序的健壮对不合理数据不能进行适当处理,我们就说这个程序的健壮性不好。性不好。1.2 软件工程软件工程可维护性可维护性软件的维护包括软件的维护包括发现并改正软件的错误发现并改正软件的错误,以,以及由于软件运行环境发生变化或软件功能扩充及由于软件运行环境发生变化或软件功能扩充而而对软件进行的改动对软件进行的改动。 软件的可维护性指的是软件容易维护的程度。软件的可维护性指的是软件容易维护的程度。一般地说

9、,软件的可读性好,容易理解,维护一般地说,软件的可读性好,容易理解,维护起来也就比较容易。因此可读性是可维护性的起来也就比较容易。因此可读性是可维护性的基础。基础。 1.3 程序设计方法程序设计方法1.3.1 1.3.1 传统的结构化程序设计传统的结构化程序设计 SP(Structured Programming)SP(Structured Programming)1.3.2 1.3.2 面向对象的程序设计面向对象的程序设计 OOP(Object Oriented Programming)OOP(Object Oriented Programming)1.3.1 传统的结构化程序设计传统的结构

10、化程序设计传统的程序设计方法可以归结为传统的程序设计方法可以归结为,将程序定义为处理数据,将程序定义为处理数据的一系列过程。这种设计方法的着眼点是的一系列过程。这种设计方法的着眼点是,特点是数据与程序分离,即,特点是数据与程序分离,即数据数据与数据处理分离与数据处理分离。 结构化程序设计的基本思想是采用结构化程序设计的基本思想是采用的设计方法和的设计方法和的控制的控制结构。结构。1.3.1 传统的结构化程序设计传统的结构化程序设计模块模块 22.12.2模块模块 11.21.11.31.3.11.3.21.3.3模块模块 33.13.23.1.13.1.2 程程 序序1.3.1 传统的结构化程

11、序设传统的结构化程序设计计举一个简单的例子,要求读入一组整数,统计其中举一个简单的例子,要求读入一组整数,统计其中正整数和负整数的个数。正整数和负整数的个数。该任务的模块结构及细化过程如下:该任务的模块结构及细化过程如下:1.1.读入数据读入数据2.2.统计正数、负数统计正数、负数的个数的个数; ; 3. 输出结果输出结果 2.1 2.1 如数大于如数大于0 0,正整数个数加,正整数个数加1 12.2 2.2 如数小于如数小于0 0,负整数个数加,负整数个数加1 12.3: 2.3: 取下一个整数取下一个整数正整数个数为正整数个数为0 0;负整数个数;负整数个数0 0 取第一个整数取第一个整数

12、重复重复至统至统计完计完1.3.1 传统的结构化程序设计传统的结构化程序设计结构化程序设计结构化程序设计为处理复杂问题提供了有力为处理复杂问题提供了有力手段,但到手段,但到8080年代末,这种设计方法逐渐暴年代末,这种设计方法逐渐暴露出以下露出以下缺陷缺陷: (1 1)难以适应大型软件的设计。)难以适应大型软件的设计。 (2 2)程序可重用性差。)程序可重用性差。1.3.2 面向对象的程序设计面向对象的程序设计为什么要引入面向对象的设计为什么要引入面向对象的设计方法方法面向对象的设计方法与面向过面向对象的设计方法与面向过程的设计方法有什么关系程的设计方法有什么关系1.3.2 面向对象的程序设计

13、面向对象的程序设计面向过程程序设计缺点的根源在于面向过程程序设计缺点的根源在于数据与数据处理数据与数据处理分离分离。面向对象程序设计模拟自然界认识和处理事物的方面向对象程序设计模拟自然界认识和处理事物的方法,将法,将数据数据和和对数据的操作方法对数据的操作方法放在一起,形成一个相放在一起,形成一个相对独立的整体对独立的整体对象(对象(objectobject),同类对象还可抽象,同类对象还可抽象出出共性共性,形成,形成类(类(class class )。一个类中的数据。一个类中的数据通常只能通常只能通过本类提供的方法进行处理,这些方法成为该类与外通过本类提供的方法进行处理,这些方法成为该类与外

14、部的部的接口接口。对象之间通过。对象之间通过消息(消息(messagemessage)进行通讯。进行通讯。1.3.2 面向对象的程序设计面向对象的程序设计1 基基 本本 概概 念念3 “面向对象面向对象”程序设计的特点程序设计的特点2 面向对象的软件开发方法面向对象的软件开发方法基基 本本 概概 念念1 基基 本本 概概 念念属性属性行为行为表针表针旋钮旋钮其他机械机构其他机械机构调节旋钮调节旋钮对 象1 基基 本本 概概 念念是一个抽象的概念,用来描述某一类对象所共是一个抽象的概念,用来描述某一类对象所共有的、本质的属性和类行为。有的、本质的属性和类行为。 类类类的一个具体实现,称为实例类的

15、一个具体实现,称为实例手表手表 一块手表一块手表类类 对象对象描述这类对象共有的、本质的属性和行为描述这类对象共有的、本质的属性和行为手表共有的属性(表针、旋钮、内部结构)手表共有的属性(表针、旋钮、内部结构)和行为(调节旋钮)和行为(调节旋钮)具体到一只圆形的或方形的手表具体到一只圆形的或方形的手表基基 本本 概概 念念我们把对象之间产生我们把对象之间产生相互作用相互作用所传递的所传递的信息信息称做消息。称做消息。 消消 息息启启 动动发送消息发送消息接收并响应消息接收并响应消息转转 向向面向对象的软件开发方法面向对象的软件开发方法面向对象软件开发的根本面向对象软件开发的根本合理性合理性在于

16、它符在于它符合客观世界的组成方式和大脑的思维方式。合客观世界的组成方式和大脑的思维方式。在大型程序开发过程中,编码只是其中很在大型程序开发过程中,编码只是其中很小一部分,应当采用工程化的方法,并将面小一部分,应当采用工程化的方法,并将面向对象的思想贯穿于软件开发全过程,这就向对象的思想贯穿于软件开发全过程,这就是是面向对象的软件工程面向对象的软件工程。面相对象的软件工程同样遵循面相对象的软件工程同样遵循分层抽象分层抽象、逐步细化逐步细化的原则。软件开发过程包括以下五的原则。软件开发过程包括以下五个阶段:个阶段: 面向对象的软件开发方法面向对象的软件开发方法测试的任务在于发现并改正程序中的错误。

17、测试的任务在于发现并改正程序中的错误。面向对象的分析面向对象的分析(OOA)面向对象的设计面向对象的设计(OOD)面向对象的编程面向对象的编程(OOP)面向对象的测试面向对象的测试(OOT)分析阶段的主要任务是按照面向对象的概念和方法,从问题中分析阶段的主要任务是按照面向对象的概念和方法,从问题中识识别别出有意义的出有意义的对象对象,以及对象的,以及对象的属性属性、行为行为和对象间的和对象间的通信通信,进而,进而抽象抽象出类结构,最终将它们描述出来,形成一个出类结构,最终将它们描述出来,形成一个需求模型需求模型。设计阶段从需求模型出发,分别进行类的设计和应用程序的设计。设计阶段从需求模型出发,

18、分别进行类的设计和应用程序的设计。编程阶段实现由设计表示到面向对象程序设计语言描述的转换。编程阶段实现由设计表示到面向对象程序设计语言描述的转换。面向对象的维护面向对象的维护(OOSM)“面向对象面向对象”程序设计的特点程序设计的特点封装性封装性(2) 继承与派生性继承与派生性(3) 多态性多态性3 “面向对象面向对象”程序设计的特点程序设计的特点封装性封装性内内外外机械零件机械零件动作动作调节旋钮调节旋钮读表盘读表盘对象是一个对象是一个封装体封装体,在其中封装了该,在其中封装了该对象的属性和操作。通过限制对属性和操对象的属性和操作。通过限制对属性和操作的访问权限,可以将属性作的访问权限,可以

19、将属性“隐藏隐藏”在对在对象内部,对外提供一定的象内部,对外提供一定的接口接口,在对象之,在对象之外只能通过接口对对象进行操作。外只能通过接口对对象进行操作。C+C+通过建立数据类型通过建立数据类型类类来支持来支持封装和数据隐藏。封装和数据隐藏。封装性增加了封装性增加了对象的对象的独立性独立性,从而保证了,从而保证了数据的可靠性数据的可靠性。一。一个定义完好的类可以作为个定义完好的类可以作为独立模块独立模块使用。使用。汽车汽车客车客车货车货车小轿车小轿车大客车大客车载货载货载人载人小,速度快小,速度快大,速度慢大,速度慢3 “面向对象面向对象”程序设计的特点程序设计的特点继承与派生继承与派生以

20、汽车为例看客观世界描述事物的方式:以汽车为例看客观世界描述事物的方式:当定义了一个类后,又需定义当定义了一个类后,又需定义一个新类,这个新类与原来的类一个新类,这个新类与原来的类相比,只是增加或修改了部分属相比,只是增加或修改了部分属性和操作,这时可以用原来的类性和操作,这时可以用原来的类派生派生出新类,新类中只需描述自出新类,新类中只需描述自己所特有的属性和操作。己所特有的属性和操作。面向对象程序设计提供了类似的机制:面向对象程序设计提供了类似的机制:继承性大大简化了对问题的描述,大大提高了程序的可重继承性大大简化了对问题的描述,大大提高了程序的可重用性,从而提高了程序设计、修改、扩充的效率

21、。用性,从而提高了程序设计、修改、扩充的效率。新类称为新类称为子类子类或或派生类派生类,原来的类称为,原来的类称为基类基类。派生可以一直。派生可以一直进行下去,形成一个派生树。进行下去,形成一个派生树。“面向对象面向对象”程序设计的特点程序设计的特点语文、数学、英语、政治、语文、数学、英语、政治、物理、化学、生物物理、化学、生物多态性多态性多态性指,多态性指,同一个同一个消息消息被被不同对象不同对象接收时,接收时,产生产生不同结果不同结果,即实现,即实现同一接口,不同方法同一接口,不同方法。高中生计计 算算平均成绩平均成绩大学生高数、英语、计算机、线高数、英语、计算机、线性代数性代数 “面向对

22、象面向对象”程序设计的特点程序设计的特点继承继承和和多态多态性组合,可以生成很多相性组合,可以生成很多相似但又独一无二的对象。似但又独一无二的对象。继承继承性使得这性使得这些对象可以共享许多相似特性,而些对象可以共享许多相似特性,而多态多态又使同一个操作对不同对象产生不同表又使同一个操作对不同对象产生不同表现形式。这样不仅提高了程序设计的灵现形式。这样不仅提高了程序设计的灵活性,而且减轻了分别设计的负担。活性,而且减轻了分别设计的负担。1.4 算法的设计与分析算法的设计与分析1.4.1 算算 法法 的的 概概 念念 1.4.3 常常 用用 算算 法法 介介 绍绍 1.4.2 算算 法法 的的

23、表表 示示1.4.1 算算 法法 的的 概概 念念 通俗地说,算法就是解决问题的步骤。通俗地说,算法就是解决问题的步骤。算法是程序设计学习的重点。算法是程序设计学习的重点。用计算机解决问题的算法应具有以下特征:用计算机解决问题的算法应具有以下特征: 可执行性可执行性 确定性确定性 有穷性有穷性(1)(1) 可输入输出信息可输入输出信息1.4.2算法的表示及三种基本结构算法的表示及三种基本结构3 循循 环环 结结 构构1 1 顺顺 序序 结结 构构2 分分 支支 结结 构构num115;1.4.2算法的表示及三种基本结构算法的表示及三种基本结构(1) 顺序结构顺序结构【例【例1 11 1】 求两

24、求两数之和。数之和。块1块2块3流程图 寄存器35显示结果:显示结果:35 num115 num220 sum35num220;sumnum1+num2; 演示算法执行过程演示算法执行过程输出输出sum;1.4.2算法的表示及三种基本结构算法的表示及三种基本结构(2) 分支结构分支结构【例【例12】 输入三个数,输出其中的最大数。输入三个数,输出其中的最大数。 x7;y12;z10;if(xy) maxx;else max y;if (zmax) maxz;输出输出max;x7y12z10CPUmax12比较比较比较比较显示结果:显示结果:12流程图流程图条件块1块2真假演示算法执行过程演示算

25、法执行过程1.4.2算法的表示及三种基本结构算法的表示及三种基本结构(3) 循环结构循环结构流程图流程图条件块真假【例【例1 13 3】求】求4 4个整数的和。个整数的和。 0sum4count12x显示结果:显示结果:59演示算法执行过程演示算法执行过程123142621642118600count4; /整数个数整数个数sum0; /累加和的初值累加和的初值while (count0) x输入一个整数输入一个整数; s u m s u m + x ; countcount-1;输出输出sum;1.4.3 常用算法介绍常用算法介绍1. 直接法直接法2.枚举法枚举法3.递推法递推法解决的问题的

26、种类与复杂程度各不相同决定了算解决的问题的种类与复杂程度各不相同决定了算法的多样性,但从其思想方法上可以将其归为以下几法的多样性,但从其思想方法上可以将其归为以下几种:直接法、枚举法、递推法、递归法、回溯法等等。种:直接法、枚举法、递推法、递归法、回溯法等等。本节本节 将介绍以下三种:将介绍以下三种:1.4.3 常用算法介绍常用算法介绍1 直接法直接法 直接法就是根据问题给出的条直接法就是根据问题给出的条件直接求解,前面的很多例子都件直接求解,前面的很多例子都是这种算法的运用。这里不再举是这种算法的运用。这里不再举例。例。1.4.3 常用算法介绍常用算法介绍2 枚举法枚举法枚举法也称枚举法也称

27、穷举法穷举法,基本思想是,在有限范,基本思想是,在有限范围内围内列举所有可能列举所有可能的结果,找出其中符合要求的结果,找出其中符合要求的解。的解。枚举法适合求解的问题是:问题可能的答案枚举法适合求解的问题是:问题可能的答案是有限个且答案是可知的,但又难以用解析法是有限个且答案是可知的,但又难以用解析法描述。这种算法通常需要用描述。这种算法通常需要用循环结构循环结构来完成。来完成。请看下例:请看下例:【例【例14】 给定一个正整数,判断其非给定一个正整数,判断其非负整数立方根是否存在,若存在,输出负整数立方根是否存在,若存在,输出该立方根。该立方根。1.4.3 常用算法介绍常用算法介绍算法如下

28、:算法如下:分析:设某正整数为分析:设某正整数为2727,则非负整数立方根,则非负整数立方根的取值范围为的取值范围为127127,因此可在这一范围内对,因此可在这一范围内对所有整数进行检测,满足立方根为所有整数进行检测,满足立方根为2727的就是的就是所求整数。所求整数。【例【例14】求非负整数立方根算法:】求非负整数立方根算法:1.4.3 常用算法介绍常用算法介绍numcube_root271显示结果:显示结果:3演示算法执行过程演示算法执行过程比比较较c*c*c2比比较较c*c*c3比比较较c*c*cnum27;cube_root1;/立方根初值立方根初值while (cube_rootn

29、um) 输出输出 “无整数立方根无整数立方根”;1.4.3 常用算法介绍常用算法介绍【例【例15】 判断一个正整数是否素数,给出相应结果。判断一个正整数是否素数,给出相应结果。分析:假设正整数分析:假设正整数num, num, 如果如果numnum不是不是2 2,需要检测它是否含有除需要检测它是否含有除1 1和它本身之外的和它本身之外的其他因子,如果有,就不是素数。检测其他因子,如果有,就不是素数。检测方法是在方法是在2 2 num-1num-1范围内逐个验证。实际范围内逐个验证。实际上可以证明在上可以证明在2 2 numnum平方根范围内逐个平方根范围内逐个验证即可。验证即可。假定假定num

30、num为为9 9,算法如下:,算法如下:num1.4.3 常用算法介绍常用算法介绍【例【例15】 判断判断9是否素数算法是否素数算法num9i2k3显示结果:不是素数显示结果:不是素数演示算法执行过程演示算法执行过程比比较较求求余余为为0比比较较求求余余不为不为03为为0比比较较求求余余num9; if (num=2) 输出输出 “是素数是素数”;else i2; ksqrt(num); /平方根取整平方根取整 while (ik)输出输出 “是素数是素数”; else 输出输出 “不是素数不是素数”;1.4.3 常用算法介绍常用算法介绍3.递推法递推法递推算法是通过问题的一个或多个已知解,递

31、推算法是通过问题的一个或多个已知解,用同样的方法逐个推算出其他解,如数列问题用同样的方法逐个推算出其他解,如数列问题以及一些近似计算问题等。通常也要借助于循以及一些近似计算问题等。通常也要借助于循环。环。请看下例:请看下例:1.4.3 常用算法介绍常用算法介绍【例【例1】求】求n! 分析:分析:n!=1 2 3n,因此可以从,因此可以从1开开 始,由始,由1!乘以乘以2得到得到2!,再乘以,再乘以3得得到到3!,以此推出,以此推出n!。假定假定n n4 4,算法如下:,算法如下:ni2factorial1.4.3 常用算法介绍常用算法介绍【例【例1】求】求n!算法:算法:显示结果:显示结果:2

32、4演示算法执行过程演示算法执行过程124比比较较23比比较较64比比较较24比比较较5factorial1; /阶乘初值阶乘初值i2;n 4;while (i=n) factorialfactorial*i ;ii+1;输出输出 factorial;1.5 C语言与面向对象的语言与面向对象的C C C语言是七十年代初贝尔实验室的语言是七十年代初贝尔实验室的Dennis Dennis Richie Richie 等人在等人在B B语言基础上开发出来的。语言基础上开发出来的。C C最初是作最初是作为为UNIXUNIX操作系统的开发语言为人们所认识。七十年操作系统的开发语言为人们所认识。七十年代末,

33、随着微型计算机的发展,代末,随着微型计算机的发展,C C语言开始移植到非语言开始移植到非UNIXUNIX环境中,并逐步脱离环境中,并逐步脱离UNIXUNIX系统成为一种独立的系统成为一种独立的程序设计语言。程序设计语言。C C 语言版本很多,为了让开发出来语言版本很多,为了让开发出来的代码能够在多种平台上运行,的代码能够在多种平台上运行,19881988年美国国家标年美国国家标准协会准协会ANSIANSI对对C C语言进行了标准化,产生了语言进行了标准化,产生了ANSI CANSI C。1.5 C语言与面向对象的语言与面向对象的C (1 1)C C语言既具备高级语言的结构和编程环境,又提供类似

34、于汇语言既具备高级语言的结构和编程环境,又提供类似于汇编语言那样的系统资源操纵能力及程序执行效率。编语言那样的系统资源操纵能力及程序执行效率。适合解决有实时要适合解决有实时要求的问题求的问题。C语言的主要特点:(2 2)有丰富的运算符和数据类型,表达式类型多样化,可以方)有丰富的运算符和数据类型,表达式类型多样化,可以方便地实现在其他语言中较难实现的运算,对各种不同类型的程序设计便地实现在其他语言中较难实现的运算,对各种不同类型的程序设计都有良好的适应性。都有良好的适应性。(3 3)以函数为基础实现程序的结构化设计,支持大型程序的多)以函数为基础实现程序的结构化设计,支持大型程序的多文件构成及单个文件独立编译,适合大型复杂程序的设计。文件构成及单个文件独立编译,适合大型复杂程序的设计。(4)语言简洁、紧凑,使用方便、灵活,书写形式自由。)语言简洁、紧凑,使用方便、灵活,书写形式自由。(5)可移植性好。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论