第5章计算机程序设计 本章导读: 本章主要介绍程序设计基础知识、程序设计的一般过 程和程序设计语言,重点介绍了面向过程程序设计、面向 对象程序设计和可视化程序设计的特点,并结合C、C++、 Java、VB等语言介绍这些程序设计方法的具体应用。 ※本章主要知识点: 程序设计基础知识 面向过程程序设计的特点及其应用 面向对象程序设计的特点其应用 可视化程序设计的特点其应用
华南热带农业大学 ·计算机系 李怀成 第5章 计算机程序设计 本章导读: 本章主要介绍程序设计基础知识、程序设计的一般过 程和程序设计语言,重点介绍了面向过程程序设计、面向 对象程序设计和可视化程序设计的特点,并结合C、C++、 Java、VB等语言介绍这些程序设计方法的具体应用。 本章主要知识点: 程序设计基础知识 面向过程程序设计的特点及其应用 面向对象程序设计的特点其应用 可视化程序设计的特点其应用
第5章计算机程序设计 5.1概述 52面向过程程序设计 53面向对象程序设计 54可视化程序设计
华南热带农业大学 ·计算机系 李怀成 第5章 计算机程序设计 5.1 概述 5.2 面向过程程序设计 5.3 面向对象程序设计 5.4 可视化程序设计
51概述 51.1程序设计基础 512程序设计的一般过程 513程序设计语言 514程序设计发展概况 返回本章目录
华南热带农业大学 ·计算机系 李怀成 5.1 概述 返回本章目录 5.1.1 程序设计基础 5.1.2 程序设计的一般过程 5.1.3 程序设计语言 5.1.4 程序设计发展概况
51.1程序设计基础 计算机之所以能自动连续地进行工作,最根本的原因 就在于“存储程序”和“程序控制”。 “存储程序”——就是把计算机处理问题的步骤用计 算 机能够识别的指令编写出来,并送入计算机内部的存储器 存储起来。 “程序控制 就是把事先存储好的程序从存储器 取 出来,送入CPU执行,计算机才能按照人的意图自动完成 指定的工作。 因此,程序就是为解决某一问题而编写的语句集合, 是将一个实际问题的具体操作用某种程序设计语言描述出 来的指令序列。编写程序的过程就是程序设计 程序设计语言就是计算机能够理解和执行的特殊语 市农此少计其
华南热带农业大学 ·计算机系 李怀成 5.1.1 程序设计基础 计算机之所以能自动连续地进行工作,最根本的原因 就在于“存储程序”和“程序控制” 。 “存储程序”——就是把计算机处理问题的步骤用计 算 机能够识别的指令编写出来,并送入计算机内部的存储器 存储起来。 “程序控制”——就是把事先存储好的程序从存储器 取 出来,送入CPU执行,计算机才能按照人的意图自动完成 指定的工作。 因此,程序就是为解决某一问题而编写的语句集合, 是将一个实际问题的具体操作用某种程序设计语言描述出 来的指令序列。编写程序的过程就是程序设计。 程序设计语言就是计算机能够理解和执行的特殊语言
512程序设计的一般过程 概括地说,程序设计就是分析问题、编写程序、调试程序的过 程。用计算机解决实际问题的基本过程如下图所示。 分析 确定解 确定具 编写 调试|整理 问题 决方案体算法程序 程序「文档 程序设计步骤如下 1)分析要解决的问题,明确任务 2)分析问题,建立数学模型,并选择合适的解决方案 (3)确定数据结构和算法:数据结构十算法=程序 (4)编写程序 (5)调试程序 (6)整理资料,交付使用 返回本节目录
华南热带农业大学 ·计算机系 李怀成 5.1.2 程序设计的一般过程 返回本节目录 概括地说,程序设计就是分析问题、编写程序、调试程序的过 程。用计算机解决实际问题的基本过程如下图所示。 程序设计步骤如下: (1)分析要解决的问题,明确任务 (2)分析问题,建立数学模型,并选择合适的解决方案 (3)确定数据结构和算法:数据结构 + 算法 = 程序 (4)编写程序 (5)调试程序 (6)整理资料,交付使用 分析 问题 确定解 决方案 确定具 体算法 编写 程序 调试 程序 整理 文档
513程序设计语言 程序设计语言是人们根据描述问题的需要而设计的,是计算机能 够直接识别的语言,有一套固定的符号和语法规则,是人与计算机交 流所使用的“语言”。 程序设计语言可分成机器语言、汇编语言和高级语言。前两类依 赖于计算机硬件,因机器而异,又称为低级语言,而高级语言与计算 机硬件基本无关,是目前使用非常广泛的程序设计语言。 1.机器语言 机器语言是一种用二进制数“0和“1”表示计算机各种操作的程 序设计语言。一条机器指令能够控制计算机执行一种操作。 计算机能够直接理解和执行使用机器语言编写的程序,执行速 度快,占用内存少;但难于记忆,编程困难,可读性差,容易出错。 机器语言是面向机器的语言,可移植性极差。 返回本节目录
华南热带农业大学 ·计算机系 李怀成 5.1.3 程序设计语言 返回本节目录 程序设计语言是人们根据描述问题的需要而设计的,是计算机能 够直接识别的语言,有一套固定的符号和语法规则,是人与计算机交 流所使用的“语言”。 程序设计语言可分成机器语言、汇编语言和高级语言。前两类依 赖于计算机硬件,因机器而异,又称为低级语言,而高级语言与计算 机硬件基本无关,是目前使用非常广泛的程序设计语言。 1. 机器语言 机器语言是一种用二进制数“0”和“1”表示计算机各种操作的程 序设计语言。一条机器指令能够控制计算机执行一种操作。 计算机能够直接理解和执行使用机器语言编写的程序,执行速 度快,占用内存少;但难于记忆,编程困难,可读性差,容易出错。 机器语言是面向机器的语言,可移植性极差
513程序设计语言 2.汇编语言 汇编语言是一种用助记符来表示各个基本操作的程序设计语 。如用ADD表示加法操作,SU表示减法操作等 汇编语言的出现,大大减少了程序编写、阅读、修改、维扩 等方面的工作量,但汇编语言也是一种面向机器的语言,计算机 不能直接执行,通用性和可移植性差,必须经过汇编程序翻译成 机器语言程序后才能在计算机上执行,需要程序员对计算机内部 结构非常了解
华南热带农业大学 ·计算机系 李怀成 5.1.3 程序设计语言 2. 汇编语言 汇编语言是一种用助记符来表示各个基本操作的程序设计语 言。如用ADD表示加法操作,SUB表示减法操作等。 汇编语言的出现,大大减少了程序编写、阅读、修改、维护 等方面的工作量,但汇编语言也是一种面向机器的语言,计算机 不能直接执行,通用性和可移植性差,必须经过汇编程序翻译成 机器语言程序后才能在计算机上执行,需要程序员对计算机内部 结构非常了解
513程序设计语言 3.高级语言 高级语言是一种用接近自然语言和数学语言的语法、符号描述基 本操作的程序设计语言 高级语言编写的程序不依赖于具体的机器,程序员编程时无需关 心计算机内部的细节,从而大大提高了编程效率。计算机不能直接 执行使用高级语言编写的程序,需用专门的翻译程序将其转换成机 器语言程序后才能执行。 目前,使用较广泛的高级语言有C、C+、 Visual basic、 Visual foxpro、 Visual c++、 Power builder、Java、 Delphi、 ASP、JSP、PP等 返回本节目录
华南热带农业大学 ·计算机系 李怀成 5.1.3 程序设计语言 返回本节目录 3. 高级语言 高级语言是一种用接近自然语言和数学语言的语法、符号描述基 本操作的程序设计语言。 高级语言编写的程序不依赖于具体的机器,程序员编程时无需关 心计算机内部的细节,从而大大提高了编程效率。计算机不能直接 执行使用高级语言编写的程序,需用专门的翻译程序将其转换成机 器语言程序后才能执行。 目前,使用较广泛的高级语言有C、C++、Visual Basic 、 Visual Foxpro 、Visual C++、Power Builder、Java、Delphi、 ASP、JSP、PHP等
514程序设计发展概况 20世纪60年代,由于程序好坏的评价标准是指令少,运行速度快, 占用内存少。这使程序员过分追求语言的表述能力和技巧,程序员往 往将注意力集中在问题求解本身,而无暇顾及求解的过程,很少考虑 程序结构的合理性和可扩展性。软件开发主要依赖程序员的个人经验, 缺乏科学理论和方法作指导,开发出的软件或程序只能靠测试来检査 错误,这些因素使得许多大型软件崩溃,软件开发周期长,生产效率 低,可靠性及可维护性差,20世纪60年代末最终引发了“软件危机”。 思考问题:程序调试能否保证程序正确?怎样保证程序正确?程 序好坏的评价标准是什么?科学指导程序设计的原理和方法是什么? 1968年, E.W. Dijkstra指出:Goto语句是有害的,它造成了程序结 构的混乱,高级语言程序设计应取消Goto语句,并由此引发了关于程 序设计首先是讲究好的结构,还是讲究效率的讨论
华南热带农业大学 ·计算机系 李怀成 5.1.4 程序设计发展概况 20世纪60年代,由于程序好坏的评价标准是指令少,运行速度快, 占用内存少。这使程序员过分追求语言的表述能力和技巧,程序员往 往将注意力集中在问题求解本身,而无暇顾及求解的过程,很少考虑 程序结构的合理性和可扩展性。软件开发主要依赖程序员的个人经验, 缺乏科学理论和方法作指导,开发出的软件或程序只能靠测试来检查 错误,这些因素使得许多大型软件崩溃,软件开发周期长,生产效率 低,可靠性及可维护性差,20世纪60年代末最终引发了“软件危机”。 思考问题:程序调试能否保证程序正确?怎样保证程序正确?程 序好坏的评价标准是什么?科学指导程序设计的原理和方法是什么? 1968年,E.W.Dijkstra指出:Goto语句是有害的,它造成了程序结 构的混乱,高级语言程序设计应取消Goto语句,并由此引发了关于程 序设计首先是讲究好的结构,还是讲究效率的讨论
514程序设计发展概况 Dijkstra还提出了结构化程序设计思想、概念和标准,希望通过程 序静态结构的良好性来保证程序的正确性,并提出了“程序测试只能 发现程序中的错误而不能保证程序无错误”的科学论断。 同时, Wirth也提出了自顶向下、逐步求精的程序设计方法,将 个复杂的问题分解成若干个相互独立的、简单的模块,再将模块分 解成更简单的子模块,直到所有问题能用程序设计语言简单方便地解 决。采用这种程序设计方法,能有效地控制程序设计的复杂性,有益 于提高程序设计的效率 20世纪80年代, Gries综合了各种程序设计理论和方法的成果,完 成了“ The Science of Programming书,首次把程序设计从经验、技 巧上升为科学,使程序设计从此步入了科学的轨道
华南热带农业大学 ·计算机系 李怀成 5.1.4 程序设计发展概况 Dijkstra还提出了结构化程序设计思想、概念和标准,希望通过程 序静态结构的良好性来保证程序的正确性,并提出了“程序测试只能 发现程序中的错误而不能保证程序无错误”的科学论断。 同时,Wirth也提出了自顶向下、逐步求精的程序设计方法,将 一个复杂的问题分解成若干个相互独立的、简单的模块,再将模块分 解成更简单的子模块,直到所有问题能用程序设计语言简单方便地解 决。采用这种程序设计方法,能有效地控制程序设计的复杂性,有益 于提高程序设计的效率。 20世纪80年代,Gries综合了各种程序设计理论和方法的成果,完 成了“The Science of Programming”一书,首次把程序设计从经验、技 巧上升为科学,使程序设计从此步入了科学的轨道