第一章 C++编程概述.ppt
《第一章 C++编程概述.ppt》由会员分享,可在线阅读,更多相关《第一章 C++编程概述.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.Dont panic!All will become clear in time;2.You dont have to know every detail of C+to write good programs;3.Focus on programming techniques,not on language features.BjarneStroustrup对对C+初学者的初学者的3条建议条建议C+程序设计程序设计学习目标:学习目标:l初步了解面向对象程序设计的基本概念初步了解面向对象程序设计的基本概念l理解一个典型的理解一个典型的C+程序开发环境程序开发环境l能够用能够用C+写简单的程
2、序写简单的程序l能够运用简单的输入和输出语句能够运用简单的输入和输出语句l熟悉基本数据类型熟悉基本数据类型l能够运用算术运算符能够运用算术运算符l能够编写简单的判断语句能够编写简单的判断语句第一章第一章C+编程概述编程概述(IntroductiontoC+Programming)1.1从从C到到C+Cl Hardwareindependent:portableprogramslDevelopmentlanguageofUNIXl1989:ANSIstandard,1990:ANSIandISOstandardpublished可移植性提示可移植性提示01:由于由于C是一种标准化的,与硬件无关是
3、一种标准化的,与硬件无关的、广泛使用的语言,所以用的、广泛使用的语言,所以用C编写的应用程序通常无编写的应用程序通常无需修改,或只需稍作修改,即可用于多种不同的计算机需修改,或只需稍作修改,即可用于多种不同的计算机系统。系统。C语言的优点:语言的优点:与硬件无关,可移植性强与硬件无关,可移植性强语言简洁,使用方便语言简洁,使用方便丰富的运算符和数据类型丰富的运算符和数据类型可直接访问内存地址可直接访问内存地址能进行位操作能进行位操作目标代码质量高,运行效率高目标代码质量高,运行效率高C语言的局限性语言的局限性:l(1)数据类型检查机制相对较弱,)数据类型检查机制相对较弱,这使得程序中的一些错误
4、不能在这使得程序中的一些错误不能在编译阶段被发现。编译阶段被发现。l(2)C本身几乎没有支持代码本身几乎没有支持代码重重用用的语言结构,因此一个程序员的语言结构,因此一个程序员精心设计的程序,很难为其它程精心设计的程序,很难为其它程序所用。序所用。l(3)当程序的规模达到一定程度)当程序的规模达到一定程度时,程序员很难控制程序的复杂时,程序员很难控制程序的复杂性。性。C+owes(归功于归功于)mosttoC.OtherancestorsareSimula67andAlgol68.FirstversionsofC+in1980underthename“Cwithclasses”.Since19
5、83thenameC+isused.1990:ANSI/ISO9899definesastandardforC1998:ISO/IEC14882specifiesthestandardforC+BjarneStroustrupC+是是C的超集的超集(Superset)Providescapabilitiesforobject-orientedprogramming一种混合语言一种混合语言(Hybridlanguage)Canprogramwith,C-likestyle,Object-orientedstyle,orboth C+programsBuiltfrompiecescalledcla
6、ssesandfunctions C+standardlibraryRichcollectionsofexistingclassesandfunctionsC+C软件工程知识软件工程知识01:使用使用“组装方法组装方法”创建程序,尽量不创建程序,尽量不要重复别人已经做过的工作,尽量利用现有部件这就要重复别人已经做过的工作,尽量利用现有部件这就是所谓的是所谓的“软件重用软件重用”,也是面向对象编程的精髓所在。,也是面向对象编程的精髓所在。软件工程知识软件工程知识02:进行进行C+编程时,通常使用如下构件:编程时,通常使用如下构件:C+标准库中的类和函数、自行创建的类和函数以及由标准库中的类和函数
7、、自行创建的类和函数以及由一些知名的第三方厂家提供的类和函数。一些知名的第三方厂家提供的类和函数。+-*/%=!=dog+-*/%=!=ant+-*/%=!=catClassinstancesinstantiation+-*/%+-*/%=!=!=Software ICReusabilityProductivity性能提示性能提示01:采用标准库的函数和类,而不是自行编写采用标准库的函数和类,而不是自行编写相应的版本,可有效提高程序性能,因为这些组件经过相应的版本,可有效提高程序性能,因为这些组件经过精心的编写,可保证高效而正确地运行。精心的编写,可保证高效而正确地运行。可移植性提示可移植性提
8、示02:采用标准库函数和类,而不编写自己采用标准库函数和类,而不编写自己地相应版本,可显著改善程序地可移植性,这是由于在地相应版本,可显著改善程序地可移植性,这是由于在几乎所有的几乎所有的C+实现方案中,都已包含了这些标准库函实现方案中,都已包含了这些标准库函数和类。数和类。1.2程序与语言程序与语言计算机的工作是用程序来控制的。计算机的工作是用程序来控制的。程序是指令的集合。程序是指令的集合。指令是计算机可以识别的命令。指令是计算机可以识别的命令。What is Computer Programming?Itistheprocessofplanningasequenceofsteps(cal
9、ledinstructions)foracomputertofollow.STEP1STEP2STEP3.Programming Life Cycle Phases Problem-SolvingImplementationMaintenanceWhat is a Programming Language?Itisalanguagewithstrictgrammarrules,symbols,andspecialwordsusedtoconstructacomputerprogram.A Tempting Shortcut?GOALTHINKINGCODEREVISEREVISEREVISED
10、EBUGDEBUGDEBUGTESTCODEShortcut?Evolution of Programming LanguagesEarlycomputersprogrammedinmachinelanguages-AllbinarynumbersAssemblylanguageusedmnemonic(记记忆的忆的)codes-CodestranslatedintomachinelanguagebyaprogramcalledtheassemblerHighlevellanguagesareportableuserwritesprograminlanguagesimilartonatural
11、languageexamples-FORTRAN,COBOL,Pascal,Ada,Modula-2,C+,JavamostarestandardizedbyISO/ANSItoprovideanofficialdescriptionofthelanguageEvolution of Programming Languages主要的面向对象语言主要的面向对象语言lC+lSmalltalklEiffellCLOSlJava早期的程序设计方法早期的程序设计方法结构化程序设计方法结构化程序设计方法面向对象程序设计方法面向对象程序设计方法1.3程序设计方法程序设计方法早期的程序设计方法追求程序的高效率
12、,早期的程序设计方法追求程序的高效率,编程过份依赖技巧,而不注重所编写程序的结编程过份依赖技巧,而不注重所编写程序的结构,也就是构,也就是没有固定程序设计方法没有固定程序设计方法的时期。程的时期。程序的可读性、可重用性都很差。其中一个典型序的可读性、可重用性都很差。其中一个典型问题是频繁使用问题是频繁使用goto语句。语句。虽然这种方法存在很多问题,但对于单人虽然这种方法存在很多问题,但对于单人完成较为简单的任务,事实上还是经常被采用完成较为简单的任务,事实上还是经常被采用的。的。早期的程序设计方法早期的程序设计方法结构化方法出现在结构化方法出现在70年代中期,我们可以这样理年代中期,我们可以
13、这样理解它:解它:结构化程序设计方法是从程序要实现的结构化程序设计方法是从程序要实现的功能功能的角的角度出发的。一般按照度出发的。一般按照自顶向下、逐步求精自顶向下、逐步求精的方式,将的方式,将程序要完成的功能逐级划分成许多小的功能模块,象程序要完成的功能逐级划分成许多小的功能模块,象搭积木一样搭起来。这些小的功能模块最终都可以转搭积木一样搭起来。这些小的功能模块最终都可以转化成三种基本控制结构的组合。化成三种基本控制结构的组合。所谓的功能可以理解为对数据的操作。在程序实所谓的功能可以理解为对数据的操作。在程序实现中,特定的功能或功能模块一般用现中,特定的功能或功能模块一般用函数函数来实现,它
14、来实现,它们要对特定的们要对特定的数据数据进行操作。进行操作。结构化程序设计方法结构化程序设计方法结构化设计方法的特点结构化设计方法的特点结构化程序设计方法的主要技术是结构化程序设计方法的主要技术是自顶自顶向下、逐步求精向下、逐步求精,采用,采用单入口、单出口单入口、单出口的控制结构的控制结构自顶向下自顶向下是一种分解问题的技术,是一种分解问题的技术,逐步逐步求精求精指结构化程序的连续分解,最终成指结构化程序的连续分解,最终成为下面三种基本控制结构的组合为下面三种基本控制结构的组合三种基本控制结构三种基本控制结构:顺序、分支、循环:顺序、分支、循环分支结分支结构构语句1语句2语句3条件语句2语
15、句1语句1语句2顺序结顺序结构构循环结循环结构构例:例:从键盘输入一个学生的信息(包括姓名、从键盘输入一个学生的信息(包括姓名、年龄、性别、学号等)和一个老师的信息年龄、性别、学号等)和一个老师的信息(包括姓名、年龄、性别、是否授课等),(包括姓名、年龄、性别、是否授课等),然后将信息输出到屏幕。然后将信息输出到屏幕。一个简单的例子一个简单的例子分析:分析:根据需求(题目要求),我们可以把问根据需求(题目要求),我们可以把问题划分为两个功能模块,一个是题划分为两个功能模块,一个是输入模块输入模块,一个是一个是输出模块输出模块,做完了输入模块,再做,做完了输入模块,再做输出模块。再具体考虑每个模
16、块如何实现输出模块。再具体考虑每个模块如何实现(逐步求精)。(逐步求精)。我们用我们用C语言来写,参看下面的代码:语言来写,参看下面的代码:/int main()/主函数开始主函数开始/声明用于存储学生信息的变量声明用于存储学生信息的变量char strStudentName20;/学生姓名学生姓名int nStudentAge;/学生年龄学生年龄char cStudentSex;/学生性别学生性别int nStudentNumber;/学生学号学生学号/声明用于存储老师信息的变量声明用于存储老师信息的变量char strTeacherName20;/老师姓名老师姓名int nTeacherA
17、ge;/老师年龄老师年龄char cTeacherSex;/老师性别老师性别int nIsTeaching;/是否授课是否授课/输入模块输入模块GetStudentInfo();/输入学生信息输入学生信息GetTeacherInfo();/输入老师信息输入老师信息/输出模块输出模块PrintStudentInfo();/输出学生信息输出学生信息PrintStudentInfo();/输出老师信息输出老师信息 return(0);描述学生的数据描述学生的数据描述老师的数据描述老师的数据函数函数函数函数上面的例子中,我们可以进一步将属于学上面的例子中,我们可以进一步将属于学生和老师的变量放入生和老
18、师的变量放入结构结构中中。这样可以在一。这样可以在一定程度上完成定程度上完成对数据的封装对数据的封装。但。但在结构化程在结构化程序设计中,数据与对其进行操作的函数仍是序设计中,数据与对其进行操作的函数仍是分离的。分离的。/声明学生结构声明学生结构Studentstruct Studentchar strStudentName20;/学生姓名学生姓名int nStudentAge;/学生年龄学生年龄char cStudentSex;/学生性别学生性别int nStudentNumber;/学生学号学生学号;/声明老师结构声明老师结构Teacherstruct Teacherchar strTea
19、cherName20;/老师姓名老师姓名int nTeacherAge;/老师年龄老师年龄char cTeacherSex;/老师性别老师性别int nIsTeaching;/是否教书是否教书;问题:问题:函数用于完成一定的功能,它们都是针函数用于完成一定的功能,它们都是针对特定的数据进行操作的。那么我们能对特定的数据进行操作的。那么我们能不能以特定的数据为中心,将数据与对不能以特定的数据为中心,将数据与对其进行操作的函数封装起来呢?其进行操作的函数封装起来呢?面向对象程序设计方法面向对象程序设计方法面向对象程序设计出现在面向对象程序设计出现在80年代中后期年代中后期面向对象程序设计是建立在结
20、构化程序面向对象程序设计是建立在结构化程序设计基础上的,但它不再是从功能入手,设计基础上的,但它不再是从功能入手,而是从而是从对象对象(人、地方、事情等)入手(人、地方、事情等)入手面向对象程序设计以面向对象程序设计以类类作为构造程序的作为构造程序的基本单位,它具有基本单位,它具有封装、数据抽象、继封装、数据抽象、继承、多态承、多态等特点等特点简单地说,简单地说,对象就是现实世界中的各对象就是现实世界中的各种实体种实体,包括人、地点和事物等。例如,包括人、地点和事物等。例如,桌子、椅子、教室、学生、老师、电话、桌子、椅子、教室、学生、老师、电话、汽车等等。一般都要从汽车等等。一般都要从属性属性
21、和和行为行为两个两个方面来对它们加以描述。在这里,我们方面来对它们加以描述。在这里,我们认为对象和对象的实例是同一个概念。认为对象和对象的实例是同一个概念。什么是对象?什么是对象?对象都具有某些特征,并展现某些行为对象都具有某些特征,并展现某些行为人事会计销售对象具有的一些特征称为属性对象具有的一些特征称为属性,以,以一个人一个人为例,他的姓名、年龄、身高、体重等可以作为例,他的姓名、年龄、身高、体重等可以作为他的属性。为他的属性。这些属性会有其对应的值,一般这些属性会有其对应的值,一般至少会有一项区别于其它对象,它们在程序设至少会有一项区别于其它对象,它们在程序设计中对应的是一定的计中对应的
22、是一定的数据数据。为了达到目的,为了达到目的,对象对象必须提供的功能(或必须提供的功能(或必须提供的服务)称为对象的必须提供的服务)称为对象的行为行为,在程序设,在程序设计中对应一定的方法(计中对应一定的方法(函数函数)。)。属性和行为属性和行为Object=Data+Methods数据数据员工详细资料员工详细资料工资结算表工资结算表票据票据凭证凭证收据收据函数函数计算工资计算工资支付工资支付工资支付帐单支付帐单记帐记帐银行交易银行交易会计车型:法拉利车型:法拉利颜色:红色颜色:红色年份:年份:19951995活动活动发动发动停车停车加速加速类描述了一组具有相同属性(数据类描述了一组具有相同属
23、性(数据元素)和相同行为(函数)的对象。元素)和相同行为(函数)的对象。类的数据成员是对对象属性的抽象,类的数据成员是对对象属性的抽象,类的函数成员是对对象行为的抽象,类的函数成员是对对象行为的抽象,而类本身就是对对象的抽象。而类本身就是对对象的抽象。什么是类?什么是类?多边形对象多边形对象多边形类多边形类属性属性顶点顶点边的颜色边的颜色填充颜色填充颜色方法方法绘制绘制擦除擦除移动移动抽象为抽象为class Student/Student类的声明类的声明public:/公有成员公有成员Student();/构造函数构造函数Student();/析构函数析构函数char*GetName();/查
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 C+编程概述 C+ 编程 概述
限制150内