第一章 C++基础知识.ppt_第1页
第一章 C++基础知识.ppt_第2页
第一章 C++基础知识.ppt_第3页
第一章 C++基础知识.ppt_第4页
第一章 C++基础知识.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章 C+基础知识,本章学习内容,了解不同类型的编程语言; 了解面向过程的结构化程序设计语言与面向对象程序设计语言的特点; 了解面向对象程序设计语言的基本概念; 熟悉C+程序的开发过程; 能够编写一个简单的程序,输入数据,输出结果。,本章目录,第一讲 C+基础知识 本章小结,结 束,第一讲 C+基础知识,一、计算机程序设计语言概述 二、C概述 三、程序的开发过程 四、一个+程序实例 五、名字空间 六、无格式的输入/输出流 练一练,返回本章目录,机器语言(Machine Language)是计算机自身的语言,是计算机直接理解执行的语言,是人类使用的第一种编程语言。机器语言由一系列指令组成,指令

2、是计算机可识别的逐个执行的基本命令,由二进制的0和1构成。 例如:将100与200相加的机器语言程序由下列两条指令实现: 110110000110010000000000(B86400) 000001011100100000000000(05C800),返回本讲目录,计算机程序设计语言概述 1机器语言与汇编语言,汇编语言由称为汇编器(Assembler)的翻译程序将它转换成机器语言程序。此时,虽然汇编语言比机器语言提高了一步,汇编语言与人类自然语言之间的差异略有缩小,但仍然与人类的思维相差甚远。由于汇编语言的抽象层次太低,一个简单的任务需要大量的语句来实现,并且程序员还需考虑大量的机器细节,故

3、使用汇编语言编程难度大。 例如,将上面100与200相加的机器语言改为汇编语言,程序实现为: MOVAX, 100 ADDAX, 200,返回本讲目录,2高级语言,高级语言由称为编译器(Compiler)的翻译程序将它变成相应的机器语言程序。 BASIC、FORTRAN、COBOL、ALGOL均属于高级语言,它们具有较好的语言表达能力,可广泛用于科学计算和商业事务处理中。 例如,还是将100与200相加,用下面的一条高级语言即可实现: 100+200,返回本讲目录,早期的计算机多用于数学计算,为了完成计算,必须设计出一个计算方法或解决问题的过程,因此早期的高级语言是一种面向过程的语言。 20世

4、纪60年代产生了结构化的程序设计思想,为用面向过程的方法解决复杂的问题提供了有力手段。结构化的程序设计是软件发展中继子程序与高级语言后的第三个影响更为深远的里程碑。,返回本讲目录,结构化程序设计方法主要内容有:自顶向下,逐步求精;程序按功能划分为若干模块,这些模块形成调用的层次树状结构;模块间的关联尽可能的简单,模块的功能相对独立;每个模块均由顺序、选择和循环三种基本结构组成。 结构化编程语言进一步提高了语言的层次。结构化数据、结构化语句、数据抽象、过程抽象概念使程序更便于体现客观事物的结构和逻辑含义。这使得编程语言与人类的自然语言更加接近。,返回本讲目录,虽然结构化语言有很多优点,但其本质仍

5、然是一种面向过程的语言。它把数据和数据处理过程分离成相互独立的实体,当数据结构改变时,所有相关的处理过程都要进行相应的修改,程序的可重用性差。同时,由于图形用户界面(Graphics User Interface,GUI)的使用,应用软件应随时响应用户的各种操作,因此软件的功能很难用过程来描述与实现,如果仍然使用面向过程的方法与语言,软件的开发与维护将面临困难。 为了解决软件开发过程中的困难,消除结构化编程语言的局限,自20世纪80年代以来,出现了面向对象的程序设计语言(Object-Oriented Program Language,OOP)。,返回本讲目录,3面向对象的程序设计语言,返回本

6、讲目录,面向对象的程序设计语言与以往的各种编程语言的根本不同点在于,它设计的出发点就是为了能更加直接地描述客观世界中存在的事物和对象,以及它们之间的关系。 开发一个软件是为了解决现实世界中的问题,这些问题所涉及的业务范围称为该软件的问题域。面向对象的程序设计语言将现实世界中的客观事物描述成具有属性和行为(或称为服务)的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。,类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。类的继承与多态性可以很方便地实现代码的重用,大大

7、提高了程序的可重用性,缩短了软件的开发周期,并使软件风格统一。 面向对象的语言的发展经历了一个很长的发展阶段,早在20世纪60年代中后期,Sinula-67语言中使用了对象的概念并开始使用数据封装。20世纪70年代Xerox公司经过对Smalltalk 72,74,76语言的不断研究、改进之后,在1980年推出商品化的Smalltalk-80。Smalltalk-80是第一个真正的面向对象的语言。其后,许多语言中也广泛引入了面向对象的特征。1985年AT表示使用std名字空间,在后面的小讲堂10中还有详细描述。 (4)主函数。第6行,main()称为主函数,是程序的入口,程序从此处开始执行。每

8、个程序只有一个入口,所以,如果一个程序包含多个模块,只允许其中一个模块有main()函数。,返回本讲目录,(5)第7行和第11行是一对配对的花括号 ,C+中用花括号将多条语句括起来,形成一个程序块(复合语句)。【实例1-1】中的这对花括号表示main()函数的开始和结束标志。 (6)输出显示。程序第8行到第10行,均使用cout标准输出流对象,它与显示器相连,用于把后面的数据传输到显示器。endl表示换行符,在本讲的小讲堂11中会讲到。 (7)C+中的语句以“;”结尾,不是通过换行进行结尾。所以,一个语句如果太长,可分多行写,多个语句也可写在一行。 注意:在C+中用到的符号,均为英文符号,不能

9、是全角中文符号。,返回本讲目录,9.C+的程序设计环境,以Visual C+ 6.0为例,讲述上题的上机运行步骤。假设【实例1-1】源文件命名为x1_1.cpp,工程命名为x1_1,该源文件保存路径为E: C+x1_1,则操作如下: 1)启动Visual C+6.0的集成开发环境 选择“开始”“程序”“Microsoft Visual Studio 6.0”“Microsoft Visual C+ 6.0”命令,运行Visual C+ 6.0,进入Visual C+ 6.0集成开发环境窗口。,返回本讲目录,2)创建一个控制台应用项目 在Visual C+ 6.0中,使用“控制台应用程序”框架即

10、可满足C+编程的功能。所谓“控制台应用程序”,简单地讲,就是指在Windows环境下运行的DOS程序。在Visual C+ 6.0中,用AppWizard创建一个控制台应用程序可按下列步骤进行:,返回本讲目录,(1)选择菜单中的“文件”(File)“新建”(New)命令,显示“新建”对话框,如下图所示。,(2)单击“工程”(Project)标签,在“工程”选项卡中选择“Win32 Console Application”(Win32控制台应用程序)项。在“工程”(Project Name)文本框中输入一个项目名字,如x1_1。单击“位置”文本框后的按钮,将项目文件定位到“E: C+x1_1”,

11、如上图所示。,返回本讲目录,(3)单击“确定”(OK)按钮,在弹出的Win32 Console Application-Step1 of 1对话框中选择“An empty project”选项,如下图所示。,返回本讲目录,(4)然后单击“完成”(Finish)按钮,系统将显示向导创建的信息,如下图所示。最后在新建工程信息对话框中单击“确定”(OK)按钮,完成项目创建过程。,返回本讲目录,3)建立C+源程序文件 在建立完项目之后,项目中没有任何文件,我们还需要在项目中添加新的源程序文件。步骤如下: (1)单击“文件”(File)“新建”(New),弹出“新建”对话框,如下图所示。,(2)在新建对

12、话框的“文件”选项卡中选择“C+ Source File”(C+源程序),并在右侧“文件”下面的文本框中填入文件名“x1_1.cpp”,单击“确定”(OK)按钮,完成新建的C+源程序文件。此时会弹出一个空白的名为“x1_1.cpp”文本编辑窗口,允许用户输入程序代码。,返回本讲目录,4)编辑C+源程序文件 (1)在文件编辑窗口中输入源程序代码,如下图所示。 (2)单击主菜单中“文件”(File)“保存”(Save)命令来保存文件,或是单击工具栏上的保存按钮,就可以完成保存任务。 在文档编辑窗口中所有代码的颜色都发生改变,这是Visual C+ 6.0的文本编辑器所具有的语法颜色功能,绿色表示注

13、释,蓝色表示关键词等。,返回本讲目录,5)建立并运行可执行程序文件 (1)单击编译工具条上的生成工具按钮,可编译并运行程序。首先,单击工具栏中的“Cmplile”按钮(或按组合键Ctrl+F7)进行编译,同时在编译窗口中显示编译的有关信息,再单击“Build”(或直接按快捷键F7)按钮建立该应用程序,当出现: 表示程序x1_1.exe可执行文件已经正确无误地生成了。 (2)单击编译工具条上的“BuildExecute”按钮(或直接按组合键Ctrl+F5)即可运行刚才生成的x1_1.exe文件了,并显示运行结果。,返回本讲目录,6)修正语法错误 当程序出现错误时,编译页面窗口会显示有错误和警告的

14、程序行数。移动“编译”页面窗口的滚动条,使窗口显示出第一条错误信息,双击该错误信息,光标会自动定位在发生该错误的代码行上,该行前面标有蓝色箭头,可快速进行错误代码定位。如下图所示。,返回本讲目录,7)退出Visual C+ 6.0 第一种方法是单击主窗口右上角的“关闭”按钮,第二种方法是单击菜单“文件”“退出”,都可以退出Visual C+ 6.0。 8)打开已存在项目 单击菜单“文件”“打开”按钮,在弹出的对话框中选定E: C+x1_1 x1_1.dsw,单击“打开”按钮,则可打开工作空间,对已建立的项目文件进行修改。,返回本讲目录,ANSI/ISO C+不再采用早期C/C+的头文件名形式,

15、而是推荐使用无.h扩展名的C+头文件,并指定std名字空间。例如: #include using namespace std; /注意不要缺少分号 using是一个在代码编译之前处理的命令。namespace称为名字空间,它是ANSI/ISO C+一个新的特性,用于解决在程序中同名标识存在的潜在危机。例如,程序包含两个头文件,而这两个头文件中都有一个已定义的函数Fun,则编译不知道使用哪一个Fun函数。若在同一个作用域中,则还会出现“重复定义”的编译错误。采用名字空间,就可避免这些情况的发生。,名字空间 10.新头文件格式和名字空间,返回本讲目录,标准C+库提供的对象等都放在标准名字空间std

16、中,使用名字空间std的方法有: (1)利用using namespace使用名字空间,格式如下:,using namespace std;,它表明此后程序中所有对象如没有特别声明,均来自名字空间std。,返回本讲目录,(2)用域分辨符“:”为对象分别指定名字空间。 例如,将【实例1-1】中语句: cout Hello! C+ Programming!endl; 使用域分辨符修改为如下语句: std:cout Hello! C+ Programming!endl; 分别指明了此处cout、endl的名字空间。 (3)用using与域分辨符指定名字空间。 使用方法如下: using std:co

17、ut; 表明此后的cout对象如没有特别声明,均取自名字空间std中。,返回本讲目录,六 无格式的输入/输出流,【实例1-2】 从键盘输入两个整数后并输出,然后从键盘上输入两个字符并在屏幕上输出。注意使用C+的标准输入/输出流进行数据输入/输出的方法。 程序分析: (1)使用输出流在屏幕上提示输入两个整数的信息,然后使用输入流输入两个整数并用整型变量接收,然后输出两个整数的和; (2)使用输出流在屏幕上提示输入两个字符的信息,然后使用输入流输入两个字符数并用字符型变量接收,最后在屏幕上显示输入的两个字符。 点击打开【实例1-2】源程序 程序运行结果如下:,返回本讲目录,11.无格式的输出cou

18、t,C+中除了可以继续使用C语言中的标准I/O函数(printf和scanf)外,还增加了特有的流输入(cin)和流输出(cout)。它们被定义在头文件iostream.h中,在使用cin和cout前,要用预编译命令将头文件包含到用户源文件中(输入/输出预说明)。命令格式如下: #include “iostream.h” /在当前目录和系统指定的目录中找该文件 #include /在由系统指定的文件目录中找该文件,返回本讲目录,输出流是输出一系列字节,当程序需要在屏幕上显示待输出的数据时,操作符cout必须和操作符“”(插入操作符)配合使用。其调用格式如下:,cout变量1变量2.变量n;,或

19、,cout变量1 变量2 . 变量n;,注:两种形式输出效果相同。 例如,在【实例1-2】中,语句: couta+b=a+bn;/输出a+b的和 cout请输入两个字符:n; /输出提示信息,返回本讲目录,12.无格式输入cin,当程序需要从键盘输入数据(到变量)时,可以使用抽取操作符“”从cin输入流中抽取字符。对于不同类型的数据cin格式都相同。其调用格式如下:,cin变量1变量2变量n;,或,cin变量1 变量2 变量n;,注:两种形式输出效果相同。,返回本讲目录,例如,在【实例1-2】中,语句: cinab; /输入变量a和b的值 也可以在一个输入流中输入不同类型的多个数据,如: int x; /定义整型变量x float y; /定义单精度浮点型变量y double z

温馨提示

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

最新文档

评论

0/150

提交评论