面向对象程序设计c.ppt

上传人:za****8 文档编号:15717521 上传时间:2020-09-01 格式:PPT 页数:67 大小:1.47MB
返回 下载 相关 举报
面向对象程序设计c.ppt_第1页
第1页 / 共67页
面向对象程序设计c.ppt_第2页
第2页 / 共67页
面向对象程序设计c.ppt_第3页
第3页 / 共67页
点击查看更多>>
资源描述
C+程序设计语言,电子讲义,陈维斌,前言,计算机学科发展情况概述,其发展过程可以概括为:源于学科交叉,培育了多个交叉学科,技术发展日新月异、突飞猛进;广泛、深入地渗透到社会活动和日常生活的各个领域。它是二十世纪发展最快、对人类文明影响最深的学科之一。,计算机科学技术发端于上个世纪四十年代,迄今为止,共走过六十多年的历程。,下面从面向对象技术,网络计算、并行计算技术,数据库技术等方面简述其最新的发展。,面向对象技术,计算机学科发展情况概述,面向对象方法和技术起源于面向对象的编程语言(OOPL);,从八十年代中期开始,面向对象技术的焦点、热点逐渐转移到 OOA和OOD上,逐步形成新的方法论和开发技术。,近年来又出现新的高级技术,例如面向对象数据库、分布式对 象技术、对象总线技术、面向对象的系统集成技术等。,面向对象方法使得系统开发方法回归自然从围绕功能构造 系统回归到围绕客观事物构造系统。,面向对象技术的应用为软件开发从“人工集约生产方式”到“资 源集约生产方式”的转化带来希望 主要得益于软件复用。,计算机学科发展情况概述,面向对象的关键技术和工具,面向对象建模技术UML,面向对象编程技术(平台).net体系、J2EE,系统集成技术Web Services,组件技术、中间件技术等。,网络计算、并行计算技术,计算机学科发展情况概述,互联网(Internet)是网络的佼佼者,互联网改变了人们的时空观和生活方式,使人类初 步实现了“地球村”的梦想。,互联网本身也存在极大的缺陷表现在安全性隐 患和对商务活动缺乏有效的支持等。,互联网并不是最优的网络计算方案,在计算机集群或网格上应用并行技术,可以实现高性能计算机。,目前的高性能计算机,其运算速度可超过5万亿次/每秒。,数据库技术,计算机学科发展情况概述,几乎所有的软件密集型系统都离不开数据库。,数据库是数据处理和事务处理系统的基础,数据模型的进化,异构数据集成和数据服务技术,计算机学科发展情况概述,在彼此孤立的各个业务系统之间提供数据通道,既 可以抽取公共数据,又可以互相提供数据服务。犹如在 信息孤岛之间架起桥梁为企业应用系统集成(EAI) 提供基础保障。,数据分析技术,联机分析,数据挖掘,将业务数据进行综合,组织成 数据立方体,进行切片、切块、 钻取等处理。以提供决策支持,应用统计学、人工智能等手段从 数据中发现知识和模式并以可视 化的方式展现。以支持智能决策,本课程是计算机类各专业的一门重要的专业基础课 (学科基础课),在由基础训练到专业课教学阶段过渡过程中起到承上启下的作用。它不仅为今后学习专业课打下坚实的理论基础和技术基础,而且为软件开发、程序设计提供必要的理论、方法和工具。,前趋课程:高等数学、计算机导论,主要的后续课程:数据结构、汇编语言程序设计、 编译原理、操作系统等。,课程性质,课程的基本要求,了解程序设计语言的概况和基本理论;,系统掌握C+语言的语法体系;,基本掌握结构化程序设计方法和面向对象程序设计 方法及编程技术;,逐步培养阅读程序、分析程序和独立编写程序的能力。,课程的特点与学习方法,既抽象又具体,入门容易熟练难;,理论联系实际,实践性较强。,需要多练习,多阅读,多模仿,多上机,多创作。,C+是一种程序设计语言,具有一般语言的基本要素: 语法、语义、语用,但其语境及交流方式有别于自然 语言。(语境系指语言的存在环境和使用场合),学习自然语言的好方法当然也可以应用到学习程序 设计语言上来。,课程的主要内容,分为:基础编程、过程化编程、面向对象编程及高级编程四大部分。,基础编程主要介绍:,(1)C+的语句(共五类,九个语句) 文章是由句子组成的,程序是由语句组成的,所以 语句是程序的基本元素。,(2)数据类型。数据类型是各种数据的抽象,反过来 可以用来描述程序所要加工的形形色色的数据对象。,我们将要涉及到的数据类型有:整型、浮点型、双精度型、 串、数组、向量、指针、类等。,(3)表达式。表达式用来描述计算,可以说它是语句 甚至是程序的“砖瓦”。,过程化编程(也称为结构化编程)主要介绍:,(1)函数机制。可以将函数想象为文章的章节,也可 以将函数想象为“积木块”。这些“积木块”组成了复杂的 程序。,(2)程序结构。介绍程序构成、模块结构、数据作用 域和编译预处理等内容。,课程的主要内容(续),基础编程主要介绍:,课程的主要内容 (续),面向对象编程主要介绍:,(1)面向对象的基本知识,类的概念、类的定义,类 的主要特征(名、属性、操作的描述)及其对应的语法。,(2)客观事物在程序中的映射与实现对象的创建 和使用。,(3)面向对象基本要素封装和继承在程序设计语 言中的应用。,课程的主要内容(续),*高级编程主要介绍:,(1)多态(面向对象基本要素之一)的概念、编程 技术等。,(2)模板和异常处理。,(1) C+程序设计教程(第二版),钱能主编,清华大学出版社,2005.9,(2) The C+ Programming language (Special Edition),Bjarne Stoustrup,高等教育出版社,2001.8,(3) 面向对象程序设计,刘正林主编,华中科技大学出版社,2001.5,(5) Visual C+6.0 编程实例,薛松等,人民邮电出版社,1999.8,(4) C+大学教程(第二版),电子工业出版社,2002.1,教材和主要参考书,第一章 C+概述(C+ Introduction),主要内容:程序设计语言简史,C和C+的发展过程,C+的特点、用途,C+程序实例和编程流程。,重点:C+的特点、用途,C+程序结构特征。,课堂时数:23学时,上机时数:1学时。,难点:程序结构特征分析。,课时安排:,课外上机时数:2学时。,1.1 程序设计语言概述,1.1.1 程序设计语言的四个发展阶段,通常将程序设计语言的发展划分为以下四代:,第一代:机器语言,第二代:汇编语言,第三代:高级语言,第四代:无编程语言,因为它们经常“四世同堂” ,故又称为计算机语言的四种形态。,机器语言是计算机的指令系统,属于低级语言。,1. 第一代程序设计语言:机器语言,用机器语言编写的程序称为机器语言程序,可由计算机直接执行,但与具体机器有关,且难写、难读。,例1-1: 计算3*a-2*b+1并保存在a中,用某个机器语言 书写的机器语言程序为:,8b 45 fc 8b 数据移动 8d 04 40 8d 取数 8b 4d f8 03 c9 03 加 2b c1 2b 减 40 40 加1 89 45 fc 89 数据移动,这样的程序,对于不了解机器指令系统的人来说,无异于天书。,汇编语言是机器指令的直接符号化,也即用合适的英文单词或英文符号表示指令的操作码和部分地址码。,2. 第二代程序设计语言:汇编语言,例如: 用add表示加法操作,用eax表示某个寄存器、 用ebp表示数据段的地址。这样可以改善可读性。,8b 45 fc 8d 04 40 8b 4d f8 03 c9 2b c1 40 89 45 fc,mov eax,DWORD PTR a_$ebp lea eax,DWORD PTReax+eax*2 mov ecx,DWORD PTR b_$epb add ecx,ecx sub eax,ecx inc eax mov DWORD PTR a_$epb,eax,用汇编语言编写的程序称为汇编语言程序,由于汇编语言无法直接与计算机交流,所以这样的程序无法直接由计算机执行,因此必须通过汇编程序翻译成机器语言程序。,3. 第三代程序设计语言:高级语言,高级语言是一种接近于自然语言的计算机语言。,所谓接近于自然语言是指,用符合人们习惯的 “数学+英语”的方式和符号来描述计算问题。,例如:例1的计算问题用高级语言来描述就简单、直观 到形如:a=3*a-2*b+1,其右部显然与数学式3a-2b+1 十分地接近。,用高级语言编写的程序称为高级语言程序,这种程序计算机无法理解与执行,必须通过编译程序翻译成机器语言程序。,高级语言与具体机器基本无关,因此高级语言程序不但简单、直观,而且具有可移植性。,4. 第四代程序设计语言:无编程语言,无编程或少编程语言支持对一些通用计算使用构件、组件,以可视化方式进行选择,并以组装方式加以实现。,例1-2 下图所示的文件操作窗口就是由工具条、下拉 列表框、文本框、命令按钮等构件快速组装而成,并只 须辅以少量编程。,一些面向对象可视化程序设计语言,例如Visual C+、 Visual Basic、C#等,都具有第四代计算机语言的特征。,1.1.2 高级语言简史,1954年第一个高级语言Fortran诞生,它是一种面向科学计算的“公式翻译语言”。66年实现标准化,大约在九十年代中后期逐渐消失。,1959年COBOL语言问世,它是一种面向商务处理的高级语言,68年实现标准化,目前基本上也已停止使用。,1960年ALGOL60问世,它以语法成分的多样性和结构的严谨性著称,并首次引入数据作用域、递归等概念和技术。 ALGOL60的流行期没有超过20年,早已退出历史舞台,被人淡忘了。,60年代中期,BASIC语言问世,被人们视为Fortran的简化版本,以小巧玲珑,简单易用而著称,其面向对象版本Visual Basic目前仍被广泛使用。,1967年,出现了Simula67,该语言首次提出类的概念并加以实现,在面向对象技术领域,它是一个先驱者,但并不是成功者,因为多方面的不完善,导致其无法推广应用。,60年代中期,第一个人工智能语言LISP语言诞生。,1971年,第一个结构化程序设计语言PASCAL语言诞生,其语法结构比ALGOL更为严谨、数据类型更为丰富,所以在相当长的时间内,PASCAL一直是计算机专业的教学语言,目前也已淡出,但其面向对象的版本Object PASCAL成为Delphi的核心。,1972年C语言问世,它支持结构化和模块化程序设计,具有开放性,又具有中级语言的特征,因此被广泛使用,并且经久不衰。,1983年,在C的基础上改良成为带类的C的面向对象程序设计语言C+问世。,1.1.3 C和C+的历史及发展过程,作为C+的前身,C语言是贝尔实验室的Dennis Ritchie于1972年在B语言的基础上设计而成的。,三十年多年来,在计算机系统领域和应用领域发挥了极大的作用。并且随着计算机技术和程序设计方法的发展、演化,其自身也在不断地发展,可以概括为以下几个阶段:,1. 1972年在B语言的基础上设计而成的,用来描述和实现Unix操作系统。,2. 1977年改进为不依赖于具体机器的C语言编译文本可移植C语言编译程序,从而具有高级语言的第一特征,演化为我们所说的“传统的C语言”。,31983年由美国国家标准化协会(ANSI)综合C的各种版本,制定了新的标准ANSI C,进而演化为87ANSI C。,4. 1980年,贝尔实验室开始对C增加面向对象的成分,最初的成果为“带类的C”,83年正式取名为C+。1991年出现实用工业版本,94年制定了ANSI C+标准的草案。,值得一提的是:面向网络 计算的Java语言其语法结 构与C+如出一辙。,5C+的各种工业版本的出现 例如Visual C+,注意:现在各种程序语言大多具有通用性,数值计算语言:Algol、Fortran等; 商业语言:Cobol、Visual Basic、各种数据库管理系统提供的编程语言等; 人工智能语言:Lisp、Prolog等; 系统语言:Pascal、C、C+、C#等。,1.1.4 高级语言的分类,1.1.5 程序设计语言的应用领域,六十年代,程序设计语言的应用领域不外乎就是:商业、科学计算、系统、人工智能等方面。,九十年代以来,程序设计语言除上述领域外,还拓展到出版应用、处理、网络计算等方面。,1.1.6 语法和语义,程序设计语言的语法是程序设计语言的外观。它给出语句、数据对象说明以及其它语言结构(成分)的书写规则。,程序设计语言的语义表示语言结构的含义。,语法,语义,例1-3 C+的赋值语句,其语法和语义如下: 语法: = 实例:z = x + y 语义:计算表达式exp,然后将计算结果传送给指定的变量。,1.2 C+的应用领域,C+的应用领域包括:商业、科学计算、系统软件、Internet。,其主要用途如下:,1. 作为系统描述语言,编写各种系统软件。,例如: (1)OS(众所周知的Unix), (2)DBMS(FoxPro就是用Watcom C编写的)。,2. 作为工具软件描述语言,编写各种工具软件。,例如商务方面、信息管理方面的软件。 尤其适合于通信、图形图象处理方面的应用。,4Internet和Web编程。,3. 作为应用程序描述语言,编写各种应用软件。,1.3 C和C+的特点,C和C+一直是程序设计语言的主流之一,因为C和C+既具有程序设计语言所共有的功能,在很多方面又独具一格,所以极受程序员的青睐。,C和C+的主要特点归纳如下:,1. 语句简练、语法结构清晰、紧凑,使用方便、灵活。,标准C只设置32个保留字(专用词)和九种语句, C和C+的绝大部分功能都由各种标准函数和类来实现。,2程序结构简单、书写格式自由。,5语法限制不太严格,程序自由度大。这既是优点也是缺点,该问题留待以后专门讨论。,4运算符丰富、齐全,运算能力强。,C提供的运算符分为常规运算和与硬件有关的运算两部分: 常规运算符算术运算符、逻辑运算符、关系运算符 等,这类运算符,各种语言一般都具备。 与硬件有关的运算符位运算符、地址运算符等, 这些运算符是C所独有的,体现出汇编语言的某些特征。,3数据类型丰富、齐全。,标准C供了整数、实数、字符、字符串等基本数 据类型,还提供数组、指针、结构体等构造数据类 型。C+增加了类这一特殊数据类型的定义机制。,6. 具有直接的硬件处理能力,例如:允许直接访问内存地址,进行各种位运算, 能通过中断调用,直接控制各种硬件设备等等。 上述这些功能属于机器语言特征,因此C既有高级 语言特征又具有机器语言特征。,7C编译系统生成的目标代码质量高,程序执行效率高。,8程序可移植性强。,9语言的通用性较强,C+包含了整个C,因此也继承了C的全部特征和 优点,同时又实现了对OOP的完全支持。,1.4 C+编程流程,1. 程序实例,例1-4 HelloWorld程序 功能:在屏幕上显示“Hello Visual C+ Console World”。,下面我们给出两个简单的程序,一方面展现C+程序的概貌,另一方面籍此进行程序结构和书写格式的分析,并简单地介绍程序设计流程。,/ HelloWorld1.cpp : Defines the entry point / for the console application. / #include using namespace std; int main() cout Hello Visual C+ Console World!; return 0; ,例1-4 HelloWorld程序 功能:在屏幕上显示“Hello Visual C+ Console World”。,/ HelloWorld1.cpp : Defines the entry point / for the console application. / #include using namespace std; int main() cout Hello Visual C+ Console World!; return 0; ,该程序的前三行是注解行,仅起到说明和注解的作用,可以省略,但勤加注解可以增强程序的可读性,是一种好的风格。,该程序的第四行用来包含一个标准流类文件iostream.h,该文件提供了输入/输出设施,属于程序的编译预处理部分。,该程序仅由一个函数组成,该函数名为main(主函数),是C+程序的入口。,注意一个C+程序可以有多个函数,但必须有而且仅能有一个main函数。,例1-5 求最大值的程序。 功能:调用MAX函数求两个数中值最大者,并调用标准函数 sqrt()求其平方根。 源程序代码: /* /* Ch1_2.cpp * /* #include #include double max(double x,double y); void main() double a,b,c; cout ab; c=max(a,b); cout the squart of maximum =sqrt(c ); ,下页,double max(double x, double y) double z; if (xy) z = x; else z = y; return z; ,上页,分析: 该程序由main和max两个函数组成,max由main函数调用,此外还调用了系统提供的一个标准函数sqrt。,/* /* Ch1_2.cpp * /* #include #include double max(double x,double y); void main() double a,b,c; cout ab; c=max(a,b); cout the squart of maximum =sqrt(c ); ,2.C+程序的构成和书写格式,综合上面的分析,我们对C+ 程序的结构和书写格式归纳出以下七大特点:,(1) C+源程序文件是一个文本文件,其扩展名是*.cpp。一个C+程序除了源程序文件外,还包含其它文件。,(2)C+程序由注释部分、程序头部分(编译预处理部分)、程序主体部分组成,注释可以出现在主体部分中。,(3) 注释部分以/或/*作为标记。主体部分由n个(n=1)函数并列组成,必须有且仅能有一个main函数。,/ HelloWorld1.cpp : Defines the entry point / for the console application. / #include int main() cout Hello Visual C+ Console World!“;/输出 return 0;/返回 ,(6) 用大括号对表示程序的层次范围,一个完整的程序模块总是被包围在一对大括号内,例如函数体,语句块等。,(7)C+程序中的名字(标识符)是大小写敏感的,所以在书写标识符时要注意其大小写。,例如:max()与MAX()代表不同的两个函数;NAME和 name代表两个不同的变量。,(5) 程序书写格式自由,一行可以写一个至多个语句,一个语句也可以分写在多行上,每个语句以分号作为结束标志。,(4) 一个应用程序(Application)可以包含若干个源程序文件。,/ HelloWorld1.cpp : Defines the entry point / for the console application. / #include int main() cout Hello Visual C+ Console World!“;/输出 return 0;/返回 ,3. C+程序设计流程,程序设计流程是指从算法设计、程序编辑(输入)到程序运行全过程的各项活动及活动之间的关系,也称为编程流程,包括以下主要活动(步骤):,程序的编辑(Edit),程序的编译(Compile),程序的链接(Build),程序的调试(Debug),可以在Visual C+的集成开发环境(IDE)中完成上述工作。,有些活动可能需要重复进行,因此形成比较复杂的循环。,开始,编辑,链接,编译错误,链接错误,运行调试,编译,运行错误,结束,无,无,无,有,有,有,程序的编辑(Edit),使用Visual C+的编辑器进行程序文本编辑,以命名文件形式保存在专用的文件夹中(通常一个程序存放在一个文件夹中)。其扩展名为cpp。,程序的编译(Compile),使用Visual C+的编译器对源程序进行编译,将其翻译成目标代码并自动生成与源程序文件同名的目标文件(扩展名为obj),该目标文件自动保存在源程序文件所在的文件夹中的 debug文件夹。,程序的链接(Build),使用Visual C+的Execute命令,可以启动程序的执行,通过控制台窗口可以观察运行结果。,程序的运行、调试(Debug),使用Visual C+的链接器(Build)对相关目标文件进行链接,构建成可执行文件,其扩展名为exe(该文件通常保存在程序文件夹内部的Debug文件夹中)。,1.5 上机实践上机方法和步骤,这一小节简单介绍上机的基本方法和步骤,包括两种形式:,用MFC AppWizard(Exe)创建一个应用项目。,用C+ source file自己编程、编译、调试及运行;,1自行编制C+Source File,其基本处理包括:程序的编辑、编译、调试及运行,其操作步骤如下:,1)启动Visual C+,启动方法见图1-1:,启动Visual C+6.0,1)启动Visual C+,启动方法见图1-1:,自行编制C+Source File的操作步骤:,2)创建一个新的C+ Source File,l打开“文件“菜单”,单击“New”命令选项, 弹出 “ New”对话框; l单击“New”对话框的“File”页标签,弹出 “File”页; l双击“C+ Source File”选项,进入文件编辑状态。 该操作过程见图1-2:,图1-2 创建C+ Source File,自行编制C+Source File的操作步骤:,1)启动Visual C+,启动方法见图1-1: 2)创建一个新的C+ Source File见图1-2,3)编辑C+ Source File,见图1-3。,图1-3 编辑C+ Source File,自行编制C+Source File的操作步骤:,1)启动Visual C+,启动方法见图1-1: 2)创建一个新的C+ Source File见图1-2 3)编辑C+ Source File,见图1-3。,4)保存C+文件,打开“File”菜单,单击“Save As”命令选项, 在“保存为”对话框中执行存盘操作,见图1-4。,图1-4 保存C+ Source File,自行编制C+Source File的操作步骤:,1)启动Visual C+,启动方法见图1-1: 2)创建一个新的C+ Source File见图1-2 3)编辑C+ Source File,见图1-3。 4)保存C+文件,见图1-4。,5)源程序文件的编译,打开“Build”菜单,单击“Compile”命令选 项,编译结果出现在底部的输出窗中,见图1-5。,图1-5 程序的编译及出错信息提示,自行编制C+Source File的操作步骤:,1)启动Visual C+,启动方法见图1-1: 2)创建一个新的C+ Source File见图1-2 3)编辑C+ Source File,见图1-3。 4)保存C+文件,见图1-4。 5)源程序文件的编译,见图1-5。,6)如果程序有语法错,可参照“输出窗中给出的提示进行修改,然后重复5)6),直至出错提示全部消除。,自行编制C+Source File的操作步骤:,1)启动Visual C+,启动方法见图1-1: 2)创建一个新的C+ Source File见图1-2。 3)编辑C+ Source File,见图1-3。 4)保存C+文件,见图1-4。 5)源程序文件的编译,见图1-5。 6)修改语法错,至出错提示全部消除。,7)生成可执行文件(程序的链接),打开“Build”菜单,单击“Build(.exe)”命令 选项,生成结果出现在底部的输出窗中,如果提 示生成成功,则可执行下一个动作,否则,参照 出错提示,进行修改。,自行编制C+Source File的操作步骤:,1)启动Visual C+,启动方法见图1-1: 2)创建一个新的C+ Source File见图1-2。 3)编辑C+ Source File,见图1-3。 4)保存C+文件,见图1-4。 5)源程序文件的编译,见图1-5。 6)修改语法错,至出错提示全部消除。 7)生成可执行文件(程序的链接),8)程序的执行,打开“Build”菜单,单击“Execute(.exe)” 命令选项,弹出程序执行窗口,见图1-6。,图1-6 C+程序的执行窗口,用MFC AppWizard(Exe)创建一个应用项目。,1. 创建一个项目,l打开“文件“菜单”,单击“New”命令选项,弹出 “new”对话框; l单击“new”对话框的“projects”页标签,进入 “projects ”页。 l 在该页的右侧输入项目名,项目文件夹名等, 然后单击“OK”按纽。,2. 指定应用项目的类型并选择语言(向导步骤1),项目类型包括:单文本(Single document),多文本(Multiple documents)以及对话框(Dialog based)等。,3. 选择数据库支持方式(向导步骤2),4. 选择复合文档支持方式(向导步骤3),5. 指定窗口特征及工具条的风格等(向导步骤4),6. 指定项目风格等(向导步骤5),7. 列出新项目的框架规格说明信息(向导步骤6),单击“OK”按纽后,向导将自动创建项目,并进入编辑状态。,8. 项目的编辑,我们可以在vc的集成编程环境中,对组成项目的各个类进行编辑,使项目得以完善。,下面以在项目的主窗口中显示文字在一操作为例,给出编辑方法。,(1)单击Projiect View窗口中的Class View标签,进入Class View ,该页显示了组成项目的所有的类;,(2)展开其中的cp1View节点(打开cp1View类);,(3)双击该类的onDraw()成员函数,在代码编辑窗中显示该函数的代码。,(4)在代码编辑窗中修改该函数的代码,在该函数的ASSERT_VALID(pDoc行下面输入以下行: /TRACE(This was printed during debuggingn); pDC-TextOut(20,20,欢迎进入本系统!);,9. 建造项目(Build)以生成可执行文件。,10. 运行应用程序,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!