版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计基础,第1章 C+初步 北京邮电大学信通院 方莉 ,2,第一章 C+入门,C+语言是一门优秀的程序设计语言,在计算机科学领域中有着广泛的应用。 本章学习: C+语言的发展史 开发C+程序的步骤 第一个C+程序,3,第一章 C+入门,4,第一章 C+入门,1.1 程序设计语言的发展,计算机程序 计算机的工作是用程序来控制的; 程序是指令的集合; 指令是计算机可以识别的命令,6,1.1 程序设计语言的发展,机器语言 简单的“0”和“1”的组合,与硬件相关。 汇编语言 将机器语言映射为一些可以被人们读懂的助记符,如“ADD”、“SUB”等,与硬件相关。 高级语言 接近自然语言,与硬件无关
2、,7,1.1 程序设计语言的发展,高级语言: 1、面向过程的语言 BASIC、PASCAL、C 2、面向对象的语言 C+、JAVA,8,1.1 程序设计语言的发展,例如:要向屏幕打印一个“A”字符 1、BASIC语言: PRINT “A” 2、PASCAL语言:writeln(A); 3、C语言: printf(“A”); 4、C+语言: cout “A”; 5、JAVA语言: System.out.print(A,9,第一章 C+入门,10,1.2 面向过程的程序设计,程序的目的:用于数学计算 主要工作:设计求解问题的过程 缺点:对于庞大、复杂的程序难以开发和维护,11,1.2 面向过程的程
3、序设计,主要设计思路 自顶向下,逐步求精。 采用模块分解与功能抽象,自顶向下、分而治之。 一个计算机程序可以看成是由一系列任务组成的,任何一项任务如果过于复杂就将其分解成一系列较小的子任务,直至每一项任务都很小,很容易解决,12,1.2 面向过程的程序设计,程序结构 按功能划分为若干个基本模块,形成一个树状结构。 各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。 其模块化实现的具体方法是使用子程序。 模块采用单入单出,13,计算每门课的平均成绩,1.2 面向过程的程序设计,14,1.2 面向过程的程序设计,基本结构 1、顺序 2、分支 3、循环,1
4、.2 面向过程的程序设计,优点: 有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护,16,1.2 面向过程的程序设计,缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件 结构化编程将数据和过程相分离; 当数据结构改变时,所有相关的处理过程都要进行相应的修改。 结构化编程对代码重用支持不够。 每一种相对于老问题的新方法都要带来额外的开销。 图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难,17,第一章 C+入门,18,1.3 面向对象的程序设计,面向对象的程序设计将数据和处理数据的过程当成一个整体对象。 1)封装 由对象的
5、概念支持。只需知道外部接口,不需知道内部实现,就可以使用的特性。 2)继承 由类的概念支持。利用已有的成果进行扩展,充分体现了代码重用。 3)多态 运行时特性,1.3 面向对象的程序设计,将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体对象。 对同类型对象抽象出其共性,形成类。 类通过一个简单的外部接口,与外界发生关系。 对象与对象之间通过消息进行通讯。 特性:封装性、继承性、多态性,1.3 面向对象的程序设计,优点: 程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。 通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便,1
6、.3 面向对象的程序设计,一般意义上的对象: 是现实世界中一个实际存在的事物。 可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。 是构成世界的一个独立单位,具有: 静态特征:可以用某种数据来描述 动态特征:对象所表现的行为或具有的功能,1.3 面向对象的程序设计,面向对象方法中的对象: 是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。 属性:用来描述对象静态特征的数据项。 行为:用来描述对象动态特征的操作序列,1.3 面向对象的程序设计,分类人类通常的思维方法 分类所依据的原则抽象 忽略事物的非本质特征,只注意那些与当前目标有关的
7、本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。 例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象出的概念,1.3 面向对象的程序设计,面向对象方法中的类 具有相同属性和服务的一组对象的集合 为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。 类与对象的关系:犹如模具与铸件之间的关系,一个属于某类的对象称为该类的一个实例,1.3 面向对象的程序设计,封装 把对象的属性和服务结合成一个独立的系统单元。 尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏障),只保留有限的对外接口使之与外部发生联系,1.3 面向对象的程序设计
8、,继承 继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。 定义:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。 例如:将轮船作为一个一般类,客轮便是一个特殊类,1.3 面向对象的程序设计,多态 指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。 例如: 数的加法-实数的加法 -复数的加法,1.3 面向对象的程序设计,面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对
9、象的编程(OOP) 面向对象的测试(OOT) 面向对象的软件维护(OOSM,29,第一章 C+入门,30,1.4 C+的诞生,C+语言从C语言的基础上发展起来的。 C语言历史: 1、贝尔实验室的Dennis Ritchie开发 2、在B语言的基础 3、作为Unix操作系统的开发语言 优点: 1、与硬件无关 2、设计严谨,31,1.4 C+的诞生,1978年,Brian Kernighan与Dennis Ritchie 出版了The C Programming Language是最早的经典传统C语言的书,很薄,只有两百多页,所以这本C语言的圣经又称K void main() cout“Hello
10、 world!endl;,47,1.6 简单的C+程序,注释” 是程序员为读者作的说明,用来提高程序的可读性,C+程序在编译过程中忽略注释。 1、“/” 用来注释一行说明,在“/”之后的文字直到换行都为注释。一般用来对于程序中难懂的代码进行说明。 2、 “/*”和“*/” 用来注释一段说明,在“/*”和“*/”之间的部分,不管多长都为注释,48,1.6 简单的C+程序,所有以“#”开头的代码,称为编译预处理。 例:#include 每次启动编译器时,先运行预处理器,预处理器找到所有以“#”开头的代码行进行处理。 include是一条预处理指令,意思是“后面跟的是一个文件名,请找到该文件并将其加
11、入。” iostream是系统定义的一个“头文件”,它设置了C+的I/O相关环境,并定义了输入输出流对象cout和cin等,49,1.6 简单的C+程序,using namespace std; 1998年批准的标准C+使用namespace命名空间标准。 iostream是一个标准函数库,cout是标准库函数提供的一个对象,标准库函数在namespace说明书中被指定为“std”。因此这句代码的意思是使用标准命名空间std中的函数,50,1.6 简单的C+程序,正式的程序从代码“void main()”开始,它包含一个名为main()的函数,也称为主函数。每个C+程序有且仅有一个main()
12、函数,程序在开始运行时会自动调用main()函数。 main()前面的void表示函数的返回值的类型,意味着程序执行结束后无需向操作系统返回,函数:是指能实现一个或多个功能的代码块,51,1.6 简单的C+程序,所有的函数都以左大括号开始,右大括号结束,在大括号 之间的部分称为函数体。 cout“Hello world!”endl; 1、cout:标准输出流对象, 2、: 插入操作符可以连续使用 3、endl:代表换行符 意思是使用cout将“”后面的内容打印在屏幕上。 在函数体的每一句代码后面都有一个分号“;”表示一个C+语句的结束,52,1.6 简单的C+程序,操作步骤 1、新建一个工程
13、1) 启动VC+ 6.0(或VC2005) 2)新建一个项目,选择“win32控制台应用程序”,空项目 3) 编写源程序 2、编译和连接 编译:compile(Ctrl+F7) 链接:Build(F7) 3、运行 使用的命令:Ctrl+F5,53,程序编译环境和简单设计及调试,编译环境:VC+ 6.0 文件的建立 1、工程的建立 File-new-projects-win32 Console Application 调试运行 2、文件的建立 File -new-files-c+ source file 3、 调试、运行,第一章 C+入门,1.7 内存的抽象表示和使用,内存的抽象表示 每个存储单
14、元可以存放一个字节(8 bit)数据,每个内存单元有一个唯一的地址,1.7 内存的抽象表示和使用,操作系统一般会把内存划分区域来使用,便于管理,比如代码区、数据区等。 被编译成机器码的程序在执行时就会被复制到内存的代码区。 数据区分为: 栈区,也叫堆栈区,用于存放程序函数中的局部变量。 全局变量和静态变量区,是长期存放数据的区域。 常量区:一般是存放字符串常量的地方。 堆区:在程序执行过程中申请内存要在堆区分配空间,1.7 内存的抽象表示和使用,例1-2 显示不同数据的地址 #include using namespace std; int a=10;/全局变量 void main() int b=20,c=30;/局部变量 char *ch=Beijing; static int e=50
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年春初中化学九年级下册(科粤版)上课课件 6.3 习题
- 云南省中考研讨会课件吕明(数学)
- 高一 人教版 化学 第二章《氯气的实验室制法》课件
- 高一年级 花城版 戏剧表演 第一单元戏剧与感知 话剧《雷雨》课件
- 绿色高端精细氟化工新材料基地项目可行性研究报告写作模板-申批备案
- 红楼梦课件(含图片)
- 糕点、面包食品建设可行性研究报告
- 水果经济林(柠檬)种植基地建设可行性研究报告
- 《礼貌用语培训》课件
- (麦当劳餐饮运营管理资料)更新商业-麦当劳vi设计
- 外商投资准入特别管理措施(负面清单)(2024年版)
- 叉车定期自行检查记录表
- 气候可行性论证技术规范第8部分:能源化工类园区
- 2024年警辅人员招聘考试题库及答案
- 煤炭投标书范本范文
- 财务审计服务投标方案(技术方案)
- 质保金返还合同范本
- 《无人机驾驶基础》课件-项目三、无人机操控
- 2024年广东省高考数学模拟试卷附答案解析
- 国开2024年《初级会计》形成性考核1-4答案
- (高清版)JTGT 3360-02-2020 公路桥梁抗撞设计规范
评论
0/150
提交评论