C++面向对象编程课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C++面向对象编程课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 面向 对象 编程 课件
- 资源描述:
-
1、1第一讲第一讲电子信息学院课程组武汉大学面向对象程序设计面向对象程序设计2本讲主要内容本讲主要内容课程简介课程简介计算科学发展史计算科学发展史 C+概述概述3教学方式教学方式1.教学安排 课程组6位老师轮流给大家上课2.课程情况 课堂教学 3节课 * 12周 = 36课时 上机安排 4节课 * 9周 = 36课时4教学安排教学安排班级地点时间上课教师1班3区1-413周五7-9颜佳(邓德祥)颜佳(邓德祥),赵小红,王泉德,孙涛2,3班3区1-303周四3-5赵小红赵小红,刘勇,颜佳4,5班3区1-410周四3-5孙涛孙涛,刘勇,颜佳6,7班3区1-410周五7-9刘勇刘勇,孙涛,王泉德,赵小红
2、光电信息类3区1-629周四3-5王泉德王泉德,刘勇,颜佳5上机上机安排安排光电信息类 王泉德老师 周六下午 100人电子信息类2-3班 赵小红老师 周二晚上 100人电子信息类567班 孙涛老师 周三晚上 105人 电子信息类145班 刘勇老师 周四晚上 105人6考核办法考核办法期末考试期中考试平时平时7课程的目标课程的目标掌握面向对象程序的基本概念、特点和原理;掌握面向对象程序设计思想 ;了解基于Windows环境下编程的基本知识;学习C+程序设计语言的相关内容,能阅读编写C+程序;养成良好的编程习惯,强调编程思想;掌握程序设计技巧和程序设计能力;可独立设计和编写具有实际应用价值的面向对
3、象程序。什么是编程? 编程就是让计算机为而使用某种编写,并最终得到结果的过程。 为了使计算机能够理解人的意图,人类就必须要将需解决的问题的、和通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种就是编程。8什么编程语言 电脑每做的一次动作,一个步骤,都是按照已经用编程语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。 可以分成机器语言、汇编语言、高级语言三大类。9什么是编译器 编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。 一个现代编译器的主要工作流程:源代码 (source co
4、de) 预处理器 (preprocessor) 编译器 (compiler) 目标代码 (object code) 链接器 (Linker) 可执行程序 (executables)1011C+编程语言?Microsoft Visual Studio开发环境?MFC?不只这些!12C+VC开发环境 学会这些, 也只是学会了使用画笔和画板两种工具罢了13使用相同的工具, 画出来的东西却有很大的分别技术很重要,思想更重要!14C+&VC2010Java&Eclipse从思想的高度来看待编程时,语言和平台变为一个人抒写想法的载体。15最重要的,还是要学习程序设计的思想。16前七讲前七讲的程序的程序控制
5、台程序:掌握C+基本语法,理解面向对象编程思想,掌握面向对象编程方法17第八讲第八讲之后的程序之后的程序掌握应用程序框架和文档视图编程方法18第八讲第八讲之后的程序之后的程序掌握应用程序框架和对话框编程。19第八讲第八讲之后的程序之后的程序学会使用各种控件20写出让计算机明白的程序很重要写出让人明白的程序更重要21一个较好的例子一个较好的例子22使用缩进划分层次使用空行为程序分段2324适当的注释,说明这一段程序的作用2526乱七八糟的缩进不知所云的名称一行语句做了太多事还有注释去哪儿啦?2728一年后2930这到底是要闹哪样!31网上就能下载到!32“伟大的车工值得给他几倍于普通车工的薪水,
6、但一个伟大的软件代码作家,其价值 则要等同于一个普通的软件写手的价格的1万倍。”-比尔盖茨 33学习态度和学习方法1.按时上机、上课,不得早退。按时交作业。2.课前预习,课堂笔记,课后的上机,注意循序渐进。3.以上机操作为主,通过编写程序来理解概念。4.练习书中的例子和每章后的习题。5.同学间交流,和老师的沟通。6.多查阅MSDN帮助文档。7.有效利用网络资源,例如:3334参考书推荐参考书: C+语言基础类:C+程序设计教程钱能等.清华大学出版社C+面向对象程序设计谭浩强 .清华大学出版社C+程序设计思想 Bruce Eckel.机械工业出版社C+ Primer 中文版Stanley B.L
7、ippman等.人民邮电出版社Effective C+作者:Scott Meyers .译者: 侯捷 . 电子工业出版社 Visual C+类:Visual C+ 2008入门经典Visual C+ 2012入门经典(第六版)清华大学出版社35编程 编程编程 编程编程 编程编程 编程36程序设计的重要性程序设计的重要性1. 程序设计对后续学习的作用a.程序设计是把自己所学的东西转为实用的一个重要工具,也是验证和实现自己想法的一个重要途径b.大学生科研c.数学建模、电子设计大赛、嵌入式大赛等d.本科毕业设计e.研究生阶段参与科研的必备技能2. 其它a.大学生助研b.兴趣爱好c.移动平台程序开发3
8、. 为未来工作准备的一项技能李仲初陈一舟雷 军37几个iPhone软件的例子1. Trism38几个iPhone软件的例子2. iShoot39几个iPhone软件的例子3. iSteam40会说话的汤姆猫: 手机宠物类应用游戏。 英文名称是Talking Tom Cat。 Outfit7公司“会说话”(Talking Friend)系列应用的第一款游戏。 2010年7月首度在App Store露面,目前下载量已超过4000万次。 平台系统iOS 4.3.2或或Android 2.2以上以上41进入下一节进入下一节42本讲主要内容本讲主要内容课程简介课程简介计算科学发展史计算科学发展史 C+概
9、述概述4318世纪, Charles Babbage设计出了分析机,也是世界上第一台真正意义上的计算机44世界上第一位程序员 Ada Byron2012年12月9日,Google用Doodle纪念Ada Byron诞辰197周年451946年,宾夕法尼亚大学的Elkhart和McCauley带领团队制造了计算机ENIAC461971年,第一台微处理器 Intel4004灯!等灯等灯47Debug一词的来历Grace Murray Hopper 计算机程序设计的先驱在一次排除计算机故障中,Hopper发现一只飞蛾刚好短接了计算机的两个继电器48她将这只飞蛾夹在自己的日记中。这只飞蛾成为世界上第一
10、个计算机Bug49计算机设备的使用特点计算机设备的使用特点 硬件是计算机的硬件是计算机的“躯躯体体”,软件是计算机,软件是计算机的的“灵魂灵魂”。没有软。没有软件的支持,就没有硬件的支持,就没有硬件的生命力。件的生命力。计算机硬件计算机硬件系统软件系统软件支撑软件支撑软件应用软件应用软件50计算机软件计算机软件 软件的三个要素:软件的三个要素:程序程序:能够让计算机按照人们的意愿:能够让计算机按照人们的意愿完成各种操作的指令序列;完成各种操作的指令序列;数据结构数据结构:用来组织操作对象;:用来组织操作对象;文档文档:用来描述程序设计过程。:用来描述程序设计过程。51程序设计程序设计 程序设计
11、往往程序设计往往以某种程序设计语言为工以某种程序设计语言为工具具,给出这种语言下的程序。,给出这种语言下的程序。程序设计过程应当包括程序设计过程应当包括分析、设计、编分析、设计、编码、测试、排错码、测试、排错等不同阶段。等不同阶段。专业的程序设计人员常被称为程序员。专业的程序设计人员常被称为程序员。研究一种切实可行的程序设计方法至关研究一种切实可行的程序设计方法至关重要。重要。 52软件方法的发展面向计算机的程序设计 计算机诞生初期,人们与计算机打交道的惟一途径是机器语言,这是一种可以被计算机直接识别的程序设计语言,其中的每一条指令和操作数都是采用二进制形式表示的。 缺点:复杂、易错、难读、难
12、纠错,指令格式与机器相关。53软件方法的发展面向过程的程序设计 从功能的角度分析问题,将待解决的问题空间分解成若干个功能模块,每个功能模块描述一个操作的具体过程。 结构化程序设计是面向过程程序设计的一个典型代表。54按照功能划分的软件系统结构功能功能输入数据输入数据输出数据输出数据55主函数主函数函数函数1函数函数3函数函数2函数函数1-1函数函数1-2函数函数2-1函数函数3-1函数函数3-2数据1数据2数据3程序的组成:56结构化程序设计形式:程序设计= 算法 + 数据结构程序内容= 过程 + 过程调用 =主模块 + 若干个子模块 =main() + 子函数重点:如何实现细节过程,将数据与
13、函数分开。特点:自顶向下,逐步求精功能分解。缺点:系统整体性差,审视问题域的视角与常规不同,抽象级别较低,可重用性差,可维护性欠佳。57问题:设计一个学生成绩处理程序,要求输入一名学生的姓名和3门课的成绩,求出平均成绩。 设计思路:先编写一个求平均成绩的函数;主程序实现输入学生姓名和课程成绩的功能,并调用函数计算平均成绩。58#include using namespace std;float getave(int n, float sc )float ave=0;for(int i=0;iname;/读入姓名for(int i=0;iscorei;/读入成绩 /输出平均成绩coutname“
14、的平均成绩是:”getave(3,score)name;/读入姓名for(int i=0;iscorei;/读入成绩 /输出平均成绩coutname“的平均成绩是:”getave(3,score)endl;#include using namespace std;float getave(int n, float sc )float ave=0;for(int i=0;in;i+)ave=sci+ave;ave=ave/3.0f;return ave;如果要实现多如果要实现多个学生的成个学生的成绩计算呢?绩计算呢?60#include using namespace std;#define M
15、AXLENGTH 3struct STUchar name12;float scoreMAXLENGTH;float ave;void main()STU s3;int i,j;for(i=0;isi.name;si.ave=0;for(j=0;jsi.scorej;si.ave=si.scorej+si.ave;si.ave=si.ave/3.0f;for(i=0;i3;i+)coutsi.name的平均成绩是: si.ave endl;如果要增加其他信如果要增加其他信息和功能呢?比息和功能呢?比如:学号,总成如:学号,总成绩计算等绩计算等6162软件方法的发展面向对象的程序设计!Objec
16、t-oriented programming, OOP!面向对象程序设计方法是指用面向对象的方法指导程序设计的整个过程。所谓面向对象是指以对象为中心,分析、设计及构造应用程序的机制。!数据结构本身可能包含算法和数据结构:对象=(算法+数据结构),程序=(对象+对象+)63对象具有的特征F万物皆为对象F每个对象都有自己的惟一标识F对象具有属性和行为F对象具有状态F对象之间依靠消息实现通信64构成程序的对象数据结构算法算法+数据结构算法+数据结构算法+数据结构算法+数据结构算法+数据结构消息6566几种有代表性的几种有代表性的OOPLOOPL!Simula67,支持单继承、一定含义上的多态和部分动
17、态联编。!Smalltalk,支持单继承、多态和动态联编。!Eiffel,支持多继承、多态和动态联编。!C+,支持多继承、多态和部分动态联编。!Java,提供了类机制,以及有效的接口模型。支持单继承、多态和动态联编。u科研前沿目前用的最多的要属Microsoft公司的Visual C+ 6.0(简称VC6.0),它是基于Windows窗口规范的一个C+的具体实现版本。目前版本更新到2013。672012年2月世界编程语言排行榜:6820132013年年1 1月编程语言排行榜榜单月编程语言排行榜榜单 :6920132013年年1111月月编程语言排行榜榜单编程语言排行榜榜单 :70组件化程序设计
18、方法 所谓组件就是一种可以自行进行内部管理的一个或多个类所组成的群体。用户通过外部界面使用它,而不了解它的内部信息和操作方式。每个组件包含一组属性、事件和方法。 继承并发展了面向对象的程序设计方法。它把对象技术应用于系统设计,对面向对象程序设计的实现过程作了进一步的抽象。 可以把组件化程序设计方法用作构造系统的体系结构层次的方法,并且可以使用面向对象的方法很方便地实现组件。软件方法的发展71嵌入式程序设计F嵌入式产品的核心是嵌入式计算机的应用。嵌入式计算机是一种智能部件内置于专用设备/系统的高速计算机。F嵌入式系统是以应用为中心,适用于应用系统对于功能、可靠性、成本、体积、功耗有严格要求的专用
19、计算机系统。软件方法的发展72进入下一节进入下一节73本讲主要内容本讲主要内容课程简介课程简介计算科学发展史计算科学发展史 C+概述概述74C+语言的产生语言的产生C+是从C语言发展演变而来的-是一个更好的C。引入了类的机制-最初的C+被称为“带类的C”。1983年正式取名为C+。从1989年开始C+语言的标准化工作。于1994年制定了ANSI C+标准草案。于1998年11月被国际标准化组织(ISO)批准为国际标准,成为目前的C+。目前的标准版本为C+11。75C+语言的三个阶段语言的三个阶段 第一阶段第一阶段从80年代到1995年。这一阶段C+语言基本上是传统类型上的面向对象语言,并且凭借
20、着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额; 第二阶段第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C+中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C+受到了一定的冲击; 第三阶段第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C+出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C+已经成为当今主流程序设计语言中最复杂的一员。 76C+语言的组成语言的组成 C子语言。C+支持C语言的几乎全部功能
展开阅读全文