已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 C+语言概述,主讲:刘艳菊,2008-2009-2,C+教学课件,本章内容提要,面向对象程序设计的基本思想和概念 C+是一种面向对象的程序设计语言 C+的词法及词法规则 C+程序结构的特点 C+程序的实现,2008-2009-2,C+教学课件,从C语言到C+语言,C语言 美国贝尔实验室的Dennis Ritchie在1972年开发。 美国国家标准化组织(ANSI)于1983年成立了一个委员会(X3J11),以确定C语言的标准。 该标准(ANSI C)于1989年被正式采用,即C89。 特点: 语言简洁、紧凑,使用方便、灵活。 有丰富的运算符和数据类型。 生成的目标代码质量高,程序运行效率高。,局限性: (1)数据类型检查机制相对较弱; (2)几乎没有支持代码重用的语言机制; (3)程序员很难控制程序的复杂性。,2008-2009-2,C+教学课件,从C语言到C+语言,C+语言 1980年,贝尔实验室的Bjarne Stroustrup开始对C进行改进和扩充。 1983年正式命名为C+。 C+包含了整个C(C89),C是建立C+的基础。 C+包括C的全部特征和优点,同时增加了对面向对象编程的完全支持。 C+语言的标准 1998年ANSI/ISO联合委员会制定了C+的国际标准。 2003年推出了第二个版本,是对第一版的修订。 C+仍在不断发展中,并尽可能包含C的最新版本。,2008-2009-2,C+教学课件,1.1面向对象程序设计的基本思想,传统的结构化程序设计方法(SP) Structured Programming,简称SP 使用SP方法设计程序的步骤: 在数据处理过程中,采用的是自顶向下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块完成指定的子任务,并且提供一个清晰、严格的调用界面,主过程通过调用各子过程完来成全部处理工作 。,数据声明,数据处理,结果输出,2008-2009-2,C+教学课件,SP的优缺点:,优点: 这种程序设计方法力求算法描述准确。 对每一子过程模块容易进行程序正确性证明。 缺点: 这种方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思路。 程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。 维护程序的一致性困难。该种方法将数据与对数据进行处理的程序代码分离。,2008-2009-2,C+教学课件,面向对象的程序设计方法,Object-Oriented Programming,简称OOP 面向对象的程序设计方法强调直接以问题域(现实世界)中的事物为中心来思考和认识问题,并按照这些事物的本质特征把它们抽象为对象,以作为构成软件系统的基础。 这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。,2008-2009-2,C+教学课件,面向对象的系统包含了三个要素 对象(Object):含有数据和对其操作的代码逻辑实体。 类(Class):从客观世界的一组事物中抽取其共同的属性和行为,是对一些问题和概念进行的抽象。 属性(Attribute) :描述对象特征的数据。 行为(Method):对属性的操作。 继承(Inheritance):它是创建新类的一种方法,一个类可以继承另一个类中所有数据和操作,即通过对已有的类的修改和扩充来满足新类的要求。,面向对象的基本特征,继承的本质特征是行为共享。,2008-2009-2,C+教学课件,使用OOP方法设计程序的基本步骤:,找出问题中的对象和类。 确定每个对象和类的功能,具有哪些属性,提供哪些方法等。 找出这些对象和类之间的关系,确定对象之间的消息通信方式、类之间的继承和复合等关系。 用程序代码实现这些对象和类。,2008-2009-2,C+教学课件,编译,程序设计,可 执 行 程 序,源 程 序,模型,语句+数据,机器指令+机器数,客观世界,认知世界,抽象,使用OOP方法解决问题示意图,计算机程序设计语言表达,2008-2009-2,C+教学课件,1.1.2 C+:面向对象的程序设计语言,C+对面向对象程序设计方法的支持 C+支持数据封装 C+类中包含私有、公有和保护成员 C+可通过发送消息来处理对象 C+中允许友元破坏封装性 C+允许函数名和运算符重载 C+支持继承性 C+支持动态联编,C语言与C+的关系,2008-2009-2,C+教学课件,1.2 C+程序的构成和书写形式,一个简单的C+语言程序 问题:在屏幕上显示一行文字。 源程序,/ This is my first C+ program #include using namespace std; void main() cout“C+ is very useful.“; coutendl; cout“I like it.“; ,C+ is very useful. I like it.,2008-2009-2,C+教学课件,C+语言程序的基本结构,C语言中原有的规则和语句在C+中仍可继续使用,但C+又增添了很多新的风格。 C+程序是大小写“敏感”的。 注释 程序中可以采用两种注释形式: /*/ 多行注释:注释可以写成多行。 / 单行注释:注释只能写成一行,它可单独占一行,也可写在某行程序代码的末尾。,2008-2009-2,C+教学课件,C+语言程序的基本结构,函数 一个C+的程序是由一到若干个函数构成的,但其中必须有且仅有一个名称为main的函数存在。 main()函数是整个程序运行时的起点,即程序从main()函数开始执行。 一个C+的函数是由两部分构成的,即函数头和函数体。 函数头是对函数的说明,包括了函数的返回值的类型、函数的名称、圆括号、形参及形参的类型说明。 函数体由一对大括号 括起来,其内容是由若干条语句构成,函数体的内容决定了该函数的功能。,void main() ,2008-2009-2,C+教学课件,C+语言程序的基本结构,编译预处理 可以使用预处理命令。 头文件 可以使用带扩展名的头文件名,也可以使用不带扩展名的头文件名。 例如 #include #include 可以包含C标准库的头文件 #include #include ,#include ,2008-2009-2,C+教学课件,C+语言程序的基本结构,名称空间(namespace) 解决名称冲突的问题。 std是系统默认的名称空间,包含所有外部名称。 可以使用运算符:来引用名称空间中定义的对象名称 std:cout 可以使用using编译指令使名称空间中的所有名称可用。 using namespace std using std:cout 只使得cout可用 如果使用#include 则不需使用using指令。,using namespace std;,2008-2009-2,C+教学课件,C+语言程序的基本结构,数据输出 可以使用C语言的printf( )函数 还可使用功能更强大、更方便的cout对象进行输出数据。 cout数据 cout对象能识别数据的类型,并将其值转换成书写的字符串形式输出。 在使用cout进行数据的输出时,需要在程序中包含iostream.h文件。 在该头文件中定义了输出流对象cout。,cout“C+ is very useful.“; coutendl; cout“I like it.“;,2008-2009-2,C+教学课件,一个简单的C+程序,#include #include void print(); / 函数声明 void main() int i; char s80; print( ); couts; couti; couts“ is “i“ years old.n“; / 验证结果 void print() printf(“printf is also can be used.n“);,printf is also can be used. Whats your name? LiTao How old are you? 20 LiTao is 20 years old.,2008-2009-2,C+教学课件,C+语言程序的基本结构,2008-2009-2,C+教学课件,数据输入: 可以使用C语言中的scanf( )函数 还可使用功能更强大、更方便的cin对象进行数据输入。 cin变量 cin变量1变量2变量n 如:上例中的语句cins;表示给变量s输入一个值,cins; cini;,2008-2009-2,C+教学课件,1.2 C+程序的构成和书写形式,每个C+程序由注释、编译预处理、程序主体三部分组成,/*一个完整的C+语言程序示例 i乘数,j-乘数,sum积 */ #include void main( ) int i,j; /说明了两个代表整数的标识符号 long int sum=0; /说明了一个代表长整数的标识符号 /输入提示 coutij; /输入操作 sum=i*j; coutendl; cout“the result is ”sumendl; ,2008-2009-2,C+教学课件,C+程序的书写格式,#include void Main ( ) int a,b; a=5; b =7;cout “a*b= ” a* bendl; ,#include void Main( ) int a,b; a=5; b=7; cout“a*b= ”a*bendl; ,便于阅读,提高可读性,2008-2009-2,C+教学课件,一个简单的C+程序:,/*一个完整的C+语言程序示例 i乘数,j-乘数,sum积 */ #include void main( ) int i,j; /说明了两个代表整数的标识符号 long int sum=0; /说明了一个代表长整数的标识符号 /输入提示 coutij; /输入操作 sum=i*j; coutendl; cout“the result is ”sumendl; ,1.3 C+的字符集和关键字,2008-2009-2,C+教学课件,C+语言的字符集,C+语言源程序中使用的字符来自C+语言的字符集。 字符集(Character set)来自ASCII表 52个大小写字母(Letters) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 10个数字(Digits) 0 1 2 3 4 5 6 7 8 9 空白符(Blanks) 空格符、制表符、回车符、换行符 图形符号(Graphic characters) ! # % : “ , . / ?,2008-2009-2,C+教学课件,程序是由一行行符号序列表达的,符号序列(单词)有六类: 标识符: 必须由字母或下划线“_”开头,不超过32个字符,用来标识用户定义的常量名、变量名、函数名、类名、文件名等。注意:不能使用关键字作为标识符。区分大小写。 关键字:具有特定含义的专用单词,是系统预定义的,如include, int, void等说明语句、数据的性质; 运算符:, +, =,=等表示指定运算的符号; 分隔符:程序的标点符号,用来分隔程序正文的。如,空格、逗号、分号、冒号、制表符、换行符和 等。 常量:程序中直接使用符号表示的数据。有数字、字符和字符串等常量。如,“Hello” 注释符: /*this a comment */,/ this a comment,单词及词法规则,2008-2009-2,C+教学课件,1.4 C+程序的编写和实现,最简单的C+程序 例1.1:,1 /输入姓名,然后在屏幕输出“HELLO,?!” 2 #include /预处理命令 3 void main() /主函数首部 4 /函数体开始 5 char name20; /定义字符变量 6 cout name; /输入姓名 8 cout “HELLO, “ name “!n“; /输出信息,n换行 9 /函数结束,Please input your name:北京 HELLO, 北京,2008-2009-2,C+教学课件,1.4 C+程序的编写和实现,最简单的C+程序 例1.2:,/求两数之和 #include /预处理命令 using namespace std; /使用命名空间std int main() /主函数首部 /函数体开始 int x,y,sum; /定义变量 coutxy; /输入语句 sum=x+y; /赋值语句 cout“x+y= “sumendl; /输出语句 return 0; /如程序正常结束,向操作系统返回一个零值 /函数结束,请给x,y赋值3 4 x+y=7,2008-2009-2,C+教学课件,C+语言的编程环境,开发程序的具体操作取决于使用的编程环境。 因为C+语言是可移植的,所以 它在许多环境中都是可用的。 例如UNIX、Linux、Windows 和MS-DOS。 C+语言编程环境包括一系列程序。 编辑器 编译器 链接器 运行和调试环境,2008-2009-2,C+教学课件,C+语言的编程环境,编辑器 使用一个文本编辑器程序输入源代码,并将代码保存在源文件中。 一般,C+程序的源文件名称的扩展名是.cpp或.cxx等。 例如welcometoyou.cpp和Hello.cpp。 该名称应该遵循特定的操作系统的命名规则。 例如,MS-DOS要求基本名包含的字符数不能大于8,所以welcometoyou.cpp不是合法的DOS文件名。 Windows允许长文件名,所以welcometoyou.cpp是合法的Windows文件名。,2008-2009-2,C+教学课件,C+语言的编程环境,编译器 编译器接收源文件,生成目标文件,扩展名为.obj。 编译器还会检查输入的程序是否是有效的C+语言程序。 如果编译器发现错误,就会报告出错,且不能生成可执行程序。 这时就必须修改错误代码,然后再编译。 显然,为了能迅速找到错误, 理解特定编译器的报错信息 是一项有用的技能。,2008-2009-2,C+教学课件,C+语言的编程环境,链接器 目标代码虽然已经是机器代码,但还不能被执行。 缺少下面两样东西 启动代码:相当于程序和操作系统之间的接口。 库函数的代码:库文件中包含许多函数的目标代码。 链接器的作用就是将这三个元素(目标代码、启动代码和库代码)结合起来,并将它们放在一个文件中,即可执行文件,扩展名为.exe。,2008-2009-2,C+教学课件,Windows的C+语言编程环境,Windows并不包含C+编译器,所以需要获得并安装一个C+编译器。 许多现代的编译器都是集成开发环境(Integrated Development Environment,IDE)的一部分。 包括编辑器、编译器、链接器 还包括一个符号调试程序在内的运行支持系统。 许多软件厂商都提供了基于Windows的集成开发环境 Microsoft公司的Visual C+ Borland公司的C+ Builder Metrowerks公司的Code Warrior,2008-2009-2,C+教学课件,DOS的C+语言编程环境,基于DOS的IDE Borland公司的Turbo C+ Borland公司的Borland C+ 许多Windows上的IDE也提供了在DOS命令行环境中编程的命令行工具。,2008-2009-2,C+教学课件,C+语言程序的开发过程,一般分成五个步骤 定义程序目标 设计程序 编写代码 编译 运行、测试和调试程序,2008-2009-2,C+教学课件,C+语言程序的开发过程,定义程序目标 在开始解决问题之前,程序的开发人员必须彻底了解问题是什么,对即将要创建的程序要做的事情有个清晰的认识。 这需要仔细考虑以下问题 程序需要什么信息 程序需要执行哪些计算和操作 程序应该报告什么信息 例如,计算任意一个圆环的面积 提出问题,明确目标 圆环是什么?如何计算面积?需要什么数据?计算精度?,2008-2009-2,C+教学课件,C+语言程序的开发过程,设计程序 决定程序如何去解决问题。 需要考虑 如何给程序提供必要的数据 程序中如何表示数据 用什么方法来处理数据 程序如何组织 程序怎样报告结果 完成这个程序需要多长时间 应该用一般的概念考虑设计中的问题,而不是考虑具体的代码。,2008-2009-2,C+教学课件,C+语言程序的开发过程,编写代码 编写代码来实现前面的设计,即用C+语言来表示程序设计。 需要开发人员熟练掌握C+语言的知识。 可以在草稿纸上勾画自己的想法或书写代码,但最终必须将代码输入计算机。 输入代码所采用的机制则取决于具体的编程环境。 一般来说,需要使用文本编辑器(例如Windows的记事本程序)来创建一种文件,称为源文件 源文件包含程序设计的C+语言表示形式(称为源程序或源代码),2008-2009-2,C+教学课件,C+语言程序的开发过程,编译 把C+语言源程序转换成机器语言表示的程序。 这种程序可以直接被计算机理解和执行,所以称之为可执行程序,放在可执行文件中。 编译的具体细节取决于使用的编程环境。 C+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届上海市桃浦中学 高一化学第一学期期中质量跟踪监视模拟试题含解析
- 农行银行面试题目及答案
- 重庆市渝东六校2026届化学高一上期末复习检测模拟试题含解析
- 2025合同价款调整补充协议
- 2025食品安全供货合同范本
- 西藏拉萨市那曲二高2026届高一化学第一学期期中学业质量监测试题含解析
- 银行借款合同的法律条款
- 2026届吉林省公主岭市范家屯镇一中化学高一第一学期期末综合测试试题含解析
- 湖南省娄底市2026届高三上化学期中复习检测模拟试题含解析
- 2025调动合同样本
- 《现代企业管理》期末考试复习题(附答案)
- 安全生产考核巡查办法全文
- FZ/T 60039-2013膜结构用涂层织物剥离强力试验方法
- 监理实施细则(天然气)
- 校本课程开发教学课件
- 《卷烟原料配方设计》配套教学课件
- 秉持责任担当厚植家国情怀-主题班会课件
- 水电站运行和管理课件
- 叶片泵的叶轮理论与性能
- 脑干系统定位诊断
- SMARO型自动络筒机常见故障分析及操作说明ppt课件
评论
0/150
提交评论