版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++程序设计基础第1章C++初步北京邮电大学信通院方莉mrs.fangligmail
C++程序设计基础第1章C++初步2第一章C++入门C++语言是一门优秀的程序设计语言,在计算机科学领域中有着广泛的应用。本章学习:C++语言的发展史开发C++程序的步骤第一个C++程序2第一章C++入门C++语言是一门优秀的程序设计语言,在计23第一章C++入门1.1程序设计语言的发展1
1.2面向过程的程序设计2
1.3面向对象的程序设计3
1.4C++的诞生4
1.5程序开发过程5
1.6最简单的C++程序6
1.7内存的表示和使用73第一章C++入门1.1程序设计语言的发展134第一章C++入门1.1程序设计语言的发展1
1.2面向过程的程序设计2
1.3面向对象的程序设计3
1.4C++的诞生4
1.5程序开发过程5
1.6最简单的C++程序6
1.7内存的表示和使用74第一章C++入门1.1程序设计语言的发展141.1程序设计语言的发展计算机程序计算机的工作是用程序来控制的;程序是指令的集合;指令是计算机可以识别的命令。1.1程序设计语言的发展计算机程序561.1程序设计语言的发展机器语言简单的“0”和“1”的组合,与硬件相关。汇编语言
将机器语言映射为一些可以被人们读懂的助记符,如“ADD”、“SUB”等,与硬件相关。高级语言接近自然语言,与硬件无关。61.1程序设计语言的发展机器语言671.1程序设计语言的发展高级语言:1、面向过程的语言
BASIC、PASCAL、C2、面向对象的语言
C++、JAVA
71.1程序设计语言的发展高级语言:781.1程序设计语言的发展例如:要向屏幕打印一个“A”字符1、BASIC语言:PRINT“A”2、PASCAL语言:writeln(‘A’);3、C语言: printf(“A”);4、C++语言:cout<<“A”;5、JAVA语言:System.out.print("A");81.1程序设计语言的发展例如:要向屏幕打印一个“A”字符89第一章C++入门1.1程序设计语言的发展1
1.2面向过程的程序设计2
1.3面向对象的程序设计3
1.4C++的诞生4
1.5程序开发过程5
1.6最简单的C++程序6
1.7内存的表示和使用79第一章C++入门1.1程序设计语言的发展19101.2面向过程的程序设计程序的目的:用于数学计算主要工作:设计求解问题的过程缺点:对于庞大、复杂的程序难以开发和维护101.2面向过程的程序设计程序的目的:用于数学计算10111.2面向过程的程序设计主要设计思路自顶向下,逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。一个计算机程序可以看成是由一系列任务组成的,任何一项任务如果过于复杂就将其分解成一系列较小的子任务,直至每一项任务都很小,很容易解决。111.2面向过程的程序设计主要设计思路11121.2面向过程的程序设计程序结构按功能划分为若干个基本模块,形成一个树状结构。各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。其模块化实现的具体方法是使用子程序。模块采用单入单出。121.2面向过程的程序设计程序结构1213计算每门课的平均成绩多少门课学生人数每门课总分每门课总分/学生人数选课学生档案每个学生该门课的成绩累加选择一门课选课的学生读数据1.2面向过程的程序设计13计算每门课的平均成绩多少门课学生人数每门课总分每门课总分13141.2面向过程的程序设计基本结构1、顺序2、分支3、循环141.2面向过程的程序设计基本结构141.2面向过程的程序设计优点:有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。1.2面向过程的程序设计优点:15161.2面向过程的程序设计缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件结构化编程将数据和过程相分离;当数据结构改变时,所有相关的处理过程都要进行相应的修改。结构化编程对代码重用支持不够。每一种相对于老问题的新方法都要带来额外的开销。图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。161.2面向过程的程序设计缺点:可重用性差、数据安全性差1617第一章C++入门1.1程序设计语言的发展1
1.2面向过程的程序设计2
1.3面向对象的程序设计3
1.4C++的诞生4
1.5程序开发过程5
1.6最简单的C++程序6
1.7内存的表示和使用717第一章C++入门1.1程序设计语言的发展117181.3面向对象的程序设计面向对象的程序设计将数据和处理数据的过程当成一个整体—对象。
1)封装由对象的概念支持。只需知道外部接口,不需知道内部实现,就可以使用的特性。2)继承由类的概念支持。利用已有的成果进行扩展,充分体现了代码重用。3)多态运行时特性。181.3面向对象的程序设计面向对象的程序设计将数据和处理181.3面向对象的程序设计将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体——对象。对同类型对象抽象出其共性,形成类。类通过一个简单的外部接口,与外界发生关系。对象与对象之间通过消息进行通讯。特性:封装性、继承性、多态性1.3面向对象的程序设计将数据及对数据的操作方法封装在一起191.3面向对象的程序设计优点:程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。1.3面向对象的程序设计优点:201.3面向对象的程序设计一般意义上的对象:是现实世界中一个实际存在的事物。可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。是构成世界的一个独立单位,具有:静态特征:可以用某种数据来描述动态特征:对象所表现的行为或具有的功能1.3面向对象的程序设计一般意义上的对象:211.3面向对象的程序设计面向对象方法中的对象:是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。属性:用来描述对象静态特征的数据项。行为:用来描述对象动态特征的操作序列。1.3面向对象的程序设计面向对象方法中的对象:221.3面向对象的程序设计分类—人类通常的思维方法分类所依据的原则——抽象忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象出的概念。1.3面向对象的程序设计分类—人类通常的思维方法231.3面向对象的程序设计面向对象方法中的"类"具有相同属性和服务的一组对象的集合为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。类与对象的关系:犹如模具与铸件之间的关系,一个属于某类的对象称为该类的一个实例。1.3面向对象的程序设计面向对象方法中的"类"241.3面向对象的程序设计封装把对象的属性和服务结合成一个独立的系统单元。尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏障),只保留有限的对外接口使之与外部发生联系。1.3面向对象的程序设计封装251.3面向对象的程序设计继承继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。定义:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。例如:将轮船作为一个一般类,客轮便是一个特殊类。1.3面向对象的程序设计继承261.3面向对象的程序设计多态指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。例如:数的加法->实数的加法
->复数的加法1.3面向对象的程序设计多态271.3面向对象的程序设计面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括:面向对象的分析(OOA)面向对象的设计(OOD)面向对象的编程(OOP)面向对象的测试(OOT)面向对象的软件维护(OOSM)1.3面向对象的程序设计面向对象的软件工程是面向对象方法在2829第一章C++入门1.1程序设计语言的发展1
1.2面向过程的程序设计2
1.3面向对象的程序设计3
1.4C++的诞生4
1.5程序开发过程5
1.6最简单的C++程序6
1.7内存的表示和使用729第一章C++入门1.1程序设计语言的发展129301.4C++的诞生C++语言从C语言的基础上发展起来的。
C语言历史:1、贝尔实验室的DennisRitchie开发2、在B语言的基础3、作为Unix操作系统的开发语言优点:1、与硬件无关2、设计严谨301.4C++的诞生C++语言从C语言的基础上发展起来的30311.4C++的诞生1978年,BrianKernighan与DennisRitchie出版了《TheCProgrammingLanguage》是最早的经典传统C语言的书,很薄,只有两百多页,所以这本C语言的圣经又称`K&R“。当时很快出现了多个不兼容的C语言版本,因此需要制订一种标准C。所以1988年,第二版《TheCProgrammingLanguage》,是最经典的标准C的书籍。311.4C++的诞生1978年,BrianKernig31321.4C++的诞生C语言之父DennisRitchieTheCProgrammingLanguage321.4C++的诞生C语言之父DennisRitchi32331.4C++的诞生C语言是一门面向过程的程序语言优点:1、丰富的运算符和数据类型;2、可直接访问内存3、程序运行效率高4、可移植性好缺点:1、类型检查机制较弱,许多错误编译时不能发现;2、不支持代码重用;3、对于大规模程序,很难控制程序的复杂性。331.4C++的诞生C语言是一门面向过程的程序语言33341.4C++的诞生
C++语言的优点:
1、简化程序复杂性2、促进代码重用3、使用先进的面向对象技术Bjarne出版了的经典C++著作《TheC++ProgrammingLanguage》,1991年第2版,2019年第3版,2000年特别版,他被誉为C++之父。
341.4C++的诞生C++语言的优点:34351.4C++的诞生
C++之父BjarnestroustrupTheC++ProgrammingLanguage351.4C++的诞生C++之父TheC++Pro3536Bjarne语录1.不用害怕,一切都会随着时间的推移而逐渐明朗起来。
2.你并不需要在知道了C++的所有细节之后才能写出好的C++程序。
3.请特别关注程序设计技术,而不是各种语言特征。
36Bjarne语录1.不用害怕,一切都会随着时间的推移而36371.4C++的诞生C++语言是从C语言发展演变而来。C++包含了整个C,C是建立C++的基础。C++包含C的所有特征、属性、优缺点,并添加了面向对象的支持。C++语言C语言面向对象371.4C++的诞生C++语言是从C语言发展演变而来。C3738第一章C++入门1.1程序设计语言的发展1
1.2面向过程的程序设计2
1.3面向对象的程序设计3
1.4C++的诞生4
1.5程序开发过程5
1.6最简单的C++程序6
1.7内存的表示和使用738第一章C++入门1.1程序设计语言的发展1381.5程序开发过程基本术语
源程序用源语言写的,有待翻译的程序目标程序也称为“结果程序”,是源程序通过翻译程序加工以后所生成的程序。可执行程序目标程序和所用的其他资源进行链接,生成的可以直接运行的程序。翻译程序:指一个把源程序翻译成等价的目标程序的工具。1.5程序开发过程基本术语391.5程序开发过程三种不同类型的翻译程序汇编程序把用汇编语言写成的源程序,翻译成机器语言形式的目标程序。编译程序若源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,那么,该翻译程序就称为"编译程序"。1.5程序开发过程三种不同类型的翻译程序401.5程序开发过程三种不同类型的翻译程序解释程序这也是一种翻译程序,同样是将高级语言源程序翻译成机器指令。它与编译程序不同点就在于:它是边翻译边执行的,即输入一句、翻译一句、执行一句,直至将整个源程序翻译并执行完毕。1.5程序开发过程三种不同类型的翻译程序411.5程序开发过程基本术语
链接程序对汇编程序或目标程序与所需的其他资源进行链接,生成可执行文件的程序。1.5程序开发过程基本术语42431.5程序开发过程源程序:.cppcompile(Ctrl+F7)目标程序:.objBuild(F7)可执行程序:.exe431.5程序开发过程源程序:.cpp431.5程序开发过程编辑将源程序输入到计算机中,生成后缀为cpp的磁盘文件。编译将程序的源代码转换为机器语言代码。链接将多个源程序文件以及库中的某些文件连在一起,生成一个后缀为exe的可执行文件。运行调试1.5程序开发过程编辑4445第一章C++入门1.1程序设计语言的发展1
1.2面向过程的程序设计2
1.3面向对象的程序设计3
1.4C++的诞生4
1.5程序开发过程5
1.6最简单的C++程序6
1.7内存的表示和使用745第一章C++入门1.1程序设计语言的发展145461.6简单的C++程序/************************************程序文件:ch1_1.cpp程序功能:在屏幕上输出Helloworld!作者:XXX创建时间:XX年XX月XX日*************************************/#include<iostream>usingnamespacestd;voidmain(){
cout<<“Helloworld!"<<endl;}注释编译预处理程序主体461.6简单的C++程序/***************46471.6简单的C++程序
“注释”是程序员为读者作的说明,用来提高程序的可读性,C++程序在编译过程中忽略注释。1、“//”
用来注释一行说明,在“//”之后的文字直到换行都为注释。一般用来对于程序中难懂的代码进行说明。2、
“/*”和“*/”用来注释一段说明,在“/*”和“*/”之间的部分,不管多长都为注释。471.6简单的C++程序“注释”是程序员为读者作的说47481.6简单的C++程序所有以“#”开头的代码,称为编译预处理。
例:#include<iostream>每次启动编译器时,先运行预处理器,预处理器找到所有以“#”开头的代码行进行处理。include是一条预处理指令,意思是“后面跟的是一个文件名,请找到该文件并将其加入。”iostream是系统定义的一个“头文件”,它设置了C++的I/O相关环境,并定义了输入输出流对象cout和cin等。481.6简单的C++程序所有以“#”开头的代码,称为编48491.6简单的C++程序
usingnamespacestd;2019年批准的标准C++使用namespace命名空间标准。iostream是一个标准函数库,cout是标准库函数提供的一个对象,标准库函数在namespace说明书中被指定为“std”。因此这句代码的意思是使用标准命名空间std中的函数。491.6简单的C++程序usingnamespace49501.6简单的C++程序正式的程序从代码“voidmain()”开始,它包含一个名为main()的函数,也称为主函数。每个C++程序有且仅有一个main()函数,程序在开始运行时会自动调用main()函数。main()前面的void表示函数的返回值的类型,意味着程序执行结束后无需向操作系统返回。函数:是指能实现一个或多个功能的代码块。501.6简单的C++程序正式的程序从代码“voidma50511.6简单的C++程序
所有的函数都以左大括号{开始,右大括号}结束,在大括号{}之间的部分称为函数体。
cout<<“Helloworld!”<<endl;
1、cout:标准输出流对象,2、<<:插入操作符可以连续使用3、endl:代表换行符意思是使用cout将“<<”后面的内容打印在屏幕上。在函数体的每一句代码后面都有一个分号“;”表示一个C++语句的结束。511.6简单的C++程序所有的函数都以左大括号{开始,51521.6简单的C++程序操作步骤1、新建一个工程 1)启动VC++6.0(或VC2019)2)新建一个项目,选择“win32控制台应用程序”,空项目3)编写源程序2、编译和连接
编译:compile(Ctrl+F7)
链接:Build(F7)3、运行使用的命令:Ctrl+F5521.6简单的C++程序操作步骤5253程序编译环境和简单设计及调试编译环境:VC++6.0文件的建立1、工程的建立File---new---projects----win32ConsoleApplication调试运行
2、文件的建立File---new----files---c++sourcefile3、调试、运行53程序编译环境和简单设计及调试编译环境:VC++6.0531.1程序设计语言的发展1
1.2面向过程的程序设计2
1.3面向对象的程序设计3
1.4C++的诞生4
1.5程序开发过程5
1.6最简单的C++程序6
1.7内存的表示和使用7第一章C++入门1.1程序设计语言的发展11.2面向过程541.7内存的抽象表示和使用内存的抽象表示每个存储单元可以存放一个字节(8bit)数据,每个内存单元有一个唯一的地址。101100106781.7内存的抽象表示和使用内存的抽象表示101100106551.7内存的抽象表示和使用操作系统一般会把内存划分区域来使用,便于管理,比如代码区、数据区
等。被编译
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳理工大学《传感与测试技术》2023-2024学年第一学期期末试卷
- 国有土地委托经营管理合同
- 合同编504条与民法典61条
- 大班音乐课件P《春雨沙沙》
- 2024年六盘水客运从业资格证考试一点通
- 2024个人短期借款合同书
- 会议备忘录范文6篇-20220308150300
- 2024中国工商银行借贷合同范本
- 2024版家政服务合同样本
- 2024个人小额贷款合同书范本
- 《万维网服务大揭秘》课件 2024-2025学年人教版新教材初中信息技术七年级全一册
- 2024年新华社招聘应届毕业生及留学回国人员129人历年高频难、易错点500题模拟试题附带答案详解
- 人教版(2024新版)七年级上册英语Unit 5单元测试卷(含答案)
- (完整版)新概念英语第一册单词表(打印版)
- 美食行业外卖平台配送效率提升方案
- 中国民用航空局信息中心招聘笔试题库2024
- 芯片设计基础知识题库100道及答案(完整版)
- 2025届高考语文一轮复习:文言文概括和分析 课件
- 年产10万套新能源车电池托盘项目可行性研究报告写作模板-申批备案
- 《大学美育》 课件 4.模块五 第二十四章 时空综合的影视艺术之美
- 2022-2023学年广东省广州市天河区六年级(上)期末数学试卷(含答案)
评论
0/150
提交评论