第一章 绪论.

Slides:



Advertisements
Similar presentations
迪士尼公主裙衫变化记. 《白雪公主和七个小孩人》 《白雪公主和七个小矮人》,是世界电影史上第一部长动 画片,也是迪士尼的第一部。《白雪公主》不仅为迪斯尼 带来了第一尊奥斯卡小人,更是拯救迪斯尼于水火的贵 人 —— 在经济大萧条的 1937 年的美国,《白雪公主》为迪 斯尼赚到了 850 万美元,这约等于现在的数亿美元!
Advertisements

护理部教学管理 南医大二附院 张淑芬. 护理部主要工作:  培训  质量  教学科研 临床教学的秘诀 What – 需要的、喜欢的 Who – 教师的角色 – 学生的程度、学习方式 How – 教学方法.
学年度工作总结 —— 上海建桥学院 —— 上海建桥学院 实验室与资产管理处 实验室与资产管理处.
[ Java 程序设计 教程 ] 阎菲 陈利 向郑涛 陈宇峰 中国水利水电出版社.  Java 语言是对软件开发技术有深 远影响、应用前景广泛、具有丰富 的类库、继承了 C++ 传统(摈弃了 某些不足)广泛使用的网络编程语 言。 Java 语言的特性使它可以最大 限度地利用网络。  本章介绍面向对象的基本概念:对.
Go, Next Java? No, Next 许式伟 Go ,会成为下一个 Java 吗? 不。 Go 不是下一个 Java 。 认为 Go 是下一个 Java ,那是远远低估 Go 的能力。 Go 是下一个 C !
C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
县级数字图书馆推广计划 使用培训 杨路 中文在线 产品工程师
十一章 发酵过程的实 验室研究、中试和放大. 本章重点 一、工业发酵过程研究的阶段及各阶段的 研究内容 二、实验室研究的目的及主要内容 三、了解最优化实验设计的方法 四、发酵规模缩小与放大的准则及方法.
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
软件测试技术.
国家自然科学基金项目申请 经验交流与心得体会
高考主题讲座 高考语文 董 腾.
第一章 認識程式語言.
長期照護.
第8章 面向对象的软件工程 8.1 软件工程的新途径 8.2 面向对象建模 8.3 对象模型 8.4 动态模型 8.5 功能模型.
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
Ch02物件導向程式設計 物件導向系統分析與設計.
第3章 需求分析(续) 学习目标 什么是需求建模? 需求分析建模方法 掌握实体—关系图(E—R图); 掌握状态转换图;
第四章 工业地域的形成与发展 第一节 工业的区位选择.
第八章 信息系统开发概述.
2014年度企业所得税业务培训 蚌埠市地方税务局所得税科.
消防知识培训.
西元208年的赤壁之戰,是曹操、孫權和劉備在長江沿岸進行的一場會戰,對於三國鼎立局面的形成具有決定性影響。
欢迎各位 Nice to Meet U.
第一章 面向对象程序设计.
企业所得税年度纳税申报表(2014年版)培训 国家税务总局公告2014年第63号
2012年投入产出调查 录入程序使用说明 卫生和行政事业 北京市投入产出办公室 2013年3月.
課程名稱:程式設計 授課老師:________
氣候變遷對南台灣降雨造成之影響 研究背景 結果與討論 研究方法 結論 朱振豪1 、彭康豪1 、莊煌甲1 、邱俊彥2,* 研究目的
从2008年度时尚先生看我们的时代精神方向.
學習行為觀察與評估 講 師:陳怡華.
你 今 天 累 吗 ? 坪山高级中学心理教师 张婧乔.
罗湖区第二届智慧杯中学政治学科小课题研究
程設一.
第一章 軟體工程 (Software Engineering Introduction)
類別與物件 Class & Object.
軟體工程 -物件導向程式設計與UML系統分析實作
第9章 面向对象方法学引论 9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型
新世代計算機概論 第14章 程式語言.
第八章 分析與設計階段 – 物件導向設計(OOD)
每周分享一本技术书.
珍惜时间 提高效率 初二1班
远程教育站点管理 及齐鲁先锋平台的使用 平阴县党员干部现代远程教育中心.
你的潜能是无限的 ——高三心理辅导.
第1章 程式語言與Visual Basic的基礎
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
陈 峦 副教授 研究院大楼316# 电子科技大学 能源科学与工程学院
Java软件设计基础 5. 继承与多态.
C++ 與 物件導向 程式設計概念簡介 魏天君 2018/12/3.
面向对象程序设计 、.
编译原理专题实验 2013 西安交通大学.
两种不同类别的软件: 功能预定义软件;用户驱动的软件。他们对软件工程方法有不同的需求
昭阳系列 数据交换安全锁软件功能介绍 DEL (Data Exchange Lock)
计算机问题求解 – 论题1-7 - 不同的程序设计方法
计算机组装、维修及 实训教程 第17章 微机软件的安装与设置 2019年4月11日星期四.
Object-Oriented Technology: Review and Conclusion Remarks
C语言程序设计.
107學年度高雄區 實用技能學程輔導分發 五福國中說明會
结束 放映 1.1 数制及编码 数制及其转换 编码 返回 2019/5/1.
C++语言程序设计 第一章 绪论 成都信息工程学院计算机系.
導 論 教學投影片.
九年级 上册 22.3 实际问题与二次函数 (第1课时).
第6章 面向对象开发的 分析与设计.
現代專案管理教材 第一章 專案與專案管理 博碩文化出版發行.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第一讲 面向对象方法学与信息系统建模.
售后培训系列之V9系统中心安装 SecManage 网安事业部 广州售后-王长绪.
面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:
面向对象程序设计 C++教程 西安工业大学 于帆.
Presentation transcript:

第一章 绪论

本章主要内容 计算机程序设计语言的发展 面向对象的方法 面向对象的软件开发 信息的表示与存储 程序的开发过程

计算机程序 (Computer Program) 计算机的工作是用程序来控制的 程序(program)是指令(Instruction)的集合。 指令是计算机可以识别的命令。 软件 代码行数 Windows Vista 5000万 Windows XP 3500万 Linux >1000万 WPS 150万 Quake3 22.9万

计算机语言的发展 机器语言 汇编语言 高级语言 计算机硬件系统可以识别的二进制指令组成的语言 将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等 高级语言 采用具有一定含义的数据命名和容易理解的执行语句 101110000000000000000000 mov ax, 0 mov ax, 0 mov bx, 1 add ax, bx a=0+1

高级语言之面向过程的程序设计方法 设计思路 程序结构 例:五子棋 面向过程的设计思路就是首先分析问题的步骤: 自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之 程序结构 按功能划分为若干个基本模块,形成一个树状结构。 各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。 其模块化实现的具体方法是使用子程序。 例:五子棋 面向过程的设计思路就是首先分析问题的步骤: 1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。 然后把上面每个步骤用分别的函数来实现

高级语言之面向过程的程序设计方法 优点 有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。 缺点 可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件 把数据和处理数据的过程分离为相互独立的实体。 当数据结构改变时,所有相关的处理过程都要进行相应的修改。 每一种相对于老问题的新方法都要带来额外的开销。 图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。

面向对象(Object Oriented)的程序设计方法 为什么使用对象?

回到五子棋的例子…… 面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。  面向对象是以功能来划分问题,而不是步骤。 同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。功能上的统一保证了面向对象设计的可扩展性。       

回到五子棋的例子 比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。 再比如我要把这个五子棋游戏改为围棋游戏,如果你是面向过程设计,那么五子棋的规则就分布在了你的程序的每一个角落,要改动还不如重写。但是如果你当初就是面向对象的设计,那么你只用改动规则对象就可以了,五子棋和围棋的区别不就是规则吗?(当然棋盘大小好像也不一样,但是你会觉得这是一个难题吗?直接在棋盘对象中进行一番小改动就可以了。)而下棋的大致步骤从面向对象的角度来看没有任何变化。

面向说明语言(Haskell, ML, Prolog) 为了更高级的抽象 ? 面向说明语言(Haskell, ML, Prolog) 面向对象语言(C++, Java, Python) 结构化语言(C,Fortran, COBOL) 汇编语言 机器语言

面向对象的方法 将数据(data)及对数据的操作方法(data manipulation)封装(encapsulation)在一起,作为一个相互依存、不可分离的整体——对象(object) 对同类型(type)对象抽象(abstract)出其共性,形成类(class) 类通过一个简单的外部接口(Interface),与外界发生关系 对象与对象之间通过消息(message)进行通信(communication) 优点 - 程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。 - 通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。

面向对象的基本概念——对象(Object) 一般意义上的对象 是现实世界中一个实际存在的事物。 可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划) 是构成世界的一个独立单位,具有 静态特征:可以用某种数据来描述 动态特征:对象所表现的行为或具有的功能 面向对象方法中的对象 是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。 属性:用来描述对象静态特征的数据项。 行为:用来描述对象动态特征的操作序列。

面向对象的基本概念——类(class) 分类——人类通常的思维方法 分类所依据的原则——抽象 面向对象方法中的"类" 忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。 例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象出的概念。 面向对象方法中的"类" 具有相同属性和服务的一组对象的集合 为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。 类与对象的关系: 犹如模具与铸件之间的关系,一个属于某类的对象称为该类的一个实例(instance)。

面向对象的基本概念——封装、继承与多态性 封装(encapsulation) 把对象的属性和服务结合成一个独立的系统单元。 尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏障),只保留有限的对外接口使之与外部发生联系。 继承(inheritance) 继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。 定义:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。 例如:将汽车作为一个一般类,客车便是一个特殊类。 多态性(Polymorphism) 多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。 例如:数的加法 ->实数的加法和复数的加法

面向对象的软件工程 What to do? How to do? Do! Find and correct error! 面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括: 面向对象的分析(OOA) 系统分析阶段应该扼要精确地抽象出系统必须做什么,但是不关心如何去实现。 What to do? 面向对象的系统分析,直接用问题域中客观存在的事物建立模型中的对象,对单个事物及事物之间的关系,都保留他们的原貌,不做转换,也不打破原有界限而重新组合,因此能够很好地映射客观事物。 针对系统的一个具体实现运用面向对象的方法。其中包括两方面的工作: -把OOA模型直接搬到OOD,作为OOD的一部分 -针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分。 How to do? 面向对象的设计(OOD) OOP工作就是用一种面向对象的编程语言把OOD模型中的每个成分书写出来,是面向对象的软件开发最终落实的重要阶段。 Do! 测试的任务是发现软件中的错误。 在面向对象的软件测试中继续运用面向对象的概念与原则来组织测试,以对象的类作为基本测试单位,可以更准确地发现程序错误并提高测试效率。 Find and correct error! 面向对象的编程(OOP) 面向对象的测试(OOT) 将软件交付使用后,工作并没有完结,还要根据软件的运行情况和用户的需求,不断改进系统。 使用面向对象的方法开发的软件,其程序与问题域是一致的,因此,在维护阶段运用面向对象的方法可以大大提高软件维护的效率。 面向对象的软件维护(OOSM)

信息的表示和存储 信息的分类 计算机的数字系统 程序设计中常用的数制 不同进位计数制间的转换 非数值信息的表示

信息的分类 指令 控制信息 控制字 信息 定点数 数值信息 数据信息 浮点数 字符数据 非数值信息 逻辑数据

计算机的数字系统 计算机采用的是二进制数字系统。 基本符号:0、1 进位原则:逢二进一 优点: 缺点:对人来说可读性差 易于物理实现 二进制数运算简单 机器可靠性高 通用性强 缺点:对人来说可读性差

程序设计中常用的数制 进制 基 数 进位原则 基本符号 二进制 2 逢2进1 0,1 八进制 8 逢8进1 0,1,2,3,4,5,6,7 十进制 10 逢10进1 0,1,2,3,4,5,6,7,8,9 十六进制 16 逢16进1 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

不同进位记数制间的转换 R 进制→十进制 各位数字与它的权相乘,其积相加。 例如: (11111111.11)2=1×27+1×26+1×25+1×24 +1×23+1×22+1×21+1×20+1×2-1+1×2-2 =(255.75)10 (3506.2)8=3×83+5×82+0×81+6×80+2×8-1 =(1862.25)10 (0.2A)16=2×16-1+10×16-2=(0.1640625)10

不同进位记数制间的转换 21 十进制整数转换成R进制的整数 十进制小数转换成R进制小数 “除R取余”法,例如: 2 68 余 数 2 68 余 数 2 34 ┄┄┄┄┄┄┄ 0 低位 2 17 ┄┄┄┄┄┄┄ 0 2 8 ┄┄┄┄┄┄┄ 1 2 4 ┄┄┄┄┄┄ 0 2 2 ┄┄┄┄┄┄ 0 2 1 ┄┄┄┄┄ 0 0 ┄┄┄┄┄ 1 高位 所以 6810=10001002 十进制小数转换成R进制小数 “乘 R 取整”法,例如: 高位 0.3125 ×2 = 0 .625 0.625 ×2 = 1 .25 0.25 ×2 = 0 .5 0.5 ×2 = 1 .0 所以 0.312510 = 0.01012 21

每位八进制数相当于三位二进制数 每位十六进制数相当于四位二进制数 二、八、十六进制的相互转换 (1011010.10)2=(001 011 010 .100)2 =(132.4)8 (1011010.10)2=(0101 1010 .1000)2 =(5A.8)16 (F7)16=(1111 0111)2=(11110111)2

非数值信息的表示 西文字符: 汉字: ASCII码:用7位二进制数表示一个字符,最多可以表示27=128个字符 EBCDIC码:用8位二进制数表示一个字符,最多可以表示28=256个字符 汉字: 应用较为广泛的是"国家标准信息交换用汉字编码"(GB2312-80标准),简称国标码。是二字节码,用二个七位二进制数编码表示一个汉字。

程序开发的基本概念 源程序: 目标程序: 翻译程序: 三种不同类型的翻译程序 用源语言写的,有待翻译的程序 也称为"结果程序",是源程序通过翻译程序加工以后所生成的程序。 翻译程序: 是指一个把源程序翻译成等价的目标程序的程序。 三种不同类型的翻译程序 汇编程序:其任务是把用汇编语言写成的源程序,翻译成机器语言形式的目标程序 编译程序:若源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,那么,该翻译程序就称为"编译程序"。 解释程序:这也是一种翻译程序,同样是将高级语言源程序翻译成机器指令。它与编译程序不同点就在于:它是边翻译边执行的,即输入一句、翻译一句、 执行一句,直至将整个源程序翻译并执行完毕。

程序的开发过程 编辑 编译 连接 运行调试 将源程序输入到计算机中,生成后缀为cpp的磁盘文件。 将程序的源代码转换为机器语言代码。 将多个源程序文件以及库中的某些文件连在一起,生成一个后缀为exe的可执行文件。 运行调试 Bug:程序中的错误,语法错误与逻辑错误 有一天,Hopper正在哈佛大学教授Howard H. Aiken的指导下操作Harvard Mark I计算机。突然,有一只倒霉的蛾子导致继电器失灵。Hopper等人将这只死掉的蛾子粘到工作日志上并加了一行批注:“First actual case of bug being found.”