




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计思想变革及发展,Contents,程序设计的基本,概念,通俗地说,程序就是人们让计算机完成特定任务的一系列命令的总称,而用某种编程语言编写程序的过程就是程序设计。,程序设计的步骤,程序设计面对的问题,面向过程编程,面向过程编程关注的是解决问题的步骤,先把软件系统分解成多个模块,然后逐步细化,完成整个软件系统。各模块之间存在相互调用和信息传递。,程序设计思想的发展,面向过程编程的产生,60年代末,国际著名学者E.W.Dijkstr首先提出了“结构化程序设计”的思想,按照结构化程序设计思想编制出来的程序称为结构化程序,即面向过程编程。、Pascal和ortran语言均采用面向过程编程思想。,面向过程编程,面向过程编程的设计思想,采用“自顶向下,逐步求精”的方法,即当编写程序时常从总体出发,把任务分解为若干个多少有些独立的模块,对于每一个模块,又需分解为若干个低一层的子模块,直到最低层的每一个子模块都有明确的解决步骤为止,每一个模块内部均是由顺序、选择和循环三种基本结构组成,其模块化的具体实现方法是使用子程序。,面向过程编程的设计思想,正如上面的程序段所示,结构化的程序方法通常是:(1)定义变量及其初始值;(2)根据事件发展顺序,进行对应的处理。,面向过程编程的设计思想,示例:铅笔数=5钢笔数=6圆珠笔数=4其它笔数=7/销售程序段铅笔数=铅笔数-1/卖出了1支铅笔其它笔数=其它笔数-2/卖出了2支其它笔/采购程序段钢笔数=钢笔数+20/新进了20支钢笔圆珠笔数=圆珠笔数+10/新进了10支圆珠笔,面向过程编程的特点,面向过程的程序设计的特点:面向过程的程序设计方法强调需求分析。强调在软件生命周期的每个阶段结束之前必须进行评审,从而提高了开发的成功率。,面向过程编程的问题产生的原因,原因是:某些系统类型需求是模糊的,预先定义需求的策略对于某些类型的软件系统是适用的。但是,对于数量占多数的一些应用系统,其需求往往难以预先准确地指定。,面向过程编程的总结,面向过程编程的思维方式易于理解、条理清晰,曾被广泛应用,但随着软件系统规模的扩大和性能要求的提高,面向过程编程的缺陷日益明显。软件系统规模的扩大,使得模块的分解难度加大,模块之间的联系也更加复杂,软件的可靠性难以提高,可维护性差。,为了提高软件系统的稳定性、可修改性、可重用性。人们在实践中逐渐创造出软件开发的新途径:面向对象的程序设计方法,面向对象编程,所谓面向对象就是在处理问题时,从该问题所存在的事物本身出发,以类及对象作为基本构造单元,逐步认识事物的属性和行为特征。,面向对象编程,面向对象编程的产生,结构化程序设计方法的可重用性差,使用面向过程的方法来开发和维护此类软件将非常困难。因此提出了面向对象编程。,面向对象编程的概念,面向对象编程思想,面向对象编程的中心思想是:软件模块的分解并不是从功能上,或是从处理问题的算法上出发,而是从系统的组成上考虑。,优点,面向对象编程的总结,总体来说,较面向过程编程相比,面向对象编程可以描述更复杂、更接近现实的系统,描述方法灵活,具备良好的可重用性和可扩展性,提高了软件系统的质量和开发效率,保证了对系统项目的有效管理。,面向方面编程,在软件术语中,面向方面的编程能够独立于任何继承层次结构而应用改变类或对象行为的方面。,缺点,代码散乱和代码纠缠使得面向对象编程的系统结构混乱,难以维护和扩展,降低了软件系统的质量。,面向方面编程的产生,面向方面编程()的概念是regoriczaes在eroxarc团队于世纪年代后期提出的,ilman与riedman年在关于分离关注点的讨论会上给出了得到公认的面向方面的定义。虽然面向方面编程还处于不完善的阶段,但它已经受到了广泛的关注。,面向方面编程,面向方面编程的概念,面向方面编程的思想,面向方面编程的特点,面向方面编程的总结,较面向对象编程相比降低了系统实施的难度,解决了代码散乱和代码纠缠的问题。但其本身存在的问题也给使用带来了一定的困难。目前在开发过程中,面向方面编程技术只作为面向对象编程技术的补充加以运用。,面向过程VS面向对象,以一辆汽车为例:用面向过程的思想去考虑它应该是这样的:如何启动汽车、如何起步、加速、刹车、熄火等一个个操作。而汽车在这里并不是我们所关心的。而面向对象则以汽车为对象,一切由汽车开始,以上的可用操作,即功能是汽车这个对象本身所具有的,做任何操作只要告诉汽车就可以。,面向过程VS面向对象,使用面向过程的语言,你需要告诉电脑要做什么,怎么做,一步步教它。使用面向对象的语言,你只需要告诉它要做什么,不用告诉它过程。,面向过程VS面向对象,又例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。,面向过程VS面向对象,功能上的统一保证了面向对象设计的可扩展性。因此,就实际编程情况来说在大多时候面向对象更为实际。,程序设计语言的变化及发展,机器语言,机器语言是计算机诞生和发展初期使用的语言,表现为二进制的编码形式,是由CPU可以直接识别的一组由0和1序列构成的指令码。,机器语言,例如,下面列出的一串二进制编码011011000000000000000001110101命令计算机硬件完成清除累加器,然后把内存地址为117的单元内容与累加器的内容相加的操作。可以看出,使用机器语言编写程序是很不方便的,它要求用者熟悉计算机的所有细节,程序的质量完全决定于个人的编程水平。,汇编语言,汇编语言开始于20世纪50年代初期,它是用助记符来表示每一条机器指令的。例如,机器指令可以表示为CLA00017,高级语言、算法语言,高级语言起始于20世纪50年代中期,它允许人们用熟悉自然语言和数学语言编写程序代码,可读性强,编程方便。例如,在高级语言中写出如下语句:X(A+B)/(C+D)与之等价的汇编语言程序如下:CLACADDDSTDMCLAAADDBDIVMSTDX,非过程化语言,用户在使用这种语言时,不必关心问题的解法和处理过程的描述,只需说明所要完成的工作目标及工作条件,就能得到所要的结果,而其他的工作都由系统来完成。,非过程化语言,例如,用户想检索出满足一定条件的学生名单,只要通过SQL语言的SELECT语句告诉计算机查询的范围(查学生信息表)、查询内容(查出姓名和年龄)和检索条件(查年龄小于18岁的学生)即可得到查询结果。该语句形式如下:SELECTsname,ageFROMstudentsWHERE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年“田园风光”生态农业园投资合作协议
- 口才培训知识分享课件
- 2025国际科技展馆智能灯光及音效系统安装服务合同
- 2025年度新型能源技术研发中心设备采购与维护合作协议
- 2025年跨境电商物流仓储租赁合作协议物流仓储一体化服务
- 2025年度综合物流园区运营管理委托合同
- 2025年度车绿本新能源抵押贷款违约责任及赔偿细则合同
- 2025年智能化车棚租赁及全方位物业管理服务协议
- 2025年茶叶出口贸易合作框架协议书
- 2025年商业地产项目融资保证金质押合同
- CJ/T 3085-1999城镇燃气术语
- 停产报告管理制度
- DB31/T 636.2-2015会议经营与服务规范第2部分:会议场所服务机构
- 云南二级建造师b证试题及答案
- 电解铝公司工程项目投资估算
- 钣金工考试试题及答案
- 2025护士招聘笔试题目及答案
- 沟通与策略式家庭治疗
- 合同质保期更改补充协议
- GB/T 45381-2025动梁式龙门电火花成形机床精度检验
- 防腐涂层新技术及其应用前景
评论
0/150
提交评论