面向对象程序设计c.ppt

上传人:小飞机 文档编号:6034422 上传时间:2023-09-16 格式:PPT 页数:67 大小:1.35MB
返回 下载 相关 举报
面向对象程序设计c.ppt_第1页
第1页 / 共67页
面向对象程序设计c.ppt_第2页
第2页 / 共67页
面向对象程序设计c.ppt_第3页
第3页 / 共67页
面向对象程序设计c.ppt_第4页
第4页 / 共67页
面向对象程序设计c.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《面向对象程序设计c.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计c.ppt(67页珍藏版)》请在三一办公上搜索。

1、C+程序设计语言,电子讲义,陈维斌,前言,计算机学科发展情况概述,其发展过程可以概括为:源于学科交叉,培育了多个交叉学科,技术发展日新月异、突飞猛进;广泛、深入地渗透到社会活动和日常生活的各个领域。它是二十世纪发展最快、对人类文明影响最深的学科之一。,计算机科学技术发端于上个世纪四十年代,迄今为止,共走过六十多年的历程。,下面从面向对象技术,网络计算、并行计算技术,数据库技术等方面简述其最新的发展。,面向对象技术,计算机学科发展情况概述,面向对象方法和技术起源于面向对象的编程语言(OOPL);,从八十年代中期开始,面向对象技术的焦点、热点逐渐转移到OOA和OOD上,逐步形成新的方法论和开发技术

2、。,近年来又出现新的高级技术,例如面向对象数据库、分布式对象技术、对象总线技术、面向对象的系统集成技术等。,面向对象方法使得系统开发方法回归自然从围绕功能构造系统回归到围绕客观事物构造系统。,面向对象技术的应用为软件开发从“人工集约生产方式”到“资源集约生产方式”的转化带来希望 主要得益于软件复用。,计算机学科发展情况概述,面向对象的关键技术和工具,面向对象建模技术UML,面向对象编程技术(平台).net体系、J2EE,系统集成技术Web Services,组件技术、中间件技术等。,网络计算、并行计算技术,计算机学科发展情况概述,互联网(Internet)是网络的佼佼者,互联网改变了人们的时空

3、观和生活方式,使人类初步实现了“地球村”的梦想。,互联网本身也存在极大的缺陷表现在安全性隐患和对商务活动缺乏有效的支持等。,互联网并不是最优的网络计算方案,在计算机集群或网格上应用并行技术,可以实现高性能计算机。,目前的高性能计算机,其运算速度可超过5万亿次/每秒。,数据库技术,计算机学科发展情况概述,几乎所有的软件密集型系统都离不开数据库。,数据库是数据处理和事务处理系统的基础,数据模型的进化,异构数据集成和数据服务技术,计算机学科发展情况概述,在彼此孤立的各个业务系统之间提供数据通道,既可以抽取公共数据,又可以互相提供数据服务。犹如在信息孤岛之间架起桥梁为企业应用系统集成(EAI)提供基础

4、保障。,数据分析技术,联机分析,数据挖掘,将业务数据进行综合,组织成数据立方体,进行切片、切块、钻取等处理。以提供决策支持,应用统计学、人工智能等手段从数据中发现知识和模式并以可视化的方式展现。以支持智能决策,本课程是计算机类各专业的一门重要的专业基础课(学科基础课),在由基础训练到专业课教学阶段过渡过程中起到承上启下的作用。它不仅为今后学习专业课打下坚实的理论基础和技术基础,而且为软件开发、程序设计提供必要的理论、方法和工具。,前趋课程:高等数学、计算机导论,主要的后续课程:数据结构、汇编语言程序设计、编译原理、操作系统等。,课程性质,课程的基本要求,了解程序设计语言的概况和基本理论;,系统

5、掌握C+语言的语法体系;,基本掌握结构化程序设计方法和面向对象程序设计方法及编程技术;,逐步培养阅读程序、分析程序和独立编写程序的能力。,课程的特点与学习方法,既抽象又具体,入门容易熟练难;,理论联系实际,实践性较强。,需要多练习,多阅读,多模仿,多上机,多创作。,C+是一种程序设计语言,具有一般语言的基本要素:语法、语义、语用,但其语境及交流方式有别于自然语言。(语境系指语言的存在环境和使用场合),学习自然语言的好方法当然也可以应用到学习程序设计语言上来。,课程的主要内容,分为:基础编程、过程化编程、面向对象编程及高级编程四大部分。,基础编程主要介绍:,(1)C+的语句(共五类,九个语句)文

6、章是由句子组成的,程序是由语句组成的,所以语句是程序的基本元素。,(2)数据类型。数据类型是各种数据的抽象,反过来可以用来描述程序所要加工的形形色色的数据对象。,我们将要涉及到的数据类型有:整型、浮点型、双精度型、串、数组、向量、指针、类等。,(3)表达式。表达式用来描述计算,可以说它是语句甚至是程序的“砖瓦”。,过程化编程(也称为结构化编程)主要介绍:,(1)函数机制。可以将函数想象为文章的章节,也可以将函数想象为“积木块”。这些“积木块”组成了复杂的程序。,(2)程序结构。介绍程序构成、模块结构、数据作用域和编译预处理等内容。,课程的主要内容(续),基础编程主要介绍:,课程的主要内容(续)

7、,面向对象编程主要介绍:,(1)面向对象的基本知识,类的概念、类的定义,类的主要特征(名、属性、操作的描述)及其对应的语法。,(2)客观事物在程序中的映射与实现对象的创建和使用。,(3)面向对象基本要素封装和继承在程序设计语言中的应用。,课程的主要内容(续),*高级编程主要介绍:,(1)多态(面向对象基本要素之一)的概念、编程技术等。,(2)模板和异常处理。,(1)C+程序设计教程(第二版),钱能主编,清华大学出版社,2005.9,(2)The C+Programming language(Special Edition),Bjarne Stoustrup,高等教育出版社,2001.8,(3)

8、面向对象程序设计,刘正林主编,华中科技大学出版社,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 程序设计语言概述,程序设计语言的四个发展阶段,通常将程序设计语言的发展划分为以下四

9、代:,第一代:机器语言,第二代:汇编语言,第三代:高级语言,第四代:无编程语言,因为它们经常“四世同堂”,故又称为计算机语言的四种形态。,机器语言是计算机的指令系统,属于低级语言。,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 数据移动,这样的程序,对于不了解机器指令系统的

10、人来说,无异于天书。,汇编语言是机器指令的直接符号化,也即用合适的英文单词或英文符号表示指令的操作码和部分地址码。,2.第二代程序设计语言:汇编语言,例如:用add表示加法操作,用eax表示某个寄存器、用ebp表示数据段的地址。这样可以改善可读性。,8b 45 fc8d 04 408b 4d f803 c92b c14089 45 fc,mov eax,DWORD PTR a_$ebplea eax,DWORD PTReax+eax*2mov ecx,DWORD PTR b_$epbadd ecx,ecxsub eax,ecxinc eaxmov DWORD PTR a_$epb,eax,用汇

11、编语言编写的程序称为汇编语言程序,由于汇编语言无法直接与计算机交流,所以这样的程序无法直接由计算机执行,因此必须通过汇编程序翻译成机器语言程序。,3.第三代程序设计语言:高级语言,高级语言是一种接近于自然语言的计算机语言。,所谓接近于自然语言是指,用符合人们习惯的“数学+英语”的方式和符号来描述计算问题。,例如:例1的计算问题用高级语言来描述就简单、直观到形如:a=3*a-2*b+1,其右部显然与数学式3a-2b+1十分地接近。,用高级语言编写的程序称为高级语言程序,这种程序计算机无法理解与执行,必须通过编译程序翻译成机器语言程序。,高级语言与具体机器基本无关,因此高级语言程序不但简单、直观,

12、而且具有可移植性。,4.第四代程序设计语言:无编程语言,无编程或少编程语言支持对一些通用计算使用构件、组件,以可视化方式进行选择,并以组装方式加以实现。,例1-2 下图所示的文件操作窗口就是由工具条、下拉列表框、文本框、命令按钮等构件快速组装而成,并只须辅以少量编程。,一些面向对象可视化程序设计语言,例如Visual C+、Visual Basic、C#等,都具有第四代计算机语言的特征。,高级语言简史,1954年第一个高级语言Fortran诞生,它是一种面向科学计算的“公式翻译语言”。66年实现标准化,大约在九十年代中后期逐渐消失。,1959年COBOL语言问世,它是一种面向商务处理的高级语言

13、,68年实现标准化,目前基本上也已停止使用。,1960年ALGOL60问世,它以语法成分的多样性和结构的严谨性著称,并首次引入数据作用域、递归等概念和技术。ALGOL60的流行期没有超过20年,早已退出历史舞台,被人淡忘了。,60年代中期,BASIC语言问世,被人们视为Fortran的简化版本,以小巧玲珑,简单易用而著称,其面向对象版本Visual Basic目前仍被广泛使用。,1967年,出现了Simula67,该语言首次提出类的概念并加以实现,在面向对象技术领域,它是一个先驱者,但并不是成功者,因为多方面的不完善,导致其无法推广应用。,60年代中期,第一个人工智能语言LISP语言诞生。,1

14、971年,第一个结构化程序设计语言PASCAL语言诞生,其语法结构比ALGOL更为严谨、数据类型更为丰富,所以在相当长的时间内,PASCAL一直是计算机专业的教学语言,目前也已淡出,但其面向对象的版本Object PASCAL成为Delphi的核心。,1972年C语言问世,它支持结构化和模块化程序设计,具有开放性,又具有中级语言的特征,因此被广泛使用,并且经久不衰。,1983年,在C的基础上改良成为带类的C的面向对象程序设计语言C+问世。,1.1.3 C和C+的历史及发展过程,作为C+的前身,C语言是贝尔实验室的Dennis Ritchie于1972年在B语言的基础上设计而成的。,三十年多年来

15、,在计算机系统领域和应用领域发挥了极大的作用。并且随着计算机技术和程序设计方法的发展、演化,其自身也在不断地发展,可以概括为以下几个阶段:,1.1972年在B语言的基础上设计而成的,用来描述和实现Unix操作系统。,2.1977年改进为不依赖于具体机器的C语言编译文本可移植C语言编译程序,从而具有高级语言的第一特征,演化为我们所说的“传统的C语言”。,31983年由美国国家标准化协会(ANSI)综合C的各种版本,制定了新的标准ANSI C,进而演化为87ANSI C。,4.1980年,贝尔实验室开始对C增加面向对象的成分,最初的成果为“带类的C”,83年正式取名为C+。1991年出现实用工业版

16、本,94年制定了ANSI C+标准的草案。,值得一提的是:面向网络计算的Java语言其语法结构与C+如出一辙。,5C+的各种工业版本的出现 例如Visual C+,注意:现在各种程序语言大多具有通用性,数值计算语言:Algol、Fortran等;商业语言:Cobol、Visual Basic、各种数据库管理系统提供的编程语言等;人工智能语言:Lisp、Prolog等;系统语言:Pascal、C、C+、C#等。,1.1.4 高级语言的分类,程序设计语言的应用领域,六十年代,程序设计语言的应用领域不外乎就是:商业、科学计算、系统、人工智能等方面。,九十年代以来,程序设计语言除上述领域外,还拓展到出

17、版应用、处理、网络计算等方面。,语法和语义,程序设计语言的语法是程序设计语言的外观。它给出语句、数据对象说明以及其它语言结构(成分)的书写规则。,程序设计语言的语义表示语言结构的含义。,语法,语义,例1-3 C+的赋值语句,其语法和语义如下:语法:=实例:z=x+y语义:计算表达式exp,然后将计算结果传送给指定的变量。,1.2 C+的应用领域,C+的应用领域包括:商业、科学计算、系统软件、Internet。,其主要用途如下:,1.作为系统描述语言,编写各种系统软件。,例如:(1)OS(众所周知的Unix),(2)DBMS(FoxPro就是用Watcom C编写的)。,2.作为工具软件描述语言

18、,编写各种工具软件。,例如商务方面、信息管理方面的软件。尤其适合于通信、图形图象处理方面的应用。,4Internet和Web编程。,3.作为应用程序描述语言,编写各种应用软件。,1.3 C和C+的特点,C和C+一直是程序设计语言的主流之一,因为C和C+既具有程序设计语言所共有的功能,在很多方面又独具一格,所以极受程序员的青睐。,C和C+的主要特点归纳如下:,1.语句简练、语法结构清晰、紧凑,使用方便、灵活。,标准C只设置32个保留字(专用词)和九种语句,C和C+的绝大部分功能都由各种标准函数和类来实现。,2程序结构简单、书写格式自由。,5语法限制不太严格,程序自由度大。这既是优点也是缺点,该问

19、题留待以后专门讨论。,4运算符丰富、齐全,运算能力强。,C提供的运算符分为常规运算和与硬件有关的运算两部分:常规运算符算术运算符、逻辑运算符、关系运算符等,这类运算符,各种语言一般都具备。与硬件有关的运算符位运算符、地址运算符等,这些运算符是C所独有的,体现出汇编语言的某些特征。,3数据类型丰富、齐全。,标准C供了整数、实数、字符、字符串等基本数据类型,还提供数组、指针、结构体等构造数据类型。C+增加了类这一特殊数据类型的定义机制。,6.具有直接的硬件处理能力,例如:允许直接访问内存地址,进行各种位运算,能通过中断调用,直接控制各种硬件设备等等。上述这些功能属于机器语言特征,因此C既有高级语言

20、特征又具有机器语言特征。,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 appl

21、ication./#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!;retur

22、n 0;,该程序的前三行是注解行,仅起到说明和注解的作用,可以省略,但勤加注解可以增强程序的可读性,是一种好的风格。,该程序的第四行用来包含一个标准流类文件iostream.h,该文件提供了输入/输出设施,属于程序的编译预处理部分。,该程序仅由一个函数组成,该函数名为main(主函数),是C+程序的入口。,注意一个C+程序可以有多个函数,但必须有而且仅能有一个main函数。,例1-5 求最大值的程序。功能:调用MAX函数求两个数中值最大者,并调用标准函数sqrt()求其平方根。源程序代码:/*/*Ch1_2.cpp*/*#include#include double max(double x,

23、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

24、 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 ent

25、ry point/for the console application./#include int main()cout Hello Visual C+Console World!“;/输出 return 0;/返回,(6)用大括号对表示程序的层次范围,一个完整的程序模块总是被包围在一对大括号内,例如函数体,语句块等。,(7)C+程序中的名字(标识符)是大小写敏感的,所以在书写标识符时要注意其大小写。,例如:max()与MAX()代表不同的两个函数;NAME和name代表两个不同的变量。,(5)程序书写格式自由,一行可以写一个至多个语句,一个语句也可以分写在多行上,每个语句以分号作为结束标志

26、。,(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),程序的

27、调试(Debug),可以在Visual C+的集成开发环境(IDE)中完成上述工作。,有些活动可能需要重复进行,因此形成比较复杂的循环。,开始,编辑,链接,编译错误,链接错误,运行调试,编译,运行错误,结束,无,无,无,有,有,有,程序的编辑(Edit),使用Visual C+的编辑器进行程序文本编辑,以命名文件形式保存在专用的文件夹中(通常一个程序存放在一个文件夹中)。其扩展名为cpp。,程序的编译(Compile),使用Visual C+的编译器对源程序进行编译,将其翻译成目标代码并自动生成与源程序文件同名的目标文件(扩展名为obj),该目标文件自动保存在源程序文件所在的文件夹中的 deb

28、ug文件夹。,程序的链接(Build),使用Visual C+的Execute命令,可以启动程序的执行,通过控制台窗口可以观察运行结果。,程序的运行、调试(Debug),使用Visual C+的链接器(Build)对相关目标文件进行链接,构建成可执行文件,其扩展名为exe(该文件通常保存在程序文件夹内部的Debug文件夹中)。,1.5 上机实践上机方法和步骤,这一小节简单介绍上机的基本方法和步骤,包括两种形式:,用MFC AppWizard(Exe)创建一个应用项目。,用C+source file自己编程、编译、调试及运行;,1自行编制C+Source File,其基本处理包括:程序的编辑、编

29、译、调试及运行,其操作步骤如下:,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+,启动方法见

30、图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+,启动方

31、法见图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)如果程序有语法错,可参照“

32、输出窗中给出的提示进行修改,然后重复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 Fil

33、e的操作步骤:,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单击“n

34、ew”对话框的“projects”页标签,进入“projects”页。l 在该页的右侧输入项目名,项目文件夹名等,然后单击“OK”按纽。,2.指定应用项目的类型并选择语言(向导步骤1),项目类型包括:单文本(Single document),多文本(Multipledocuments)以及对话框(Dialog based)等。,3.选择数据库支持方式(向导步骤2),4.选择复合文档支持方式(向导步骤3),5.指定窗口特征及工具条的风格等(向导步骤4),6.指定项目风格等(向导步骤5),7.列出新项目的框架规格说明信息(向导步骤6),单击“OK”按纽后,向导将自动创建项目,并进入编辑状态。,8.

35、项目的编辑,我们可以在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.运行应用程序,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号