好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

高级语言程序设计概述.ppt

31页
  • 卖家[上传人]:s9****2
  • 文档编号:588689855
  • 上传时间:2024-09-08
  • 文档格式:PPT
  • 文档大小:124.50KB
  • / 31 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1 1第第第第1 1 1 1章章章章 高级语言程序设计高级语言程序设计高级语言程序设计高级语言程序设计概述概述概述概述 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述2 2第第1 1章:概章:概 述述 u主要知识点主要知识点ØØ   程序程序程序程序设计语设计语言的言的言的言的发发展展展展ØØ   常用程序常用程序常用程序常用程序设计语设计语言言言言ØØ   面向面向面向面向对对象程序象程序象程序象程序设计语设计语言的特点言的特点言的特点言的特点ØØ   C C语语言程序的言程序的言程序的言程序的结结构构构构ØØ   算法的概念算法的概念算法的概念算法的概念ØØ   软软件工程的概念件工程的概念件工程的概念件工程的概念   u本章导读本章导读        所有的所有的所有的所有的软软件都是用件都是用件都是用件都是用计计算机程序算机程序算机程序算机程序设计语设计语言言言言编编写的程序写的程序写的程序写的程序设设计语计语言言言言(programming language)(programming language)是一是一是一是一组组用来定用来定用来定用来定义计义计算机算机算机算机程序的程序的程序的程序的语语法法法法规则规则,分,分,分,分为为低低低低级语级语言和高言和高言和高言和高级语级语言。

      本章通言本章通言本章通言本章通过过C C程序程序程序程序实实例,使例,使例,使例,使读读者理解高者理解高者理解高者理解高级语级语言程序言程序言程序言程序设计设计的概念    高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述3 3          程序程序程序程序设计语设计语言按照言按照言按照言按照语语言言言言级别级别可以分可以分可以分可以分为为低低低低级语级语言和高言和高言和高言和高级语级语言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿低低低低级语级语言有机器言有机器言有机器言有机器语语言和言和言和言和汇编语汇编语言低级语级语言言言言与特定的机器有关,其功效高,但使用复与特定的机器有关,其功效高,但使用复与特定的机器有关,其功效高,但使用复与特定的机器有关,其功效高,但使用复杂杂、繁、繁、繁、繁琐琐、、、、费时费时、易出差、易出差、易出差、易出差错错机器语语言是表示成数言是表示成数言是表示成数言是表示成数码码形形形形式的机器基本指令集式的机器基本指令集式的机器基本指令集式的机器基本指令集汇编语汇编语言是机器言是机器言是机器言是机器语语言中部言中部言中部言中部分符号化的分符号化的分符号化的分符号化的结结果。

      果￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿高高高高级语级语言的表示方法要比低言的表示方法要比低言的表示方法要比低言的表示方法要比低级语级语言更接近于言更接近于言更接近于言更接近于待解待解待解待解问题问题的表示方法,其特点是在一定程度上与的表示方法,其特点是在一定程度上与的表示方法,其特点是在一定程度上与的表示方法,其特点是在一定程度上与具体机器无关,易学、易用、易具体机器无关,易学、易用、易具体机器无关,易学、易用、易具体机器无关,易学、易用、易维护维护1.1 1.1 程序设计语言的发展程序设计语言的发展 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述4 41.1.1 1.1.1 程序设计语言的简介程序设计语言的简介((((1 1)机器)机器)机器)机器语语言言言言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿电电子子子子计计算机使用的是由算机使用的是由算机使用的是由算机使用的是由“ “0 0” ”和和和和“ “1 1” ”组组成的二成的二成的二成的二进进制数,制数,制数,制数,二二二二进进制数是制数是制数是制数是计计算机的算机的算机的算机的语语言的基言的基言的基言的基础础。

      计计算机算机算机算机发发明之初,人明之初,人明之初,人明之初,人们们只能用只能用只能用只能用计计算机的算机的算机的算机的语语言去命令言去命令言去命令言去命令计计算机工作,也就是写出算机工作,也就是写出算机工作,也就是写出算机工作,也就是写出一串串由一串串由一串串由一串串由“ “0 0” ”和和和和“ “1 1” ”组组成的指令序列交由成的指令序列交由成的指令序列交由成的指令序列交由计计算机算机算机算机执执行,行,行,行,这这种种种种语语言就是机器言就是机器言就是机器言就是机器语语言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿机器机器机器机器语语言是第一代言是第一代言是第一代言是第一代计计算机算机算机算机语语言￿￿￿￿￿￿￿￿((((2 2))))汇编语汇编语言言言言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿为为了克服机器了克服机器了克服机器了克服机器语语言言言言难读难读、、、、难编难编、、、、难记难记和易出和易出和易出和易出错错的缺点,的缺点,的缺点,的缺点,人人人人们们用与代用与代用与代用与代码码指令指令指令指令实际实际含含含含义义相近的英文相近的英文相近的英文相近的英文缩缩写写写写词词、字母和、字母和、字母和、字母和数字等符号取代指令代数字等符号取代指令代数字等符号取代指令代数字等符号取代指令代码码,例如,用,例如,用,例如,用,例如,用ADDADD代表加法,用代表加法,用代表加法,用代表加法,用MOVMOV代表数据代表数据代表数据代表数据传递传递等,等,等,等,这样这样,人,人,人,人们们能能能能较较容易容易容易容易读读懂并理解懂并理解懂并理解懂并理解程序,使得程序,使得程序,使得程序,使得纠错纠错及及及及维护变维护变得方便了,得方便了,得方便了,得方便了,这这种程序种程序种程序种程序设计语设计语言言言言称称称称为汇编语为汇编语言。

      言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿汇编语汇编语言是第二代言是第二代言是第二代言是第二代计计算机算机算机算机语语言,仍然是面向机器的言,仍然是面向机器的言,仍然是面向机器的言,仍然是面向机器的语语言 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述5 51.1.1 1.1.1 程序设计语言的简介程序设计语言的简介((((3 3)高)高)高)高级语级语言言言言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿机器机器机器机器语语言和言和言和言和汇编语汇编语言都依言都依言都依言都依赖计赖计算机硬件,要求使用者算机硬件,要求使用者算机硬件,要求使用者算机硬件,要求使用者对计对计算机硬件算机硬件算机硬件算机硬件结结构及其工作原理十分熟悉,构及其工作原理十分熟悉,构及其工作原理十分熟悉,构及其工作原理十分熟悉,这对这对非非非非计计算算算算机机机机专业专业人人人人员员是是是是难难以做到的以做到的以做到的以做到的计计算机的算机的算机的算机的发发展展展展应应用促使人用促使人用促使人用促使人们们寻寻求一些与人求一些与人求一些与人求一些与人类类自然自然自然自然语语言相接近且能言相接近且能言相接近且能言相接近且能为计为计算机所接受的算机所接受的算机所接受的算机所接受的通用易学的通用易学的通用易学的通用易学的计计算机算机算机算机语语言。

      言这这种与自然种与自然种与自然种与自然语语言相近并被言相近并被言相近并被言相近并被计计算算算算机接受和机接受和机接受和机接受和执执行的行的行的行的计计算机算机算机算机语语言称高言称高言称高言称高级语级语言高级语级语言是面言是面言是面言是面向用向用向用向用户户的的的的语语言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿机器的高机器的高机器的高机器的高级语级语言的言的言的言的发发展展展展经历经历了从早期了从早期了从早期了从早期语语言到言到言到言到结结构化程构化程构化程构化程序序序序设计语设计语言,从面向言,从面向言,从面向言,从面向过过程到非程到非程到非程到非过过程化程序程化程序程化程序程化程序语语言的言的言的言的过过程￿ ￿ ￿ ￿((((4 4)面向)面向)面向)面向对对象象象象语语言言言言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿8 08 0年代初开始,在年代初开始,在年代初开始,在年代初开始,在软软件件件件设计设计思想上,又思想上,又思想上,又思想上,又产产生了一次生了一次生了一次生了一次革命,其成果就是面向革命,其成果就是面向革命,其成果就是面向革命,其成果就是面向对对象的程序象的程序象的程序象的程序设计设计。

          高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述6 6 目前有各种高目前有各种高目前有各种高目前有各种高级级程序程序程序程序设计语设计语言,其中以下几言,其中以下几言,其中以下几言,其中以下几种种种种应应用非常广泛用非常广泛用非常广泛用非常广泛 •￿ ￿ ￿ ￿FORTRAN FORTRAN • COBOL COBOL • PASCAL PASCAL • C C语语言言言言￿ ￿ ￿ ￿•￿ ￿ ￿ ￿LISP LISP • Java Java1.1.2 1.1.2 常用的程序设计语言常用的程序设计语言( (略略) ) 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述7 71.1.3 1.1.3 发展趋势发展趋势( (略略) ) 程序程序程序程序设计语设计语言是言是言是言是软软件的重要方面它的件的重要方面它的件的重要方面它的件的重要方面它的发发展展展展趋趋势势是是是是: :•可可可可视视化化化化•智能化智能化智能化智能化•构件化 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述8 81.2.1 C1.2.1 C语言的发展语言的发展( (自学自学) )1.2.2 C1.2.2 C语言的特点语言的特点( (略略) )((((1 1))))语语言言言言简洁紧简洁紧凑、使用灵活方便凑、使用灵活方便凑、使用灵活方便凑、使用灵活方便￿ ￿ ￿ ￿((((2 2)运算符丰富)运算符丰富)运算符丰富)运算符丰富((((3 3)数据)数据)数据)数据结结构丰富构丰富构丰富构丰富((((4 4))))C C是是是是结结构式构式构式构式语语言言言言((((5 5))))语语法限制不太法限制不太法限制不太法限制不太严严格、程序格、程序格、程序格、程序设计设计自由度大自由度大自由度大自由度大((((6 6)允)允)允)允许许直接直接直接直接访问访问物理地址,可以直接物理地址,可以直接物理地址,可以直接物理地址,可以直接对对硬件硬件硬件硬件进进行操作行操作行操作行操作((((7 7)程序)程序)程序)程序执执行效率高行效率高行效率高行效率高((((8 8)适用范)适用范)适用范)适用范围围大,可移植性好大,可移植性好大,可移植性好大,可移植性好1.2 C1.2 C程序及其程序的基本组成程序及其程序的基本组成 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述9 91.2.3 C1.2.3 C语言程序的结构语言程序的结构/* This is a C program. */         /* This is a C program. */         #include   /* #include   /* 预处预处理命令理命令理命令理命令 *  */ /void main( )            /*void main( )            /*无参数无返回无参数无返回无参数无返回无参数无返回值值的主函数的主函数的主函数的主函数* */ /{                     /*{                     /*程序开始程序开始程序开始程序开始* */ /    int a,b,c;           /*    int a,b,c;           /*定定定定义变义变量量量量* */ /    a=100;    b=200;     /*    a=100;    b=200;     /*语语句句句句* */ /    c=a+b;             c=a+b;             printf(“The sum of two integer is %d”, c);            printf(“The sum of two integer is %d”, c);        }                     /*}                     /*程序程序程序程序结结束束束束* */ /声明声明声明声明部分部分部分部分执执行行行行部分部分部分部分函函函函数数数数体体体体例例例例1-1 1-1 输入两个整数,计算这两个整数的和。

      上机演示)输入两个整数,计算这两个整数的和上机演示)输入两个整数,计算这两个整数的和上机演示)输入两个整数,计算这两个整数的和上机演示)运行运行运行运行结结果:果:果:果:The sum of two integer is 300The sum of two integer is 300 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1010例例例例1-2 1-2 用自定义函数的方法计算这两个整数的和上机演示)用自定义函数的方法计算这两个整数的和上机演示)用自定义函数的方法计算这两个整数的和上机演示)用自定义函数的方法计算这两个整数的和上机演示)运行运行运行运行结结果:果:果:果:The sum of two integer is 300The sum of two integer is 300/* This is a C program.*/         /* This is a C program.*/         #include           #include           /* /*预处预处理命令理命令理命令理命令* * * */ /int sum(int a, int b)int sum(int a, int b);;;;     // //教材此教材此教材此教材此处处有有有有误误,,,,应应加上加上加上加上该语该语句句句句void main( )               void main( )               /* /*无参数无返回无参数无返回无参数无返回无参数无返回值值的主函数的主函数的主函数的主函数* * * */ /{                                 {                                 /* /*程序开始程序开始程序开始程序开始* * * */ /    int x,y,s;                  int x,y,s;              /* /*定定定定义变义变量量量量* * * */ /    x=100;  y=200;             x=100;  y=200;         /* /*语语句句句句* * * */ /    s=sum(x,y);             s=sum(x,y);             printf(“The sum of two integer is %d”, s);            printf(“The sum of two integer is %d”, s);        }                        }                        /* /*程序程序程序程序结结束束束束* * * */ /int sum(int a, int b)          int sum(int a, int b)          /* /*有参数、有返回有参数、有返回有参数、有返回有参数、有返回值值的自定的自定的自定的自定义义函数函数函数函数* * * */ /{ {    int c;             int c;         /* /*定定定定义变义变量量量量* * * */ /        c=a+b;c=a+b;    return(c);          return(c);      /* /*返回整数返回整数返回整数返回整数c*/c*/} }声明声明声明声明部分部分部分部分执执行行行行部分部分部分部分主主主主函函函函数数数数体体体体声明部分声明部分声明部分声明部分执执行部分行部分行部分行部分自自自自定定定定义义函函函函数数数数体体体体 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述11111.3 1.3 面向对象程序设计的基本思想面向对象程序设计的基本思想( (略略) )•面向面向面向面向对对象方法象方法象方法象方法(Object-Oriented(Object-Oriented   MethodMethod,,,,OOOO方法方法方法方法) )是一种把面向是一种把面向是一种把面向是一种把面向对对象的思想象的思想象的思想象的思想应应用于用于用于用于软软件开件开件开件开发发过过程中,指程中,指程中,指程中,指导导开开开开发发活活活活动动的系的系的系的系统统方法,方法,方法,方法,简简称称称称OOOO   (Object-Oriented)(Object-Oriented)方法,是建立在方法,是建立在方法,是建立在方法,是建立在“ “对对象象象象” ”概念基概念基概念基概念基础础上的方法学。

      面向上的方法学面向上的方法学面向上的方法学面向对对象的程序象的程序象的程序象的程序设计设计方法方法方法方法强调强调在在在在软软件开件开件开件开发过发过程中面向待求解程中面向待求解程中面向待求解程中面向待求解总总是域是域是域是域中的事物,它的基本特征主要包括抽象性、封中的事物,它的基本特征主要包括抽象性、封中的事物,它的基本特征主要包括抽象性、封中的事物,它的基本特征主要包括抽象性、封装性、装性、装性、装性、继继承性和多承性和多承性和多承性和多态态性 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1212• •计计算机算机算机算机产产生的初期主要用于科学生的初期主要用于科学生的初期主要用于科学生的初期主要用于科学计计算,算,算,算,这这些些些些问题问题的求的求的求的求解主要是解主要是解主要是解主要是过过程程程程计计算,因此算,因此算,因此算,因此软软件件件件设计设计的主要目的主要目的主要目的主要目标标是是是是设计设计求解求解求解求解问题问题的的的的过过程,所以,程,所以,程,所以,程,所以,传统传统的程序的程序的程序的程序设计设计主要采用面主要采用面主要采用面主要采用面向向向向过过程的程的程的程的设计设计方法。

      随着方法随着方法随着方法随着计计算机技算机技算机技算机技术术的的的的发发展,展,展,展,计计算机算机算机算机的的的的应应用越来越广泛,用越来越广泛,用越来越广泛,用越来越广泛,计计算机的算机的算机的算机的应应用不再用不再用不再用不再仅仅限于科学限于科学限于科学限于科学计计算,算,算,算,计计算机算机算机算机处处理的理的理的理的问题变问题变得得得得庞庞大而复大而复大而复大而复杂杂,面向,面向,面向,面向过过程的程的程的程的结结构化程序构化程序构化程序构化程序设计设计方法的局限性明方法的局限性明方法的局限性明方法的局限性明显显表露出来,主要是表露出来,主要是表露出来,主要是表露出来,主要是结结构化程序构化程序构化程序构化程序设计设计方法将数据与方法将数据与方法将数据与方法将数据与处处理数据的理数据的理数据的理数据的过过程分离,程分离,程分离,程分离,当数据当数据当数据当数据结结构改构改构改构改变时变时,相关的,相关的,相关的,相关的处处理理理理过过程通常需要全部或程通常需要全部或程通常需要全部或程通常需要全部或部分部分部分部分进进行修改,因此代行修改,因此代行修改,因此代行修改,因此代码码的重用性差。

      的重用性差的重用性差的重用性差• •另外,另外,另外,另外,图图形用形用形用形用户户面的普及使面的普及使面的普及使面的普及使软软件的使用者越来越方便,件的使用者越来越方便,件的使用者越来越方便,件的使用者越来越方便,而而而而软软件的开件的开件的开件的开发发者却越来越因者却越来越因者却越来越因者却越来越因难难,它,它,它,它们们很很很很难难用用用用过过程程程程语语言言言言来来来来实现实现,,,,这时这时面向面向面向面向对对象的程序象的程序象的程序象的程序设计设计方法方法方法方法产产生了1.3.1 1.3.1 面向对象方法的产生面向对象方法的产生 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1313•面向面向面向面向对对象的程序象的程序象的程序象的程序设计设计方法有三个方法有三个方法有三个方法有三个优优点:点:点:点:((((1 1)程序的可)程序的可)程序的可)程序的可维护维护性好面向性好面向性好面向性好面向对对象程序易于象程序易于象程序易于象程序易于阅阅读读和理解,程序的复和理解,程序的复和理解,程序的复和理解,程序的复杂杂性有所降低;性有所降低;性有所降低;性有所降低;((((2 2)程序易修改:程序)程序易修改:程序)程序易修改:程序)程序易修改:程序员员可以通可以通可以通可以通过过添加或添加或添加或添加或删删除除除除对对象,象,象,象,较较容易地容易地容易地容易地实现实现修改、添加或修改、添加或修改、添加或修改、添加或删删除程序;除程序;除程序;除程序;((((3 3)可重用性好:)可重用性好:)可重用性好:)可重用性好:对对象可以使用多次程序象可以使用多次程序象可以使用多次程序象可以使用多次程序员员可可可可以根据需要将以根据需要将以根据需要将以根据需要将类类和和和和对对象保存起来,随象保存起来,随象保存起来,随象保存起来,随时时插入到插入到插入到插入到应应用程序中,无需作修改。

      用程序中,无需作修改用程序中,无需作修改用程序中,无需作修改    高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1414• •面向面向面向面向对对象程序象程序象程序象程序设计设计的基本思想的基本思想的基本思想的基本思想认为认为客客客客观观世界由各种各世界由各种各世界由各种各世界由各种各样样的的的的对对象象象象组组成,每一成,每一成,每一成,每一类类型的型的型的型的对对象都有各自的内部状象都有各自的内部状象都有各自的内部状象都有各自的内部状态态和行和行和行和行为规为规律,律,律,律,不同不同不同不同对对象象象象间间的相互的相互的相互的相互联联系和作用构成了不同的系系和作用构成了不同的系系和作用构成了不同的系系和作用构成了不同的系统统,形成了客,形成了客,形成了客,形成了客观观世界￿ ￿ ￿ ￿• •面向面向面向面向对对象程序象程序象程序象程序设计设计方法中的方法中的方法中的方法中的对对象是构成象是构成象是构成象是构成软软件系件系件系件系统统的一个基本的一个基本的一个基本的一个基本单单位,是系位,是系位,是系位,是系统统用以描述客用以描述客用以描述客用以描述客观观事物的一个事物的一个事物的一个事物的一个实实例。

      例对对象由一象由一象由一象由一组组属属属属性和一性和一性和一性和一组组行行行行为为构成,属性是用来描述构成,属性是用来描述构成,属性是用来描述构成,属性是用来描述对对象静象静象静象静态态特征的数据特征的数据特征的数据特征的数据项项,,,,行行行行为为是用来描述是用来描述是用来描述是用来描述对对象象象象动态动态特征的一系列操作特征的一系列操作特征的一系列操作特征的一系列操作对对象是具有属象是具有属象是具有属象是具有属性和行性和行性和行性和行为为的封装体的封装体的封装体的封装体• •类类是具有相同属性和行是具有相同属性和行是具有相同属性和行是具有相同属性和行为为的一的一的一的一组对组对象的集合,它是属于同一象的集合,它是属于同一象的集合,它是属于同一象的集合,它是属于同一类类的全部的全部的全部的全部对对象提供了象提供了象提供了象提供了统统一的抽象描述一的抽象描述一的抽象描述一的抽象描述类类是是是是对对象的集合和再象的集合和再象的集合和再象的集合和再抽象类类是具有相同属性和行是具有相同属性和行是具有相同属性和行是具有相同属性和行为为的一的一的一的一组对组对象的集合它象的集合它象的集合它象的集合。

      它为为属属属属于于于于该类该类的全部的全部的全部的全部对对象提供了象提供了象提供了象提供了统统一的抽象描述一的抽象描述一的抽象描述一的抽象描述• •具有相同或相似性具有相同或相似性具有相同或相似性具有相同或相似性质质的的的的对对象的抽象就是象的抽象就是象的抽象就是象的抽象就是类类因此,对对象的抽象的抽象的抽象的抽象是象是象是象是类类,,,,类类的具体化就是的具体化就是的具体化就是的具体化就是对对象,也可以象,也可以象,也可以象,也可以说类说类的的的的实实例是例是例是例是对对象1.3.2 1.3.2 类与对象的概念类与对象的概念 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1515• •一个面向一个面向一个面向一个面向对对象的程序由象的程序由象的程序由象的程序由许许多多多多对对象象象象组组成,成,成,成,这这些些些些对对象之象之象之象之间间需要需要需要需要相互沟通相互沟通相互沟通相互沟通对对象之象之象之象之间间通通通通过过收收收收发发消息相互沟通,消息相互沟通,消息相互沟通,消息相互沟通,类类似于人与似于人与似于人与似于人与人之人之人之人之间间的信息的信息的信息的信息传递传递。

      不同不同对对象之象之象之象之间间通通通通过发过发送消息向送消息向送消息向送消息向对对方提方提方提方提出服出服出服出服务务,接受消息的,接受消息的,接受消息的,接受消息的对对象主象主象主象主动动完成所完成所完成所完成所请请求的服求的服求的服求的服务务,,,,这这种通种通种通种通信机制称信机制称信机制称信机制称为为消息消息消息消息传递传递传递传递消息的内容包括接收消息的消息的内容包括接收消息的消息的内容包括接收消息的消息的内容包括接收消息的对对象的名字,需要象的名字,需要象的名字,需要象的名字,需要调调用的函数的名字,以及必要的信息用的函数的名字,以及必要的信息用的函数的名字,以及必要的信息用的函数的名字,以及必要的信息• •同一个同一个同一个同一个对对象可以接受不同形式的多个消息,象可以接受不同形式的多个消息,象可以接受不同形式的多个消息,象可以接受不同形式的多个消息,产产生的消息各生的消息各生的消息各生的消息各不相同;相同形式的消息可以不相同;相同形式的消息可以不相同;相同形式的消息可以不相同;相同形式的消息可以发发送送送送给给不同的不同的不同的不同的对对象,象,象,象,产产生的生的生的生的响响响响应应可以各不相同;一个可以各不相同;一个可以各不相同;一个可以各不相同;一个对对象可以立即响象可以立即响象可以立即响象可以立即响应发应发送送送送给给它的消它的消它的消它的消息,也可以息,也可以息,也可以息,也可以暂暂不响不响不响不响应应消息。

      程序的消息程序的消息程序的消息程序的执执行取决于事件行取决于事件行取决于事件行取决于事件发发生的生的生的生的顺顺序,由所序,由所序,由所序,由所产产生的消息来生的消息来生的消息来生的消息来驱动驱动程序的程序的程序的程序的执执行,不需要行,不需要行,不需要行,不需要预预先确先确先确先确定消息定消息定消息定消息产产生的生的生的生的顺顺序• •消息机制消息机制消息机制消息机制为对为对象象象象间间提供了一个提供了一个提供了一个提供了一个动态联动态联系的途径,使它系的途径,使它系的途径,使它系的途径,使它们们的的的的行行行行为为能互相配合,构成一个有机的运行系能互相配合,构成一个有机的运行系能互相配合,构成一个有机的运行系能互相配合,构成一个有机的运行系统统1.3.3 1.3.3 消息的概念消息的概念 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1616(1) (1) 抽象性抽象性抽象性抽象性￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿在系在系在系在系统统开开开开发发中,抽象指的是在决定如何中,抽象指的是在决定如何中,抽象指的是在决定如何中,抽象指的是在决定如何实现对实现对象之前的象之前的象之前的象之前的对对象的意象的意象的意象的意义义和行和行和行和行为为。

      抽象指抽象指仅仅表表表表现现核心的特性而不描述背景核心的特性而不描述背景核心的特性而不描述背景核心的特性而不描述背景细节细节的行的行的行的行为为使用抽象可以尽可能避免使用抽象可以尽可能避免使用抽象可以尽可能避免使用抽象可以尽可能避免过过早考早考早考早考虑虑一些一些一些一些细节细节2) (2) 封装性封装性封装性封装性￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿把数据和函数包装在一个把数据和函数包装在一个把数据和函数包装在一个把数据和函数包装在一个单单独的独的独的独的单单元(称元(称元(称元(称为类为类)的行)的行)的行)的行为为称称称称为为封装数据封装是封装数据封装是封装数据封装是封装数据封装是类类的最典型特点的最典型特点的最典型特点的最典型特点￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿一个一个一个一个对对象就是一个封装了数据和操作象就是一个封装了数据和操作象就是一个封装了数据和操作象就是一个封装了数据和操作这这些数据的代些数据的代些数据的代些数据的代码码的的的的逻辑实逻辑实体￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿封装性构成了面向封装性构成了面向封装性构成了面向封装性构成了面向对对象方法的基象方法的基象方法的基象方法的基础础,封装性是保,封装性是保,封装性是保,封装性是保证软证软件件件件部件具有部件具有部件具有部件具有优优良的模良的模良的模良的模块块性的基性的基性的基性的基础础。

      对对象是封装的最基本象是封装的最基本象是封装的最基本象是封装的最基本单单位封装防止了程序相互依封装防止了程序相互依封装防止了程序相互依封装防止了程序相互依赖赖性而性而性而性而带带来的来的来的来的变动变动影响面向影响面向影响面向影响面向对对象的象的象的象的封装比封装比封装比封装比传统语传统语言的封装更言的封装更言的封装更言的封装更为为清晰、更清晰、更清晰、更清晰、更为为有力因而,有力因而,有力因而,有力因而,这这种方种方种方种方法的法的法的法的创创始人始人始人始人CoddCodd和和和和YOuMnYOuMn认为认为,面向,面向,面向,面向对对象就是象就是象就是象就是“ “对对象十属象十属象十属象十属性十方法性十方法性十方法性十方法” ”1.3.4 1.3.4 面向对象程序设计的特点面向对象程序设计的特点 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1717(3) (3) 继继承性承性承性承性￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿继继承性是承性是承性是承性是面向面向面向面向对对象程序象程序象程序象程序设计设计语语言不同于其它言不同于其它言不同于其它言不同于其它语语言的最言的最言的最言的最重要的特点,是其他重要的特点,是其他重要的特点,是其他重要的特点,是其他语语言所没有的。

      言所没有的言所没有的言所没有的￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿继继承性是承性是承性是承性是类类特有的性特有的性特有的性特有的性质质,,,,类类可以派生出子可以派生出子可以派生出子可以派生出子类类,子,子,子,子类类自自自自动继动继承父承父承父承父类类的属性与方法,的属性与方法,的属性与方法,的属性与方法,这这是是是是类类之之之之间间的一种关系在定的一种关系在定的一种关系在定的一种关系在定义义和和和和实现实现一个一个一个一个类类的的的的时时候,可以在一个已候,可以在一个已候,可以在一个已候,可以在一个已经经存在的存在的存在的存在的类类的基的基的基的基础础之上来之上来之上来之上来进进行,把行,把行,把行,把这这个已个已个已个已经经存在的存在的存在的存在的类类所定所定所定所定义义的内容作的内容作的内容作的内容作为为自己自己自己自己的内容,并加入若干新的内容的内容,并加入若干新的内容的内容,并加入若干新的内容的内容,并加入若干新的内容这样这样可大大提高可大大提高可大大提高可大大提高软软件的可件的可件的可件的可重用性￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿继继承性是子承性是子承性是子承性是子类类自自自自动动共享父共享父共享父共享父类类数据数据数据数据结结构和方法的机制,构和方法的机制,构和方法的机制,构和方法的机制,在在在在类层类层次中,子次中,子次中,子次中,子类类只只只只继继承一个父承一个父承一个父承一个父类类的数据的数据的数据的数据结结构和方法,构和方法,构和方法,构和方法,则则称称称称为单为单重重重重继继承,子承,子承,子承,子类继类继承了多个父承了多个父承了多个父承了多个父类类的数据的数据的数据的数据结结构和方法,构和方法,构和方法,构和方法,则则称称称称为为多重多重多重多重继继承。

      在承在软软件开件开件开件开发发中,中,中,中,类类的的的的继继承性使所建立的承性使所建立的承性使所建立的承性使所建立的软软件具有开放性、可件具有开放性、可件具有开放性、可件具有开放性、可扩扩充性￿ ￿ ￿ ￿(4) (4) 多多多多态态性性性性￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿多多多多态态性是指相同的操作或函数、性是指相同的操作或函数、性是指相同的操作或函数、性是指相同的操作或函数、过过程可作用于多种程可作用于多种程可作用于多种程可作用于多种类类型型型型的的的的对对象上并象上并象上并象上并获获得不同的得不同的得不同的得不同的结结果   1.3.4 1.3.4 面向对象程序设计的特点面向对象程序设计的特点 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1818目前常用的面向目前常用的面向目前常用的面向目前常用的面向对对象程序象程序象程序象程序设计语设计语言有言有言有言有C++C++、、、、JavaJava、、、、Visual BASICVisual BASIC等1) C++(1) C++ C++ C++是美国是美国是美国是美国BellBell实验实验室于二十世室于二十世室于二十世室于二十世纪纪八十年代在八十年代在八十年代在八十年代在C C语语言的基言的基言的基言的基础础上开上开上开上开发发出来的,是目前已出来的,是目前已出来的,是目前已出来的,是目前已经经得到广泛得到广泛得到广泛得到广泛应应用的面向用的面向用的面向用的面向对对象程序象程序象程序象程序设计语设计语言。

      言C++C++保留了保留了保留了保留了C C语语言的全部言的全部言的全部言的全部优优点,增加了面向点,增加了面向点,增加了面向点,增加了面向对对象象象象的机制,支持面向的机制,支持面向的机制,支持面向的机制,支持面向对对象程序象程序象程序象程序设计设计方法C++C++既可以用于既可以用于既可以用于既可以用于结结构化程序构化程序构化程序构化程序设计设计,又可以用于面向,又可以用于面向,又可以用于面向,又可以用于面向对对象程序象程序象程序象程序设计设计,是一种混合型面向,是一种混合型面向,是一种混合型面向,是一种混合型面向对对象程序象程序象程序象程序设计语设计语言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿C++C++是面向是面向是面向是面向对对象的大型程序象的大型程序象的大型程序象的大型程序设计语设计语言,言,言,言,应应用于各种用于各种用于各种用于各种应应用用用用领领域目前有各种版本的域目前有各种版本的域目前有各种版本的域目前有各种版本的C++C++编译编译系系系系统统,国内比,国内比,国内比,国内比较较流行的有流行的有流行的有流行的有Visual C++Visual C++和和和和Borland C++Borland C++,,,,C++C++的的的的类库类库包括包括包括包括BorlandBorland的的的的OWLOWL和和和和MicrosoftMicrosoft的的的的MFCMFC。

      2) Java(2) Java语语言言言言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿19951995年年年年6 6月月月月SunSun公司推出了一种公司推出了一种公司推出了一种公司推出了一种纯纯粹面向粹面向粹面向粹面向对对象程序象程序象程序象程序设计设计的的的的语语言言言言JavaJava传统传统的程序的程序的程序的程序设计设计语语言言言言编编写的写的写的写的软软件一般与具体的件一般与具体的件一般与具体的件一般与具体的实现环实现环境有关,如果境有关,如果境有关,如果境有关,如果环环境境境境发发生生生生变变化,化,化,化,则软则软件需要做件需要做件需要做件需要做较较大的修大的修大的修大的修改,而改,而改,而改,而JavaJava编编写的写的写的写的软软件的件的件的件的执执行代行代行代行代码码具有兼容性,它具有兼容性,它具有兼容性,它具有兼容性,它编编写的写的写的写的软软件可以在有件可以在有件可以在有件可以在有JavaJava解解解解释释器的各种器的各种器的各种器的各种系系系系统统上运行￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿JavaJava程序有两种程序有两种程序有两种程序有两种类类型:一是可在网型:一是可在网型:一是可在网型:一是可在网页页上运行的上运行的上运行的上运行的AppletApplet小小小小应应用程序,它不能用程序,它不能用程序,它不能用程序,它不能单单独运行,独运行,独运行,独运行,必必必必须须嵌入嵌入嵌入嵌入HTMLHTML文件中,由文件中,由文件中,由文件中,由WebWeb浏览浏览器器器器执执行;另一行;另一行;另一行;另一类类是可以是可以是可以是可以单单独独独独执执行的行的行的行的JavaJava应应用程序,可用程序,可用程序,可用程序,可完成各种功能。

      完成各种功能完成各种功能完成各种功能￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿JavaJava是网是网是网是网络络世界的通用世界的通用世界的通用世界的通用语语言,它提供了丰富的言,它提供了丰富的言,它提供了丰富的言,它提供了丰富的类库类库,具有,具有,具有,具有强强大的大的大的大的图图形、形、形、形、图图像、像、像、像、动动画、画、画、画、音音音音频频、、、、视频视频、多、多、多、多线线程及网程及网程及网程及网络络交互能力,具有面向交互能力,具有面向交互能力,具有面向交互能力,具有面向对对象性、与平台无关性、可移植性、安全象性、与平台无关性、可移植性、安全象性、与平台无关性、可移植性、安全象性、与平台无关性、可移植性、安全性、性、性、性、动态动态性,并具有并性,并具有并性,并具有并性,并具有并发发机制目前机制目前机制目前机制目前JavaJava已成已成已成已成为应为应用最广泛的网用最广泛的网用最广泛的网用最广泛的网络编络编程程程程语语言之一3) Visual BASIC(3) Visual BASIC语语言言言言￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿19911991年年年年MicrosoftMicrosoft在原在原在原在原BASICBASIC语语言的基言的基言的基言的基础础上推出了可上推出了可上推出了可上推出了可视视化面向化面向化面向化面向对对象象象象编编程程程程语语言言言言Visual Visual BASICBASIC。

      VBVB继继承了承了承了承了BASICBASIC语语言的特点,具有言的特点,具有言的特点,具有言的特点,具有语语法法法法简单简单、容易学、容易学、容易学、容易学习习、容易使用、数据、容易使用、数据、容易使用、数据、容易使用、数据处处理理理理能力能力能力能力强强的特点,同的特点,同的特点,同的特点,同时时采用了面向采用了面向采用了面向采用了面向对对象、事件象、事件象、事件象、事件驱动驱动的的的的编编程机制和可程机制和可程机制和可程机制和可视视化程序化程序化程序化程序设计设计方法,有效方法,有效方法,有效方法,有效地提高了地提高了地提高了地提高了应应用程序开用程序开用程序开用程序开发发的效率同的效率同的效率同的效率同时时VBVB还还具有具有具有具有强强大的多媒体及网大的多媒体及网大的多媒体及网大的多媒体及网络编络编程功能,可以程功能,可以程功能,可以程功能,可以编编写写写写强强大的多媒体大的多媒体大的多媒体大的多媒体处处理程序和数据理程序和数据理程序和数据理程序和数据库应库应用程序1.3.5 1.3.5 面向对象程序设计语言面向对象程序设计语言 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1919 当当当当C C语语言程序代言程序代言程序代言程序代码码达到达到达到达到2500025000行以上后,行以上后,行以上后,行以上后,维护维护和修改工作和修改工作和修改工作和修改工作变变得相当困得相当困得相当困得相当困难难。

      为为了了了了满满足管理程序复足管理程序复足管理程序复足管理程序复杂杂性的需要,性的需要,性的需要,性的需要,贝尔实验贝尔实验室的室的室的室的Bjarne StroustrupBjarne Stroustrup博士于博士于博士于博士于19791979年开始年开始年开始年开始对对C C语语言言言言进进行了改行了改行了改行了改进进和和和和扩扩充,充,充,充,并引入了面向并引入了面向并引入了面向并引入了面向对对象程序象程序象程序象程序设计设计的内容,的内容,的内容,的内容,19831983年命名年命名年命名年命名为为C++C++,后,后,后,后经过经过三次重大修三次重大修三次重大修三次重大修订订,于,于,于,于19941994年制定了年制定了年制定了年制定了标标准准准准C++C++草案,之后草案,之后草案,之后草案,之后经过为经过为断完善,成断完善,成断完善,成断完善,成为为目前的目前的目前的目前的C++C++1.4 C++1.4 C++的基本概念的基本概念( (略略) ) 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述2020• •C++C++具有以下特点具有以下特点具有以下特点具有以下特点: :(1)(1)保持了与保持了与保持了与保持了与C C语语言的兼容性。

      言的兼容性言的兼容性言的兼容性绝绝大多数大多数大多数大多数C C语语言程序不言程序不言程序不言程序不经经修改修改修改修改可以直可以直可以直可以直￿￿￿￿￿￿￿￿接在接在接在接在C++C++环环境中运行境中运行境中运行境中运行2)(2)支持面向支持面向支持面向支持面向过过程的程序程的程序程的程序程的程序设计设计它是一种理想的它是一种理想的它是一种理想的它是一种理想的结结构化程序构化程序构化程序构化程序设设计语计语言,又包含了面向言,又包含了面向言,又包含了面向言,又包含了面向对对象程序象程序象程序象程序设计设计的特征C++C++由两部由两部由两部由两部分分分分组组成:一是成:一是成:一是成:一是过过程性程性程性程性语语言部分,与言部分,与言部分,与言部分,与C C语语言无本言无本言无本言无本质质区区区区别别;二;二;二;二是是是是类类和和和和对对象部分,是面向象部分,是面向象部分,是面向象部分,是面向对对象程序象程序象程序象程序设计设计的主体3)(3)具有程序效率高、灵活性具有程序效率高、灵活性具有程序效率高、灵活性具有程序效率高、灵活性强强的特点C++C++使程序使程序使程序使程序结结构清晰、构清晰、构清晰、构清晰、易于易于易于易于扩扩展、易于展、易于展、易于展、易于维护维护而不失效率。

      而不失效率而不失效率而不失效率4)(4)具有通用性和可移植性具有通用性和可移植性具有通用性和可移植性具有通用性和可移植性C++C++是一种是一种是一种是一种标标准化的、与硬件基准化的、与硬件基准化的、与硬件基准化的、与硬件基本无关的程序本无关的程序本无关的程序本无关的程序设计语设计语言,言,言,言,C++C++程序通常无需修改或稍程序通常无需修改或稍程序通常无需修改或稍程序通常无需修改或稍许许修修修修改便可在其他改便可在其他改便可在其他改便可在其他计计算机上运行算机上运行算机上运行算机上运行5)(5)具有丰富的数据具有丰富的数据具有丰富的数据具有丰富的数据类类型和运算符,并提供了型和运算符,并提供了型和运算符,并提供了型和运算符,并提供了强强大的大的大的大的库库函数6)(6)具有面向具有面向具有面向具有面向对对象的特性,象的特性,象的特性,象的特性,C++C++支持抽象性、封装性、支持抽象性、封装性、支持抽象性、封装性、支持抽象性、封装性、继继承性承性承性承性和多和多和多和多态态性性性性1.4.1 C++1.4.1 C++的特点的特点 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述2121•Visual C++Visual C++是是是是C++C++集成开集成开集成开集成开发环发环境之一,它已从境之一,它已从境之一,它已从境之一,它已从最初的版到目前的版、最初的版到目前的版、最初的版到目前的版、最初的版到目前的版、C++.NETC++.NET,系,系,系,系统统功能日功能日功能日功能日益益益益强强大和完善,是目前大和完善,是目前大和完善,是目前大和完善,是目前应应用最广泛的用最广泛的用最广泛的用最广泛的C++C++语语言。

      言1) Visual C++6.0 (1) Visual C++6.0 ( (计计算机等算机等算机等算机等级级考考考考试试采用、本采用、本采用、本采用、本课课程采用程采用程采用程采用) )(2) Visual C++.NET(2) Visual C++.NET1.4.2 Visual C++1.4.2 Visual C++ 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述2222• •著名著名著名著名计计算机科学家沃思提出一个公式:算机科学家沃思提出一个公式:算机科学家沃思提出一个公式:算机科学家沃思提出一个公式:￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿程序程序程序程序= =数据数据数据数据结结构构构构+ +算法算法算法算法• •算法的基本概念:算法的基本概念:算法的基本概念:算法的基本概念:计计算机算法是用算机算法是用算机算法是用算机算法是用计计算机求解一个具体算机求解一个具体算机求解一个具体算机求解一个具体问题问题或或或或执执行行行行特定任特定任特定任特定任务务的一的一的一的一组组有序的操作步有序的操作步有序的操作步有序的操作步骤骤(或指令)。

      或指令)或指令)或指令)• •算法的特性算法的特性算法的特性算法的特性(1)(1)有有有有穷穷性性性性:一个算法必:一个算法必:一个算法必:一个算法必须须保保保保证执证执行有限步之后行有限步之后行有限步之后行有限步之后结结束在执执行有限步之后,行有限步之后,行有限步之后,行有限步之后,计计算必算必算必算必须终须终止,并得到解答也就是止,并得到解答也就是止,并得到解答也就是止,并得到解答也就是说说一个算法的一个算法的一个算法的一个算法的实现应该实现应该在有限在有限在有限在有限的的的的时间时间内完成￿ ￿ ￿ ￿(2)(2)确切性确切性确切性确切性:算法的每一步:算法的每一步:算法的每一步:算法的每一步骤骤必必必必须须有确切的定有确切的定有确切的定有确切的定义义算法中对对每个步每个步每个步每个步骤骤的解的解的解的解释释是唯一的是唯一的是唯一的是唯一的￿ ￿ ￿ ￿(3)(3)零个或多个零个或多个零个或多个零个或多个输输入入入入::::输输入指在入指在入指在入指在执执行算法行算法行算法行算法时时需要从外界取得的必要的信息需要从外界取得的必要的信息需要从外界取得的必要的信息需要从外界取得的必要的信息。

      一个算法有零个或多个一个算法有零个或多个一个算法有零个或多个一个算法有零个或多个输输入,以刻画运算入,以刻画运算入,以刻画运算入,以刻画运算对对象的初始情况一个算象的初始情况一个算象的初始情况一个算象的初始情况一个算法可以没有法可以没有法可以没有法可以没有输输入4)(4)一个或多个一个或多个一个或多个一个或多个输输出出出出::::输输出是算法的出是算法的出是算法的出是算法的执执行行行行结结果一个算法有一个或多个果一个算法有一个或多个果一个算法有一个或多个果一个算法有一个或多个输输出,以反映出,以反映出,以反映出,以反映对输对输入数据加工后的入数据加工后的入数据加工后的入数据加工后的结结果没有输输出的算法是毫无意出的算法是毫无意出的算法是毫无意出的算法是毫无意义义的￿ ￿ ￿ ￿(5)(5)有效性有效性有效性有效性:或可行性算法中的每一个步:或可行性算法中的每一个步:或可行性算法中的每一个步:或可行性算法中的每一个步骤骤能能能能够够精确地运行,并得到确精确地运行,并得到确精确地运行,并得到确精确地运行,并得到确定的定的定的定的结结果而且人果而且人果而且人果而且人们们用笔和用笔和用笔和用笔和纸纸做有限次运算后即可完成。

      做有限次运算后即可完成做有限次运算后即可完成做有限次运算后即可完成   1.5 1.5 算法概述算法概述 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述2323•算法的描述算法的描述算法的描述算法的描述算法的常用表示方法有如下三种:算法的常用表示方法有如下三种:算法的常用表示方法有如下三种:算法的常用表示方法有如下三种:(1)(1)使用自然使用自然使用自然使用自然语语言描述算法言描述算法言描述算法言描述算法(2)(2)使用流程使用流程使用流程使用流程图图描述算法描述算法描述算法描述算法(3)(3)使用使用使用使用伪伪代代代代码码描述算法描述算法描述算法描述算法•下面以求解下面以求解下面以求解下面以求解n!=1*2*3*4*5n!=1*2*3*4*5…………* *((((n-1n-1))))* * * *n n为为例例例例说说明算法的三种描述方法明算法的三种描述方法明算法的三种描述方法明算法的三种描述方法 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述2424• •第1种:使用自然第1种:使用自然第1种:使用自然第1种:使用自然语语言描述求言描述求言描述求言描述求n!n!的算法。

      的算法                ①￿①￿①￿①￿确定一个确定一个确定一个确定一个n n的的的的值值;;;;                ②￿②￿②￿②￿假假假假设设等号右等号右等号右等号右边边的算式的算式的算式的算式项项中的初始中的初始中的初始中的初始值值i i为为1 1;;;;                ③￿③￿③￿③￿假假假假设变设变量量量量f f中存放中存放中存放中存放n!n!的的的的值值,且初始,且初始,且初始,且初始值为值为1 1;;;;                ④￿④￿④￿④￿如果如果如果如果i≤ni≤n时时,,,,执执行行行行⑤⑤⑤⑤,否,否,否,否则转则转出出出出执执行行行行⑧⑧⑧⑧;;;;                ⑤￿⑤￿⑤￿⑤￿计计算算算算f f乘以乘以乘以乘以i i的的的的值值后,重新后,重新后,重新后,重新赋值给赋值给f f;;;;                ⑥￿⑥￿⑥￿⑥￿计计算算算算i i加加加加1 1,然后将,然后将,然后将,然后将值值重新重新重新重新赋值给赋值给i i;;;;                ⑦￿⑦￿⑦￿⑦￿转转去去去去执执行行行行④④④④;;;;                ⑧￿⑧￿⑧￿⑧￿输输出出出出f f的的的的值值,即,即,即,即n!n!的的的的值值,算法,算法,算法,算法结结束。

      束 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述2525•第第第第2 2种:使用流程种:使用流程种:使用流程种:使用流程图图描述描述描述描述n!n!的算法YesYesNoNo输入输入输入输入n n的值的值的值的值开始开始开始开始i=1; f=1i=1; f=1i<=n?i<=n?输出输出输出输出f f的值的值的值的值f=f*if=f*ii=i+1;i=i+1;结束结束结束结束 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述2626第第第第3 3种:使用种:使用种:使用种:使用伪伪代代代代码码描述描述描述描述n n!的算法算法开始算法开始算法开始算法开始        输输入入入入￿ ￿ ￿ ￿n n 的的的的值值;;;;  置  置  置  置i i的初的初的初的初值为值为1 1;;;;￿ ￿ ￿ ￿  置  置  置  置f f的初的初的初的初值为值为1 1;;;;  当  当  当  当i <=n i <=n 时时,,,,执执行下面的操作行下面的操作行下面的操作行下面的操作        ￿￿￿￿￿￿￿￿使使使使f =f* if =f* i;;;;￿ ￿ ￿ ￿   使   使   使   使i = i + 1i = i + 1;;;;￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿(循(循(循(循环环体到此体到此体到此体到此结结束)束)束)束)        输输出出出出￿ ￿ ￿ ￿sum sum 的的的的值值;;;;算法算法算法算法结结束束束束也可以写成以下形式:也可以写成以下形式:也可以写成以下形式:也可以写成以下形式:BEGIN /*BEGIN /*算法开始算法开始算法开始算法开始* * * */ /        输输入入入入￿ ￿ ￿ ￿n n 的的的的值值;;;;        i ← 1i ← 1;;;;￿ ￿ ￿ ￿                        /* /* 为变为变量量量量￿ ￿ ￿ ￿i i 赋赋初初初初值值* * * */ /        f ← 1f ← 1;;;;￿ ￿ ￿ ￿                    /* /*为变为变量量量量￿ ￿ ￿ ￿f f 赋赋初初初初值值* * * */ /        while i<=n while i<=n         ￿￿￿￿￿￿￿￿￿￿￿￿    /* /*当当当当变变量量量量￿ ￿ ￿ ￿i <=n i <=n 时时,,,,执执行下面的循行下面的循行下面的循行下面的循环环体体体体语语句句句句* * * */ /            { f ← f* i{ f ← f* i;;;;￿ ￿ ￿ ￿                i ← i + 1i ← i + 1;;;;} }        输输出出出出￿ ￿ ￿ ￿sum sum 的的的的值值;;;;END /*END /*算法算法算法算法结结束束束束* * * */ / 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1.6 1.6 1.6 1.6 软件工程概述软件工程概述软件工程概述软件工程概述1.6.1 1.6.1 软件的概念软件的概念￿• •比较公认的软件定义由以下三部分组成:比较公认的软件定义由以下三部分组成:比较公认的软件定义由以下三部分组成:比较公认的软件定义由以下三部分组成:        运行中能提供所希望的功能和性能的指令集(即程序);运行中能提供所希望的功能和性能的指令集(即程序);运行中能提供所希望的功能和性能的指令集(即程序);运行中能提供所希望的功能和性能的指令集(即程序);        程序能够正确运行的数据结构;程序能够正确运行的数据结构;程序能够正确运行的数据结构;程序能够正确运行的数据结构;        描述程序研制过程、方法所用的文挡。

      描述程序研制过程、方法所用的文挡描述程序研制过程、方法所用的文挡描述程序研制过程、方法所用的文挡   • •   软件分为系统软件和应用软件软件分为系统软件和应用软件软件分为系统软件和应用软件软件分为系统软件和应用软件 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1.6.2 1.6.2 1.6.2 1.6.2 软件工程概念软件工程概念软件工程概念软件工程概念 软件工程软件工程软件工程软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化是研究和应用如何以系统性的、规范化的、可定量的过程化是研究和应用如何以系统性的、规范化的、可定量的过程化是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来技术和当前能够得到的最好的技术方法结合起来技术和当前能够得到的最好的技术方法结合起来。

      技术和当前能够得到的最好的技术方法结合起来软软软软件件件件工工工工程程程程的的的的目目目目标标标标::::在在在在给给给给定定定定成成成成本本本本、、、、进进进进度度度度的的的的前前前前提提提提下下下下,,,,开开开开发发发发出出出出具具具具有有有有可可可可修修修修改改改改性性性性、、、、有有有有效效效效性性性性、、、、可可可可靠靠靠靠性性性性、、、、可可可可理理理理解解解解性性性性、、、、可可可可维维维维护护护护性性性性、、、、可可可可重重重重用用用用性性性性、、、、可可可可适适适适应应应应性性性性、、、、可可可可移移移移植植植植性性性性、、、、可可可可追追追追踪踪踪踪性性性性和和和和可可可可互互互互操操操操作作作作性性性性并并并并且且且且满满满满足足足足用用用用户户户户需需需需求求求求的的的的软软软软件件件件产产产产品品品品追追追追求求求求这这这这些目标有助于提高软件产品的质量和开发效率,减少维护的困难些目标有助于提高软件产品的质量和开发效率,减少维护的困难些目标有助于提高软件产品的质量和开发效率,减少维护的困难些目标有助于提高软件产品的质量和开发效率,减少维护的困难￿ 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述1.6.3 1.6.3 1.6.3 1.6.3 软件生存周期与软件开发模型软件生存周期与软件开发模型软件生存周期与软件开发模型软件生存周期与软件开发模型软件生存周期一般可分为以下阶段:软件生存周期一般可分为以下阶段:软件生存周期一般可分为以下阶段:软件生存周期一般可分为以下阶段:• •问题定义及可行性分析问题定义及可行性分析问题定义及可行性分析问题定义及可行性分析• •需求分析需求分析需求分析需求分析• •设计:软件设计一般分为总体设计和详细设计设计:软件设计一般分为总体设计和详细设计设计:软件设计一般分为总体设计和详细设计设计:软件设计一般分为总体设计和详细设计• •编码编码编码编码• •测试测试测试测试• •运行与维护运行与维护运行与维护运行与维护￿ 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述3030• •9.1.1 9.1.1 9.1.1 9.1.1 启动环境启动环境启动环境启动环境• •9.1.2 9.1.2 9.1.2 9.1.2 建立或打开源程序文件建立或打开源程序文件建立或打开源程序文件建立或打开源程序文件• •9.1.3 9.1.3 9.1.3 9.1.3 程序的编辑、编译、链接与运行程序的编辑、编译、链接与运行程序的编辑、编译、链接与运行程序的编辑、编译、链接与运行开发环境开发环境开发环境开发环境( ( ( (以节例以节例以节例以节例1-11-11-11-1、、、、1-21-21-21-2为例为例为例为例) ) ) )结论结论::::￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿使用使用使用使用环环境境境境编编写程序,其文件后写程序,其文件后写程序,其文件后写程序,其文件后缀为缀为.cpp.cpp,,,,这这种形式的种形式的种形式的种形式的程序称程序称程序称程序称为为源代源代源代源代码码((((Source CodeSource Code),然后用),然后用),然后用),然后用编译编译器将源代器将源代器将源代器将源代码转换码转换成二成二成二成二进进制形式,文件后制形式,文件后制形式,文件后制形式,文件后缀为缀为.obj.obj,,,,这这种形式的程序种形式的程序种形式的程序种形式的程序称称称称为为目目目目标标代代代代码码((((Objective CodeObjective Code),最后,将若干目),最后,将若干目),最后,将若干目),最后,将若干目标标代代代代码码和和和和现现有的二有的二有的二有的二进进制代制代制代制代码库经过连码库经过连接器接器接器接器连连接,接,接,接,产产生可生可生可生可执执行代行代行代行代码码((((Executable CodeExecutable Code),文件后),文件后),文件后),文件后缀为缀为.exe.exe,只有,只有,只有,只有.exe.exe文文文文件才能运行。

      件才能运行件才能运行件才能运行￿ ￿ ￿ ￿ 高高级级语语言言程程序序设设计计与与应应用用教教程程 第第一一章章 概概述述31319.2 C9.2 C语言程序调试的基本步骤语言程序调试的基本步骤( (结合上机体结合上机体会会) )否否否否运行运行运行运行否否否否连接连接连接连接编译编译编译编译编辑源程序编辑源程序编辑源程序编辑源程序目标程序目标程序目标程序目标程序有错吗?有错吗?有错吗?有错吗?可执行程序可执行程序可执行程序可执行程序有错吗有错吗有错吗有错吗????是是是是是是是是程序执行结果程序执行结果程序执行结果程序执行结果有错吗?有错吗?有错吗?有错吗?完成完成完成完成是是是是 。

      点击阅读更多内容
      相关文档
      【全国硕士研究生入学统一考试政治】2020年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2015年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2010年考研政治真题.docx 【全国硕士研究生入学统一考试政治】1996年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2001年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2016年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2000年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2007年考研政治真题.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2004年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2003年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2019年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2009年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2001年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2021年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2014年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2018年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2008年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2011年考研政治真题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.