《第一章 C++编程概述.ppt》由会员分享,可在线阅读,更多相关《第一章 C++编程概述.ppt(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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();/查
24、询姓名查询姓名intGetAge();/查询年龄查询年龄charGetSex();/查询姓名查询姓名intGetNumber();/查询学号查询学号boolSetName(char*n);/设置姓名设置姓名boolSetAge(int age);/设置年龄设置年龄boolSetSex(char*s);/设置性别设置性别boolSetNumber(int num);/设置学号设置学号protected:/保护成员保护成员charm_strName20;/姓名,字符串数组姓名,字符串数组intm_nAge;/年龄,整型年龄,整型charm_cSex;/性别,字符型性别,字符型intm_nNumbe
25、r;/学号,整型学号,整型;例:例:C+中类的声明中类的声明Student类类成员函数成员函数成员函数成员函数成员变量成员变量Student A;/声明声明Student的对象的对象AA.SetName(“张三张三”);/设置设置A的名字的名字A.SetAge(20);/设置设置A的年龄的年龄例:例:C+中类的使用中类的使用总的来说,总的来说,结构化程序设计方法是一种模块化程序设计结构化程序设计方法是一种模块化程序设计方法,它在解决问题时是方法,它在解决问题时是以功能为中心以功能为中心的,的,一定的功能模块虽然也作用于特定的数据,一定的功能模块虽然也作用于特定的数据,但它们并没有被封装在一起。
26、但它们并没有被封装在一起。面向对象程序设计方法则是面向对象程序设计方法则是以对象为中心以对象为中心来来解决问题的。属于同种对象的属性(数据)解决问题的。属于同种对象的属性(数据)和服务(功能)被抽象出来封装到一起。和服务(功能)被抽象出来封装到一起。Whydowecareaboutobjects?Modularity(模块化模块化)-large software projects can be split up in smaller pieces.Reuseability(可重用性可重用性)-Programs can be assembled from pre-written software
27、 components.Extensibility(可扩展性可扩展性)-New software components can be written or developed from existing ones.软件工程知识软件工程知识03:大量可重用软件组件的类库可以通过大量可重用软件组件的类库可以通过Internet得到,许多这样的类库都是免费的。得到,许多这样的类库都是免费的。Abstraction(抽象抽象)is the representation of the essential features of an object.These are encapsulated into
28、an abstract data type.Encapsulation(封装封装)is the practice of including in an object everything it needs hidden from other objects.The internal state is usually not accessible by other objects.1.4基本术语基本术语(Basic Terminology)Encapsulation(封装封装)Basic Terminology:Inheritance(继承继承)Inheritance means that on
29、e class inherits the characteristics of another class.This is also called a“isa”relationship:A car is a vehicleA teacher is a personA dog is an animal动物动物猫科动物猫科动物发出声音发出声音进食进食/饮水饮水捕食猎物捕食猎物喵喵叫喝牛奶捕食老鼠吼叫吼叫吃肉吃肉捕食大型猎物捕食大型猎物可重用性通过继承来实现可重用性通过继承来实现Basic Terminology:Polymorphism(多态性多态性)Polymorphism means“havi
30、ng many forms”.It allows different objects to respond to the same message in different ways,the response specific to the type of the object.类:形状类:形状方法:方法:绘制绘制 移动移动 初始化初始化子类子类Basic Terminology:Aggregation(聚合聚合)Aggregation describes a“has a”relationship.One object is a part of another object.A car has
31、 wheels.Basic Terminology:Behaviour(行为行为)and Messages(消息消息)The most important aspect of an object is its behaviour(the things it can do).A behaviour is initiated by sending a message to the object(usually by calling a method).The two steps of Object Oriented ProgrammingMaking Classes:Creating,extend
32、ing or reusing abstract data types.Making Objects interact(交互交互):Creating objects from abstract data types and defining their relationships.1.5C+的基本开发环境的基本开发环境Phases of C+Programs:1.Edit(编辑编辑)2.Preprocess(预处理预处理)3.Compile(编译编译)4.Link(连接连接)5.Load(装载装载)6.Execute(执行执行)LoaderPrimaryMemoryProgramiscreate
33、dintheeditorandstoredondisk.Preprocessorprogramprocessesthecode.Loaderputsprograminmemory.CPUtakeseachinstructionandexecutesit,possiblystoringnewdatavaluesastheprogramexecutes.CompilerCompilercreatesobjectcodeandstoresitondisk.Linkerlinkstheobjectcodewiththelibraries,createsa.outandstoresitondiskEdi
34、torPreprocessorLinkerCPUPrimaryMemory.DiskDiskDiskDiskDiskThree C+Program Stagesothercodefromlibraries,etc.writteninmachinelanguagewritteninmachinelanguagewritteninC+via compilervia linkerSOURCEOBJECTEXECUTABLEmyprog.cppmyprog.objmyprog.exe常见编程错误常见编程错误01:“被零除被零除”这样的错误是在程序运行这样的错误是在程序运行时发生的,所以这类错误叫做时发
35、生的,所以这类错误叫做运行期错误运行期错误(runtime error)或执行期错误。通常认为或执行期错误。通常认为“被零除被零除”是一种致命是一种致命错误,也就是说,是一种会导致程序立即终止,无法成错误,也就是说,是一种会导致程序立即终止,无法成功地完成其工作的错误。非致命错误则允许程序运行至功地完成其工作的错误。非致命错误则允许程序运行至结束,但通常会产生不正确的结果。(注意:在某些系结束,但通常会产生不正确的结果。(注意:在某些系统上,被零除并不是致命错误,详情可参见系统文档。)统上,被零除并不是致命错误,详情可参见系统文档。)良好编程习惯良好编程习惯01:C+程序应以简单和直接的方式编
36、写。程序应以简单和直接的方式编写。有时,也称为有时,也称为KIS(“keep it simple”)。千万不要尝试一些。千万不要尝试一些古怪的用法,滥用这种语言。古怪的用法,滥用这种语言。可移植性提示可移植性提示03:尽管有可能写出可移植的程序,但在尽管有可能写出可移植的程序,但在不同的不同的C和和C+编译器以及不同的计算机之间,会产生编译器以及不同的计算机之间,会产生许多问题。这些问题的存在,加大了移植程序的难度。许多问题。这些问题的存在,加大了移植程序的难度。并不是说用并不是说用C和和C+编写程序就能保证移植性。程序员编写程序就能保证移植性。程序员通常需要直接同各种编译器和计算机打交道。通
37、常需要直接同各种编译器和计算机打交道。良好编程习惯良好编程习惯02:仔细阅读所用仔细阅读所用C+版本的用户手册。版本的用户手册。经常查阅这些手册,确保自己能了解并正确使用经常查阅这些手册,确保自己能了解并正确使用C+丰丰富的特性。富的特性。良好编程习惯良好编程习惯03:计算机和编译器是最好的老师。在仔计算机和编译器是最好的老师。在仔细阅读了细阅读了C+语言手册之后,如果不能确定一项语言手册之后,如果不能确定一项C+的的特性是如何起作用的,不妨用一个短小的特性是如何起作用的,不妨用一个短小的”测试程序测试程序“进行试验,然后观察试验效果。设置编译器选项,令其进行试验,然后观察试验效果。设置编译器
38、选项,令其报告的警告数最多。研究程序编译时出现的每一条错误报告的警告数最多。研究程序编译时出现的每一条错误信息,并对程序进行纠正,最终消除这些消息。信息,并对程序进行纠正,最终消除这些消息。/Program:Display greetings/Author(s):Ima Programmer/Date:1/24/2001#include using namespace std;int main()cout Hello world!endl;return 0;A First Program-Greeting.cppPreprocessordirectivesInsertionstatementE
39、ndsexecutionsofmain()whichendsprogramCommentsFunctionFunctionnamedmain()indicatesstartofprogramProvidessimpleaccess上一程序中几种不同的上一程序中几种不同的include方法方法1.#include2.#includeusingnamespacestd;4.#include在程序中使用在程序中使用cout时需要写成如下形式:时需要写成如下形式:std:cout;3.#includeusingstd:cout;良好编程习惯良好编程习惯04:每个程序都应该以注释开头,由于描每个程序都应
40、该以注释开头,由于描述该程序的用途、作者、日期和时间。述该程序的用途、作者、日期和时间。/Program:Display greetings/Author(s):Ima Programmer/Date:1/24/2001#includeusingnamespacestd;常见编程错误常见编程错误02:在一个需要从键盘输入数据,或者需在一个需要从键盘输入数据,或者需要将数据输出至屏幕的程序中,假如忘了包含要将数据输出至屏幕的程序中,假如忘了包含iostream文件,会导致编译器报告一条错误信息。文件,会导致编译器报告一条错误信息。intmain()coutHelloworld!endl;retu
41、rn0;常见编程错误常见编程错误03:遗漏语句末尾的分号是一种语法错误。遗漏语句末尾的分号是一种语法错误。当编译器不能正确识别语句时,便会导致语法错误。语当编译器不能正确识别语句时,便会导致语法错误。语法错误是对语言规则的违背。法错误是对语言规则的违背。语法错误也叫编译错误语法错误也叫编译错误,因为它们都是在编译阶段出现的。因为它们都是在编译阶段出现的。良好编程习惯良好编程习惯05:许多程序员让函数打印的最后一个字许多程序员让函数打印的最后一个字符是换行符符是换行符(n)。这样可保证函数将屏幕光标定位在下。这样可保证函数将屏幕光标定位在下一行的开头。这样一个自发的约定可促进软件的重用性。一行的
42、开头。这样一个自发的约定可促进软件的重用性。良好编程习惯良好编程习惯06:针对每个函数的主体,令其在定义函针对每个函数的主体,令其在定义函数主体的花括号内部,缩进一级位置。这样可使程序的数主体的花括号内部,缩进一级位置。这样可使程序的函数结构更清晰,增强其可读性。函数结构更清晰,增强其可读性。良好编程习惯良好编程习惯07:先约定喜欢采用的缩进距离,然后一先约定喜欢采用的缩进距离,然后一致遵循这一约定。致遵循这一约定。std:cout-Standard output stream object-“Connected”to the screen-std:specifies the namespac
43、e which cout belongs tostd:can be removed through the use of using statements-Streaminsertionoperator-Valuetotherightoftheoperator(rightoperand)insertedintooutputstream(whichisconnectedtothescreen)-std:cout“WelcometoC+!n”;-Escapecharacter-Indicatesthata“special”characteristobeoutput 1/Fig.1.6:fig01_
44、06.cpp2/Addition program3#include 45 int main()6 7 int integer1,integer2,sum;/declaration89 std:cout integer1;/read an integer11 std:cout integer2;/read an integer13 sum=integer1+integer2;/assignment of sum14 std:cout Sum is sum=和和=和和=运算符来说,如果两个运算符来说,如果两个字符的顺序搞反,会产生语法错误。某些情况下,将字符的顺序搞反,会产生语法错误。某些情况下,
45、将!=写成写成=!虽然不是语法错误,但肯定是逻辑错误。虽然不是语法错误,但肯定是逻辑错误。常见编程错误常见编程错误07:如果将如果将“=”同赋值运算符同赋值运算符“=”混混为一谈,会导致逻辑错误或语法错误。为一谈,会导致逻辑错误或语法错误。良好编程习惯良好编程习惯16:using语句应紧跟在它们引用的语句应紧跟在它们引用的#include后面。后面。良好编程习惯良好编程习惯17:对对if结构的主体语句采用缩进,可突结构的主体语句采用缩进,可突出结构主体,增强程序的可读性。出结构主体,增强程序的可读性。良好编程习惯良好编程习惯18:在一个程序中,每行只应有一条语句。在一个程序中,每行只应有一条语
46、句。常见编程错误常见编程错误08:在在 if 结构的条件之后,假如紧接在右结构的条件之后,假如紧接在右侧的圆括号之后放置一个分号,会造成一处逻辑错误侧的圆括号之后放置一个分号,会造成一处逻辑错误(尽管不是语法错误尽管不是语法错误)。分号将使。分号将使 if 结构的主体变空,因结构的主体变空,因此此 if 结构本身不会采取任何行动,无论它的条件是否为结构本身不会采取任何行动,无论它的条件是否为真。真。常见编程错误常见编程错误09:通过插入空白字符的办法来分割一个通过插入空白字符的办法来分割一个标识符,会产生语法错误。如:将标识符,会产生语法错误。如:将main误写为误写为ma in。良好编程习惯
47、良好编程习惯19:较长的语句可分割成几行,如果必须较长的语句可分割成几行,如果必须这样分割一条语句,请挑选最合适的断点。比如对一个这样分割一条语句,请挑选最合适的断点。比如对一个用逗号分割的列表来说,可选择在某个逗号之后断开;用逗号分割的列表来说,可选择在某个逗号之后断开;对于较长的表达式,可考虑在一个运算符之后断开,等对于较长的表达式,可考虑在一个运算符之后断开,等等。一个语句分割成多行后,除第一行之外,其他所有等。一个语句分割成多行后,除第一行之外,其他所有行都进行缩进处理。行都进行缩进处理。良好编程习惯良好编程习惯20:在编写含有多个运算符的表达式时,在编写含有多个运算符的表达式时,务必参考运算符优先级表。如果表达式过于复杂,无法务必参考运算符优先级表。如果表达式过于复杂,无法确定顺序,可将表达式分割成几个小语句,或者干脆用确定顺序,可将表达式分割成几个小语句,或者干脆用括号强行规定顺序。括号强行规定顺序。