- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]C语言程序设计_第一章
C++语言程序设计
第一章 程序设计基础
天津科技大学 赵青
本章主要内容
计算机程序设计语言的发展历程
面向对象的设计思想
面向对象的软件开发
信息的表示与存储基础
程序开发流程
本章主要内容
计算机程序设计语言的发展历程
面向对象的设计思想
面向对象的软件开发
信息的表示与存储基础
程序开发流程
计算机语言
机器语言
汇编语言
高级语言
面向过程的高级语言
面向对象的高级语言
计算机程序设计语言的发展历程
机器语言与汇编语言
机器语言:由计算机硬件系统可以识别的二进制指令组成的语言
晦涩难懂,难以记忆,与人类自然语言存在着巨大鸿沟,软件开发难度大、周期长,功能简单。
汇编语言:将机器语言中的指令映射为一些有含义的助记符,翻译软件(汇编器)完成汇编语言到机器语言的转换
缩小了与人类自然语言之间的鸿沟,便于记忆,可读性增强,但仍要考虑一些机器底层的细节,效率低。
计算机程序设计语言的发展历程
机器语言与汇编语言(续)
语句:3a-2b+1的值赋给a
写成汇编语言和机器语言分别是:
计算机程序设计语言的发展历程
mov eax, DWORD PTR a_ $ [ebp]
Lea eax, DWORD PTR [eax+eax*2]
Mov ecx, DWORD PTR b_ $ [ebp]
Add ecx, ecx
Sub eax, ecx
Inc eax
Mov DWORD PTR a_ $ [ebp], eax
8b 45 fc
8d 04 40
8b 4d f8
03 c9
2b c1
40
89 45 fc
高级语言
一种接近于人类语言使用习惯的程序设计语言,其语法和结构更类似普通英文,采用了具有一定含义的数据命名和容易理解的执行语句,且屏蔽了机器的细节,提高了语言的抽象层次,可以依照现实描述的含义来构建程序。
高级语言举例:FORTRAN、BASIC、Pascal、C、C++、JAVA、C#等。
前例用高级语言表示:a=3*a-2*b+1;
计算机程序设计语言的发展历程
面向对象的高级语言
面向对象相对于面向过程
特点:
将一切客观事物看成具有属性和行为的对象,通过抽象找出同一类对象的共同属性和行为,形成类。通过类的继承和多态方便地实现代码重用,大大缩短软件开发周期,使软件风格统一并便于维护和升级。
代表语言:
C++、C# 、JAVA、LISP家族的面向对象语言、Smalltalk、Ada语言等。
计算机程序设计语言的发展历程
本章主要内容
计算机程序设计语言的发展历程
面向对象的设计思想
面向对象的软件开发
信息的表示与存储基础
程序开发流程
面向过程的设计
最早的面向过程程序设计
目的:用于数学计算
主要工作:设计求解问题的过程
缺点:对于当今庞大、关系复杂的大型程序难以开发和维护
面向对象的设计思想
结构化的面向过程程序设计
优点:将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务(子程序),自顶向下、逐步求精,便于开发和维护
缺点:可重用性差、数据安全性差、难以适应复杂的大型软件和图形界面的应用软件
数据和处理数据的过程相互独立,数据结构改变时,所有相关的过程都需修改。
每一种相对于老问题的新方法都要带来额外的开销。
图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难
面向对象的设计思想
难以维护
难以适应图形化程序开发
面向对象的方法
核心思想:
将一切客观实体都看成对象,每个对象由数据(描述实体的属性)和作用于数据上的操作(体现事物的行为)构成一独立的整体,对同型号对象抽象出其共性形成类。
通信方式:
类通过一个简单的外部接口,与外界发生关系。
对象与对象之间通过消息进行通信。
面向对象的设计思想
实例:面向对象VS面向过程
设计一个五子棋对弈程序
面向对象的设计思想
面向过程的设计
分析出解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用时一一调用即可
五子棋程序步骤设计:
面向对象的设计思想
1、开始游戏
2、黑子先走
3、绘制画面
4、判断输赢
5、轮到白子
6、绘制画面
7、判断输赢
8、返回步骤2
9、输出最后结果
面向过程的设计
面向对象的设计思想
BEGIN
绘制画图
判断输赢
白子走步
绘制画图
判断输赢
黑子走步
步骤循环
面向对象的设计
分析出整个问题共涉及到哪些功能模块,而不是步骤。
五子棋程序功能模块设计:
面向对象的设计思想
1、黑白双方,这两方的行为是一模一样的
2、棋盘系统,保存当前棋谱,绘制画面
3、规则系统,负责判定诸如犯规、输赢等
面向对象的设计
面向对象的设计思想
玩家对象
棋盘对象
规则对象
方法:接受用户输入
属性:玩家标识;输入记录;…
属性:每步棋盘记录;…
方法:绘制画面
方法:判断是否犯规;判断输赢;…
优点
文档评论(0)