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