版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-12-14北京科技大学计算机系1第第1 1章章 程序设计方法和程序设计方法和C+C+语言概述语言概述 北京科技大学北京科技大学 计算机与通信工程学院计算机与通信工程学院 -2- C+语言是一门优秀的程序设计语言,在计算机科学领域中有着广泛的应用。-3-第一章第一章 程序设计方法和程序设计方法和C+C+语言概述语言概述 1.1 1.1 程序编写过程程序编写过程1.2 1.2 面向过程的程序设计方法面向过程的程序设计方法1.3 1.3 面向对象的程序设计方法面向对象的程序设计方法1.4 1.4 C+C+语言的发展语言的发展1.5 1.5 C+C+语言程序的开发过程语言程序的开发过程 1.
2、6 1.6 一个简单的程序一个简单的程序2021-12-14北京科技大学计算机系41.1 1.1 程序编写过程程序编写过程-5-程序编写过程-6-1.2 1.2 面向过程的程序设计方法面向过程的程序设计方法-7-1.2 面向过程的程序设计方法传统的程序设计方法是模块化(或结构化)的传统的程序设计方法是模块化(或结构化)的程序设计方法,步骤为:程序设计方法,步骤为: 1 1)整个软件系统功能逐步细化为多个小的功)整个软件系统功能逐步细化为多个小的功能能功能划分;功能划分; 2 2)多个小的功能对应由一个)多个小的功能对应由一个模块(如函数,过程,分程序,子程序等)来模块(如函数,过程,分程序,子
3、程序等)来实现;实现; 3 3)多个模块合作完成较大的功能,所)多个模块合作完成较大的功能,所有模块的合作完成整个软件系统的功能。有模块的合作完成整个软件系统的功能。对于传统的程序设计,在设计和实现(编程)对于传统的程序设计,在设计和实现(编程)阶段考虑的是模块,程序本身也是由模块构成阶段考虑的是模块,程序本身也是由模块构成的,称之为面向模块的。的,称之为面向模块的。-8-1.2 面向过程的程序设计方法基本结构基本结构 1 1、顺序、顺序 2 2、分支、分支 3 3、循环、循环开始执行1执行2执行3结束开始条件执行2执行1结束是否开始执行1执行2条件结束是否-9-1.2 面向过程的程序设计方法
4、模块的单入模块的单入 指的是该模块被哪些模块所调用;指的是该模块被哪些模块所调用;模块的单出模块的单出 指的是该模块调用了哪些模块。指的是该模块调用了哪些模块。-10-1.2 面向过程的程序设计方法主要思想主要思想 自顶向下自顶向下 逐步求精逐步求精 一个计算机程序可以看成是由一系列任务组一个计算机程序可以看成是由一系列任务组成的,任何一项任务如果过于复杂就将其分解成成的,任何一项任务如果过于复杂就将其分解成一系列较小的子任务,直至每一项任务都很小,一系列较小的子任务,直至每一项任务都很小,很容易解决很容易解决 从问题本身开始,经过逐步求精,将解决问题从问题本身开始,经过逐步求精,将解决问题的
5、步骤分解为由基本程序结构组成的结构化程序的步骤分解为由基本程序结构组成的结构化程序框图,据此就很容易编写出结构良好、易于调试框图,据此就很容易编写出结构良好、易于调试的程序来。的程序来。-11-1.2 面向过程的程序设计方法计算每门课的平均成绩多少门课学生人数每门课总分每门课总分/学生人数选课学生档案每个学生该门课的成绩累加选择一门课选课的学生读数据-12-1.2 面向过程的程序设计方法不足:不足: 1 1、结构化编程将、结构化编程将数据和过程相分离数据和过程相分离; 2 2、结构化编程对、结构化编程对代码重用代码重用支持不够。支持不够。 可重用思想就是创建一些已知属性的组件,然可重用思想就是
6、创建一些已知属性的组件,然后插入到自己的程序中。后插入到自己的程序中。-13-1.3 1.3 面向对象的程序设计方法面向对象的程序设计方法-14-面向对象程序设计将数据的加工处理方法和数面向对象程序设计将数据的加工处理方法和数据捆绑在一起,以数据为中心描述系统。数据据捆绑在一起,以数据为中心描述系统。数据相对于功能而言具有更强的稳定性。相对于功能而言具有更强的稳定性。围绕真实世界的概念来组织模型,采用对象来围绕真实世界的概念来组织模型,采用对象来描述问题空间中的实体。描述问题空间中的实体。 实体对象类抽象数据类型抽象抽象实例化逻辑实现映射计算机世界现实世界-15-第一步:分析、归纳、生成对象第
7、一步:分析、归纳、生成对象第二步:用对象集成系统第二步:用对象集成系统宴会食物装饰品宾客主食、菜、甜食、饮料、花、布艺、草编、亲戚、朋友、同事、-16-1.3 面向对象的程序设计方法 教师信息的登记教师信息的登记教师信息的修改教师信息的修改教师信息的删除教师信息的删除学生信息的登记学生信息的登记学生信息的修改学生信息的修改学生信息的删除学生信息的删除课程信息的登记课程信息的登记课程信息的修改课程信息的修改课程信息的删除课程信息的删除设定必修课设定必修课选择选修课选择选修课选择教师选择教师教师信息的打印教师信息的打印教师查询学生名单教师查询学生名单学生信息的打印学生信息的打印学生查看教师名单学生
8、查看教师名单课程信息的打印课程信息的打印查询教师和学生名单查询教师和学生名单学生选课管理信息系统学生选课管理信息系统管理员管理员学生学生教师教师课程课程学生选课管理信息系统学生,教师,课程,管理员-17-1.3 面向对象的程序设计方法-18-1.3 面向对象的程序设计方法 面向对象的程序设计将数据和处理数据的面向对象的程序设计将数据和处理数据的过程当成一个整体过程当成一个整体对象。对象。 1 1)封装)封装 由对象的概念支持。只需知道外部接口,由对象的概念支持。只需知道外部接口,不需知道内部实现,就可以使用的特性。不需知道内部实现,就可以使用的特性。 2 2)继承)继承 由类的概念支持。利用已
9、有的成果进行扩由类的概念支持。利用已有的成果进行扩展,充分体现了代码重用。展,充分体现了代码重用。 3 3)多态)多态 运行时特性。运行时特性。-19-1.1.4 C+4 C+语言的发展语言的发展-20-1.4.1 程序设计语言的发展机器语言机器语言 简单的简单的“0 0”和和“1 1”的组合,与硬件相关。的组合,与硬件相关。汇编语言汇编语言 将机器语言映射为一些可以被人们读懂的将机器语言映射为一些可以被人们读懂的助记符,如助记符,如“ADDADD”、“SUBSUB”等,与硬件相关。等,与硬件相关。高级语言高级语言 接近自然语言,与硬件无关接近自然语言,与硬件无关。-21-1.4.1 程序设计
10、语言的发展高级语言:高级语言: 1 1、面向过程的语言、面向过程的语言 BASICBASIC、PASCALPASCAL、C C 2 2、面向对象的语言、面向对象的语言 C+C+、JAVAJAVA、C#C#-22-1.4.1 程序设计语言的发展例如:要向屏幕打印一个例如:要向屏幕打印一个“A A”字符字符 1、BASIC语言:语言: PRINT “A” 2、PASCAL语言:语言:writeln(A); 3、C语言:语言: printf(“A”); 4、C+语言:语言: cout “A”; 5、JAVA语言:语言: System.out.print(A );面向过程的语言:以面向过程的语言:以功
11、能功能为单位为单位面向对象的语言:以面向对象的语言:以对象对象为单位为单位-23-1.41.4.2 C+ C+的发展的发展C+C+语言从语言从C C语言的基础上发展起来的语言的基础上发展起来的C C语言语言 历史:历史: 1 1、贝尔实验室的、贝尔实验室的Dennis Ritchie开发开发 2 2、在、在B语言语言的基础的基础 3 3、作为、作为Unix操作系统的开发语言操作系统的开发语言 优点:优点: 1 1、与、与硬件硬件无关无关 2 2、设计严谨、设计严谨-24-1.41.4.2 C+ C+的发展的发展 1978年,年,Brian Kernighan与与Dennis Ritchie 出
12、版了出版了The C Programming Language是最是最早的经典早的经典传统传统C语言语言的书,很薄,只有两百多的书,很薄,只有两百多页,所以这本页,所以这本C语言的圣经又称语言的圣经又称“K&R”。 当时很快出现了多个不兼容的当时很快出现了多个不兼容的C语言版本,语言版本,因此需要制订一种标准因此需要制订一种标准C。所以所以1988年,第二年,第二版版The C Programming Language,是最经是最经典的标准典的标准C的书籍的书籍。 -25-1.41.4.2 C+ C+的发展的发展C语言之父dennis Ritchie-26-1.41.4.2 C+ C+
13、的发展的发展C C语言是一门面向过程的程序语言语言是一门面向过程的程序语言优点:优点:1 1、可直接访问内存、可直接访问内存2 2、程序运行效率高、程序运行效率高3 3、可移植性好、可移植性好缺点:缺点:1 1、类型检查机制较弱、类型检查机制较弱2 2、几乎不支持代码重用、几乎不支持代码重用3 3、对于大规模程序,很难控制程序的复杂性。、对于大规模程序,很难控制程序的复杂性。-27-1.41.4.2 C+ C+的发展的发展 C+语言的优点:语言的优点: 1 1、简化简化程序复杂性程序复杂性 2 2、促进、促进代码重用代码重用 3 3、使用先进的、使用先进的面向对象技术面向对象技术 Bjarne
14、出版了的经典出版了的经典C+著作著作The C + Programming Language ,1991年第年第2版,版,1997年第年第3版,版,2000年特别版,他被誉为年特别版,他被誉为C+之父。之父。 -28-1.41.4.2 C+ C+的发展的发展 C+之父Bjarne stroustrup-29-1.41.4.2 C+ C+的发展的发展 C+语言是从语言是从C语言发展演变而来。语言发展演变而来。C+包含了整个包含了整个C,C是建立是建立C+的基础。的基础。C+包含包含C的所有特征、属性、优缺点,并添加了的所有特征、属性、优缺点,并添加了面向面向对象对象的支持。的支持。C+语言语言C
15、语言语言面向对象面向对象-30-1.1.5 C+5 C+语言程序的开发过程语言程序的开发过程 -31-1.5 程序开发过程本书采用本书采用VC+6.0集成开发环境集成开发环境-32-1.6 1.6 一个简单的程序一个简单的程序-33-1.6 1.6 一个简单的程序一个简单的程序/*程序文件:程序文件:ch1_1.cpp程序功能:在屏幕上输出程序功能:在屏幕上输出hello world!作作 者:者:XXX创建时间:创建时间:XX年年XX月月XX日日*/ #include using namespace std; void main() /函数定义函数定义 coutWelcome to C+ W
16、orld! endl; 注释编译预处理程序主体-34-1.6 1.6 一个简单的程序一个简单的程序 “注释注释” 是程序员为读者作的说明,用来提高程是程序员为读者作的说明,用来提高程序的可读性,序的可读性,C+C+程序在编译过程中忽略注释。程序在编译过程中忽略注释。 1 1、“/” 用来注释一行说明,在用来注释一行说明,在“/”之后的文字直到换行之后的文字直到换行都为注释。一般用来对于程序中难懂的代码进行说明。都为注释。一般用来对于程序中难懂的代码进行说明。 2 2、 “/ /* *”和和“* */ /” 用来注释一段说明,在用来注释一段说明,在“/ /* *”和和“* */ /”之间的部分,
17、之间的部分,不管多长都为注释。不管多长都为注释。-35-1.6 1.6 一个简单的程序一个简单的程序 所有以所有以“#”开头的代码,称为编译预处理。开头的代码,称为编译预处理。 #include 每次启动编译器时,先运行预处理器,预处每次启动编译器时,先运行预处理器,预处理器找到所有以理器找到所有以“#”开头的代码行进行处理。开头的代码行进行处理。include是一条预处理指令,意思是是一条预处理指令,意思是“后面跟的是后面跟的是一个文件名,请找到该文件并将其加入。一个文件名,请找到该文件并将其加入。” iostream是系统定义的一个是系统定义的一个“头文件头文件”,它,它设置了设置了C+的
18、的I/O相关环境,并定义了输入输出流相关环境,并定义了输入输出流对象对象cout和和cin等等。-36-1.6 1.6 一个简单的程序一个简单的程序 using namespace std; 1998年批准的标准年批准的标准C+使用使用namespace命名命名空间标准。空间标准。iostream是一个标准函数库,是一个标准函数库,cout是标准库函数提供的一个对象,标准库函数在是标准库函数提供的一个对象,标准库函数在namespace说明书中被指定为说明书中被指定为“std”。因此这因此这句代码的意思是句代码的意思是使用标准命名空间使用标准命名空间std中的函数中的函数。-37-1.6 1.
19、6 一个简单的程序一个简单的程序 正式的程序从代码正式的程序从代码“void main()”开始,开始,它包含一个名为它包含一个名为main()的函数,也称为的函数,也称为主函数主函数。每个每个C+C+程序有且仅有一个程序有且仅有一个main()函数,程序函数,程序在开始运行时会自动调用在开始运行时会自动调用main()函数。函数。 main()前面的前面的void表示函数的返回值的类表示函数的返回值的类型,意味着程序执行结束后无需向操作系统返型,意味着程序执行结束后无需向操作系统返回程序的运行结果。回程序的运行结果。函数:是指能实现一个或多个功能的代码块。函数:是指能实现一个或多个功能的代码块。-38-1.6 1.6 一个简单的程序一个简单的程序 所有的函数都以所有的函数都以左大括号左大括号 开始,右大括号开始,右大括号 结束,在大结束,在大括号括号之间的部分称为函数体。之间的部分称为函数体。 cout“ Hello World!”endl; 1、cout:标准输出流对象,标准输出流对象, 2、: 插入操作符可以连续使用插入操作符可以连续使用 3、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年纹绣工艺(眉形修复技巧)试题及答案
- 2025年大学大二(轮机工程)船舶动力装置原理综合测试试题及答案
- 2025年中职计算机软件基础(软件基础知识)试题及答案
- 2025年中职(建筑装饰技术)建筑装饰工程施工组织设计试题及答案
- 2025年高职电子技术(电子技术实训)试题及答案
- 2026年职业道德综合测试(职业道德规范)试题及答案
- 2025年中职(物流服务与管理)客户服务实务试题及答案
- 2025年大学第三学年(民航安全科学与工程)安全评估阶段测试题及答案
- 2025年中职(电梯安装与维修保养)电梯安装技术阶段测试试题及答案
- 2025年中职第二学年(眼视光与配镜)验光技术基础试题及答案
- 银行安全保卫基础知识考试试题及答案
- 2025年云南中烟工业公司招聘考试考试笔试试卷【附答案】
- 肝癌课件简短
- 业务协同考核管理办法
- 操盘手劳动合同附加协议
- 2025年中学生守则及中学生日常行为规范
- 理解当代中国 大学英语综合教程1(拓展版)课件 B1U3 Into the green
- 医药展会活动方案
- 【库润数据】2025口服抗衰消费者趋势洞察报告
- 快递车辆运输管理办法
- 麻醉术后健康教育
评论
0/150
提交评论