零点起飞学VisualC之C语言基础

上传人:e****s 文档编号:240636552 上传时间:2024-04-26 格式:PPTX 页数:119 大小:254.58KB
返回 下载 相关 举报
零点起飞学VisualC之C语言基础_第1页
第1页 / 共119页
零点起飞学VisualC之C语言基础_第2页
第2页 / 共119页
零点起飞学VisualC之C语言基础_第3页
第3页 / 共119页
点击查看更多>>
资源描述
第2章 C+语言根底C+语言是对传统C语言进行面向对象的扩充。使用C+语言可以在Visual C+开发环境中开发出功能强大的应用程序。通过本章的学习,读者可以快速回想起C+的语法知识。2.1 什么是面向对象程序设计对象是面向对象程序设计技术的核心,那么到底什么是对象?世界上的一切事物都是对象,都是客观对象。人类大脑中的认识和概念也是对象。可见对象可以是有形的实体,也可以是无形的认识、知识、事件等。概括地说对象就是一个实体,它具有一个名字标志,并且具有自身的状态和功能。在软件设计和实现中,传统的被人们广泛使用的是面向过程的程序设计。随着计算机技术的开展,面向对象的程序设计思想被越来越多的程序员所接受。面向对象的程序设计是一种新型的程序设计方法。这种程序设计方法的特征是:应用程序对象消息。面向对象程序设计的根本元素是对象,而面向对象程序设计中把对象抽象成类,因此在程序设计中就主要包括类的定义和类的使用两局部。在整个完整的软件中就是通过在对象之间进行消息传递从而联系全部的类。面向对象程序设计的核心就是对象和类。对象就是人们认识世界的根本单元,可以是人,可以是物,也可以是抽象的事件等。当然对象可以有假设干小的对象组成,例如某个学生可以看作一个对象,那么学生的生活方面,学习方面都可以看成小的对象。而学生由生活方面和学习方面组成。对象都具有区别于其他对象的静态属性和动态行为。静态属性又称为对象的状态,动态属性又称为对象的功能。类是现实世界中具有共同静态属性和动态属性的对象的抽象,类和对象之间的关系就是抽象和具体之间的关系。类是多个对象进行综合抽象的结果,而对象那么是类的实例化。例如:某个学生张三是一个对象,一个个像张三的学生那么可以抽象出一个学生类。张三就是学生类的实例化。消息是向某对象请求效劳的一种表达方式。对象内有方法和数据,外部的用户或对象对该对象提出的效劳请求,可以称为向该对象发送消息。面向对象的编程方法具有4个根本特征,下面分别进行介绍。1抽象抽象就是对某些特定实例抽取其共有的性质后所形成的概念,是抽取现实实例所共有的特征。抽象是对系统的简单描述,强调了系统局部属性,忽略了系统的其他局部。2继承继承是从一种实际事物联系到另外的事物,是一种联结类的层次模型,允许类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,称为原始类的派生类,而原始类称为新类的基类。继承性使得程序设计的代码复用得到充分解决。3封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装是将事物的数据抽象的外部接口与内部实现的细节隔离。内部数据不可以被随便修改,从而保证程序的平安性。4多态性多态性是指允许不同类的对象收到相同的消息时产生不同的响应。C+语言支持两种多态性,即编译时的多态性和运行时的多态性。编译时的多态性通过重载来实现,而运行时的多态性那么通过虚函数来实现。具体概念和实现方法将在后面进行讲解。面向对象是新型的程序设计方法,其思想比过程化的程序设计更先进。掌握面向对象的程序设计需要透彻理解面向对象的根本概念和特性。C+语言作为面向对象的程序设计语言,学习和运用C+语言已经成为现代程序员的根本要求。注意:C+并不是纯面向对象的程序设计语言,它是一种面向过程程序设计和面向对象程序设计的混合程序设计语言。2.2 单一数据的表示数据类型数据类型就是一类数据的集合。在计算机中,数据以某种特定的形式存储在计算机中,数据类型决定了数据在计算机中的存储形式。2.2.1 数据的指代常量与变量常量是指在程序运行中,数值不能改变的量。例如13、28、a、2.3等,这些量在整个程序运行期间,其值不发生改变。在C+中,定义常量的语法如下所示。#define 标识符 常数其中,#表示这是一个宏定义命令;define为定义符号常量的关键字;标识符为常量的名称;常数为符号常量具体的数值。常量定义中关键字和标识符,以及标识符和常数之间必须留一个以上的空格。【例如2.1】定义一个名称为PI的符号常量。#define PI 3.14分析:上面定义了一个符号常量PI,其值在程序运行期间保持不变,且为3.14。习惯上,符号常量名用大写形式,但并不是必须使用大写。变量那么是在程序运行期间其值可以改变的量。一个变量应该有一个名字,在内存占据一定的空间。在该存储空间中存放变量的值。在程序中可以利用变量的名字对变量进行访问,即得到变量的值。在C+中定义变量的语法形式如下所示。数据类型 标识符;其中,数据类型表示变量的数据类型是什么;标识符为所定义的变量的名称。变量的数据类型和标识符之间必须留一个以上的空格。【例如2.2】定义两个变量。int a=8;/定义一个整型变量double a;/定义一个双精度实型变量分析:上面第一行代码定义了一个变量,并且赋初值为8。第二行代码只是定义一个变量。习惯上,变量的标识符使用小写形式。关于数据类型将在下面进行介绍。注意:C+规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。2.2.2 简单数据类型C+语言中的简单数据类型是指根本的数据类型,即整型、实型、字符型等。下面介绍其特点和用法。1整型整型是程序设计语言中最常用的数据类型,是用来表达整数的数据类型。整型数据包括整型常量和整型变量。整型常量是整数,例如1、100等,整数可以用十进制、八进制和十六进制表示。八进制整数以数字0开头,后面的为八进制数据。十六进制那么以0 x开头,后面的为十六进制数据。整型变量是在程序运行期间数据的值可能发生变化的整型量。整型变量又分为根本类型、短整型和长整型。其关键字以及表示数据的范围如表2.1所示。在C+中整型变量的定义为整型类型 标识符;并且整型类型中的signed可以省略。表2.1 整型的分类类 型型比比 特特 数数数数 据据 范范 围signed int163276832767unsigned int16065535signed short int163276832767unsigned short int16065535signed long int3221474836482147483647unsigned long int3204294967295【例如2.3】定义三个整型变量。int a=10;/定义整型变量aint i,j;/定义整型变量i和j说明:可以利用关键字int一次说明多个整型变量。注意此时整型变量之间用逗号做分隔符,最后一个变量的后面加“;例如int I,j,k;。2实型实型数据类型同样包括实型常量和实型变量。实型是用来表示实数的数据类型。实数又称为浮点数,可以用十进制小数表示,也可以用指数形式表示。实型常量即是实数,例如3.25、5.98等。实型变量又分为单精度,以关键字float表示;双精度以关键字double表示;长双精度以关键字long double表示。三者的区别如表2.2所示。表2.2 实型的分类在C+中实型变量的定义为float/longdouble实型变量名;类 型型比比 特特 数数有有 效效 数数 字字数数 据据 范范 围float 32 63.410383.41038double 64151.7103081.710308long double128181.21049321.2104932【例如2.4】定义两个实型变量。float f=0.35/定义单精度实型变量fdouble ff=6.2545/定义双精度实型变量ff3字符型字符型是用来表达字符的数据类型。字符常量是用单引号括起来的一个字符。如a、9等。字符型变量用来存放字符常量,且只能存放一个字符常量。字符变量的定义以关键字char说明。在C+中字符型变量的定义为char字符型变量名。【例如2.5】定义字符型变量。char c=g;/定义字符型变量cchar p,w;/定义字符型变量p和w2.2.3 字符串常量字符常量是由单引号括起来的单个字符。C+语言同C语言一样,除了字符常量外,还支持字符串常量。字符串常量是由一对双引号括起来的字符序列。如:HELLO WORLD!,Study boy字符串常量和字符常量的区别是,字符串常量在每一个字符串的最后一个字符后面,加上一个字符串结束标志,从而在程序访问时可以判断字符串的字符序列是否结束。2.2.4 构造类型数组C+语言中除了根本数据类型外,还提供了构造数据类型,即数组。数组是有序数据的组合,数组中的每一个元素都属于同一数据类型,这和C语言中的数组是完全一致的。数组包括一维数组和多维数组。数组的定义格式和引用方式与在C语言中是一致的。【例如2.6】定义一个数组。int a3;分析:上面的语句定义了一个数组,这就是C+语言中构造类型的根本使用方法。关于数组的使用将在2.3节中进行详细介绍。2.2.5 文件类型C+语言中提供了文件的数据类型,即C+把文件看做是字符序列,文件由一个一个字符数据顺序组成。根据数据结构的组织形式,可以把文件分为文本文件和二进制文件。在C+中假设要对文件进行输入输出,必须首先创立一个流,然后将流和文件相关联。即翻开文件,此时才可以进行操作,然后关闭文件。由于文件的使用比较复杂,在后面的章节中将详细介绍C+中文件的根本操作。2.2.6 指针类型C+语言中的指针和C语言中的指针是完全一样的。但是C+语言中提供了特殊的指针,即void型指针。它表示不确定的类型。void型指针是一种通用型指针,也就是说任何类型的指针都可以赋值给void型的指针变量。【例如2.7】void型指针的使用。void*p;/定义void型指针变量void p;/错误,不可以定义void型变量int i=3;char c=w;p=&i;p=&c;上面介绍了在C+语言中常用的数据类型,掌握数据类型的根本概念和使用方法是进行程序设计的前提。读者应掌握上面介绍的全部概念。2.3 多个数据的表示数组数组作为一种构造数据类型,它的使用和根本类型有很大不同。因此有必要对数组这一数据类型进行介绍。2.3.1 一维数组数组是有序数据的集合。在C+中一维数组的定义方式和C语言中一维数组的定义方式完全相同,并且使用方式以及使用的本卷须知都与C语言中根本一致。1一维数组的定义一维数组定义的根本形式如下:类型说明符 数组名称常量表达式;其中,类型说明符指的是数组元素的类型,其是以根本数据类型,例如整型、浮点型等。数组名称指的是该数组的名字。常量表达式那么是数组的大小。【例如2.8】定义一个10个元素大小的整型数组num。int num10;/定义整型数组在定义了一维数组以后,程序中可以对该数组中的元素进行使用,并且在程序中只能对数组的某一个元素进行使用,不能使用整个数组。数组元素的表示形式为:数组名称下标;【例如2.9】将例如2.8中定义的整型数组的第3个元素初始化为3。num2=3;/对数组中的第3个元素赋值说明:在C+中数组元素的下标从0开始,因此第3个元素也就是下标为2的元素。2数组的初始化在定义了数组以后,可以利用上面的形式一个个对数组中的元素进行初始化工作。同时也可以使用下面几种方法对数组进行初始化。1定义数组时对数组元素赋初值。其根本形式为:类型说明符 数组名称常量表达式=常量1,常量2,需要注意的是常量必须与类型说明符一致,或者可以进行转换。【例如2.10】定义一个字符数组,并且进行初始化。char c3=a,b,c;2只对数组中的局部进行赋值,当提供的常量个数与常量表达式的数值不相等时,只对数组前面的局部进行赋值。3定义数组元素为相等的值,此时可以使用下面的形式。类型说明符 数组名常量表达式=常量;【例如2.11】定义一个10个元素大小的整型数组,初始化为0。int num10=0;3一维数组的使用定义了一维数组以后,就相当于定义了多个数组类型的变量。在应用中可以像使用变量一样使用数组元素。例如保存数据、进行计算等。【例如2.12】定义一个字符数组,将三个字符变量分别赋值给数组。代码如下:char c1=a;char c2=s;char c3=d;/定义字符变量char c3;/定义字符数组c0=c1;c1=c2;c2=c3;本小节介绍了在C+中一维数组的定义和使用方式。在C+中一维数组的定义和使用与C语言的定义和使用根本相同。2.3.2 二维数组在C+中二维数组与C语言中的二维数组的定义是一样的。一维数组是一行有序数据的结合,而二维数组那么是一个有序数据的一个矩阵。1二维数组的定义在C+中二维数组的定义形式与一维数组的定义根本相同,其根本形式如下:类型说明符 数组名称常量表达式1 常量表达式2;【例如2.13】定义一个整型的二维数组。int num23;分析:上面定义了一个2*3的整型数组。实际上二维数组的数据存储也是在内存中按顺序排列的。在定义了二维数组以后,可以对数组元素进行引用。与一维数组一样,二维数组元素的下标从0开始。【例如2.14】将二维整型数组的第一行、第三列的元素赋值给整型变量i。int num23;/定义数组int i=num02;2二维数组的初始化二维数组的初始化可以与一维数组一样对每个数组元素进行访问,并赋值。除此之外还可以使用下面几种形式对二维数组进行初始化。1分行初始化:分别对二维数组的每行的每个元素进行初始化。【例如2.15】对二维数组进行初始化。char c23=a,b,c,d,e,f分析:上面就是定义一个二维数组,并且进行初始化。2全部初始化:一次性对数组的每个元素进行初始化。【例如2.16】初始化二维数组char c23;。char c23=a,b,c,d,e,f;分析:上面的初始化与第一种方法根本一样。它首先初始化第一行,然后初始化第二行。这种方式初始化由于没有界面,容易遗漏。3二维数组的使用在定义了二维数组以后,在程序中就可以使用该数组。二维数组的使用与一维数组的使用根本相同。即可以利用下标的形式定义到一个具体的数组元素,然后进行访问。【例如2.17】将一个2*3的整型数组的00位置的元素与12位置的元素进行数据交换。int num23=1,2,3,4,5,6;/定义数组并初始化int i;i=num00;num00=num12;num12=i;上面介绍了在C+中二维数组的定义、初始化和使用的根本方法。读者应掌握二维数组这种构造数据类型。2.3.3 字符型数组前面已经介绍了在定义一维或者二维数组时,需要指定其类型说明符。类型说明符是根本数据类型,例如整型、浮点型、字符型等。但是字符数组与其他数组有时不同,下面对字符数组的特殊用法进行介绍。1字符数组的定义字符数组与一般数组的定义是一样的。同时数组的初始化与一般的数组也没什么两样。对数组元素的访问也与普通数组一致。【例如2.18】定义一个二维字符数组,用来存放3行字符串常量。并且将第2行和第3行对应的元素进行交换。char c33=o,n,e,t,w,o,t,h,r;/定义二维字符数组并初始化char cc;for(int i=0;ic0c1c2c3;在键盘上输入China,此时在c5中保存的是一个乱码,而不是0。因此如果此时输出,那么会输出一个乱码。为了消除这种现象,可以在输出时单个输出字符,同时不输出最后元素的字符。2整个字符串一次输入:整个字符串一次输入时,当遇到空格,那么默认地作为一个0字符保存在数组中。并且此后输入的字符不再保存。如果还有连续输入的要求那么作为下一个输入。【例如2.20】输入两个字符串,并输出。char c15,c25;cinc1c2;/输入coutc1 c210&b10)/&的使用a=100;b=100;分析:上面的代码就是逻辑运算符&的根本使用方法。使用该运算符对常用的逻辑组合判断有很大的作用。2.4.4 关系运算符关系运算和逻辑运算一样,在程序设计中经常用到。逻辑运算最常用的是判断某种具体值是否属于某类的情况。例如计算1加到100的值,那么需要从1加到100,期间需要判断变量是否大于100,从而设计程序。关系判断在程序设计中也是十分重要的运算。【例如2.24】比较a和b的大小。if(ab)couta is bigger than bendl;分析:上面进行的就是大于关系运算,当a大于b时输出语句。2.4.5 位运算符位运算是在程序设计中不经常使用,但是应用技巧性很强的一类运算。其主要包括“,“,“和“&。“是右移运算符,实际上就是变量除2。“是按位取反运算符,即把变量的二进制取反。“是把两个变量按位进行异或。“&是将两个变量按位相与。【例如2.25】把十进制数据10除2。int i=10;int b=i1;/除2结果5分析:所谓的除2运算就是把该数据对应的二进制数据右移一位。例如10的二进制为00001010,对应的右移一位的数据为00000101,即5。2.4.6 逗号运算符逗号运算符是一类比较特殊的运算符,其是将多个表达式连接起来。逗号运算符又称为顺序求值运算符。【例如2.26】逗号运算符的使用。int a=9;int b;int c=(b=a+2,b+3);/逗号运算符的使用分析:逗号运算符即把两个表达式进行顺序连接,首先求解第一个表达式的值,然后求解第二个表达式的值,得到整个逗号运算的值。本例中,先计算a+2得b=11,再计算b+3的整个逗号运算的值为14,即c=14。2.5 程序的根本单元表达式和语句由运算符构成的式子称为C+语言的表达式。常见的表达式有赋值表达式,算术表达式和逗号表达式。赋值表达式是由赋值运算符构成的表达式,例如int a=10。虽然赋值表达式十分简单,但其应用广泛。函数的返回值可以直接作为赋值表达式右半局部,例如函数int fun(),可以这样写出赋值表达式int i=fun()。逗号表达式即前面讲解的由逗号运算符构成的表达式。程序通过语句向计算机发送命令。但是程序中并不都是语句,声明局部的内容不是语句。例如int i=9;这条赋值语句不能算作一条语句。在C+程序设计中常用的语句包括以下几种。1控制语句:在程序设计中最常用的结构类设计语句。例如循环、条件等。2函数调用:程序设计中对函数的调用。3表达式语句:一个表达式构成的语句。最简单的如赋值语句:int a=0;。4空语句:只有一个分号所构成的语句。5复合语句:用大括号“把几条语句放在一起成为复合语句,又称为分程序。2.6 程序控制结构C+语言中有3种根本的程序控制结构,分别是顺序结构、选择结构和循环结构。几乎所有应用软件都会使用这3种程序控制结构。顺序结构比较简单,程序按照语句的顺序执行。选择结构和循环结构可以完成很多复杂的功能。本节将对这3种控制结构进行分析,讲解操作实例。2.6.1 直肠子程序顺序结构顺序结构是最简单、最常用的程序结构。其典型特点是程序完全按照语句出现的先后次序执行。在顺序结构的程序中,最常用的是赋值语句。其是C+程序中最根本的语句,作用是将表达式的值赋给变量或对象。赋值语句的语法格式如下:name=expression;其中,name为变量或者对象,expression为表达式。顺序结构常见的用法是在程序中和用户的输入进行交互。程序从上到下顺序执行。【例如2.27】设计一个程序,输入某个学生的语文、数学、英语3门课的成绩后计算其总成绩和平均分。分析:要求3个数相加求其总和并计算平均值,采用顺序设计比较合理,具体代码如下:分析:上面的例子就是顺序程序设计,其中的cin和cout为首的几行是输入输出,具体用法将在下面进行介绍。这里只需了解顺序程序设计的根本结构即可。说明:C+程序设计中注释符为“/,即“/后面的内容为注释内容。同时在C+中“/*和“*/成对出现,其中的内容也为注释内容2.6.2 有头脑的程序选择结构选择结构是利用条件语句实现的。根据指定的条件表达式的结果,选择符合条件的某一分支执行相关操作。条件语句中的条件表达式通常是关系表达式、逻辑表达式、数字表达式或者字符串表达式。选择结构程序设计是应用程序设计过程中较为常用的结构。关系运算符是选择结构中常用的判断语句。在C+语言中常用的是ifelse语句,其最常用的形式有下面3种。1第一种样式if(关系表达式)语句1;else 语句2;分析:上面的选择结构是根据if后面的括号的关系表达式的值进行选择分支。如果关系表达式为真,那么执行语句1;否那么,执行语句2。【例如2.28】是一个选择结构例如。下面的代码根据整型变量a的值与3的大小关系进行选择结构的输出。if(a3)/判断a是否大于3,如果大于3,执行下面的语句,否那么执行else后面的语句couta is bigger than 3endl;else couta is not bigger than 310的关系的真假进行语句选择。如果为真,那么执行语句,将x重新赋值为11。否那么跳过该语句。if(x10)x=11;分析:上面的形式是选择结构中最简单的用法,即根据条件表达式的值进行判断,符合条件那么执行语句,否那么不执行语句。需要注意的是语句可以是利用大括号括起来的复合语句。3第三种样式if(表达式1)语句1else if(表达式2)语句2else if(表达式m)语句melse 语句m+1分析:上面的选择结构是一个多项选择结构。其根据表达式的值逐层向下执行,遇到真那么执行if后面的语句,否那么执行else进入下一层选择结构。【例如2.30】一个选择结构例如。将a的取值分为4个范围,然后根据a的范围,分别输出一句代码。if(a3)/判断a是否小于3couta is small than 3endl;/a小于3else if(a6)/a不小于3,继续判断是否小于6couta is not small 3,but is small than 6endl;else if(a10)/a不小于6,判断是否小于10couta is not small 6,but is small than 10endl;else couta is bigger than 10endl;分析:上面的形式是一种多项选择择形式。在实际应用中,可能表达式的范围并不可以一分为二,可能会出现多个范围,这就需要多项选择择语句。例如,邮局的包裹就需要根据不同的重量段进行收费。需要使用多项选择择语句。除了if语句外,switch语句也是较为常用的。其是多分支选择语句。当然多分支语句可以用if语句的嵌套进行替换,但是switch更加简单,程序可读性更好。其形式如下:swith(表达式)case 常量表达式1:语句1case 常量表达式2:语句2case 常量表达式3:语句3case 常量表达式n:语句ndefault 语句n+1上面的结构根据switch后面括号内的表达式的选择语句执行。当表达式的值与case后面的常量表达式的值相等时那么执行“:后面的语句。当找不到对应的值时,那么执行default后面的语句。【例如2.31】利用switch语句改写例如2.30,即利用switch语句实现a的取值范围的划定。switch(a/3)/switch判断case 0:/a/3为0couta is small than 3endl;break;case 1:/a/3为1couta is not small 3,but is small than 6endl;break;case 2:/a/3为2couta is not small 6,but is small than 9endl;break;default:/a/3不满足上面的取值couta is not small than 9endl;分析:上面的选择结构那么是根据a/3的值选择语句执行。需要注意的是,执行完一个case语句后,流程会继续执行下一条case语句。因此程序的case语句经常需要添加break跳出整个结构。上面介绍了常用的几种选择结构。在实际应用中可以根据适宜的结构设计选择程序。下面介绍一个选择结构设计的例子。【例如2.32】设计一个程序,输入一个数据,如果输入数据大于10,那么在屏幕输出its greater than 10。如果小于等于10而大于5,那么在屏幕输出its greater than 5,but less than 10。如果小于5,那么输出its less than 5。分析:要求根据输入数据的区间选择输出,程序需要使用if语句的第三种使用方式,具体程序如下:分析:上面的程序就是选择结构的设计。根据一个输入的整数值,输出其范围。如果输入的值大于10,那么输出一条大于10的语句。如果输入大于5而小于10,那么输出其大于5小于10的语句。如果不满足上面的情况那么输出小于5的一条语句。2.6.3 死脑筋的程序循环结构循环程序设计也是程序设计中常用的结构之一。程序中一些代码段需要重复执行以实现某些功能。例如程序中要计算1加到100的值,如果选择顺序结构,那么相加语句至少要写99条。而如果使用循环结构,程序的结构会十分清晰。循环结构中常用的形式是for循环、while循环和dowhile循环,以及goto语句。1for循环for循环的根本形式如下所示。for(表达式1;表达式2;表达式3)语句;其执行过程如下所述。1先求解表达式1;2求解表达式2,假设其值为真值为非0,那么执行for循环中的内嵌语句,然后执行步骤3,否那么跳转到步骤5;3求解表达式3;4转回到步骤2;5循环结束,顺序向下执行。【例如2.33】一个for循环例如。语句执行10次,即程序输出10行“study。for(i=0;i10;i+)/i从1到10进行10次循环 coutstudy3语句,如果成立那么输出a3,然后将a加1,再执行判断a3语句,继续循环执行。while(a3)cout3endl;a+;分析:上面的代码中首先比较a与3,然后根据判断结果执行循环体。注意while后面括号内的表达式后面不能添加分号。同时使用while循环时应该在循环体中对while循环条件进行改变,否那么程序一直进行循环。3goto语句goto语句常用的形式是:goto 语句标号;语句标号用标识符来表示,是由字母、数字和下划线组成,但第一个符号必须是字母或下划线。goto语句可以和if语句一起构成循环结构。使用goto语句程序可读性差,流程不清晰,因此程序设计中应尽量防止使用goto语句。【例如2.35】是一个goto语句例如。首先执行print:后面的语句,然后顺序执行。当执行到goto print;时那么程序会跳转到print:后面的语句再次执行。print:coutstudyendl;goto print需要注意的是语句标号是一个非C+关键字的标识符,在语句标号后面添加一个分号表示语句标号所在位置。说明:一般情况下不使用goto语句,过多使用goto语句会影响程序可读性和稳定性。4dowhile循环dowhile循环常用的形式如下:do循环体语句while表达式它是这样执行的,首先执行一次循环体,然后判断表达式。如果表达式为真,那么返回重新执行循环体,直到表达式的值为0。【例如2.36】是一个dowhile循环例如。首先执行大括号内的语句,然后判断a=3,如果成立,那么继续执行括号内语句。依次循环,直到while后面括号内的表达式为假时,不再执行。docoutstudyendl;a+;while(a配合使用,cin可以连续输入多个数据,但需要注意的是用户输入多个数据时需要在连续输入之间参加空格、回车或Tab键。同时C+语言的输入默认使用了系统默认格式,但是在程序设计中可以对输入输出进行格式控制。例如可以按十六进制、八进制等进行输入输出,具体使用如例如2.37所示。2标准输出标准输出是指从内存到屏幕的输出。cout和“配合使用。同时cout可以输出多项,即可以连续使用“进行输出,输出按从左向右进行输出。cout中定义控制符endl代表回车换行。下面给出一个输入输出的实例。由于cout和cin定义在头文件iostream.h中,编写程序时需要将此头文件包含在程序中。【例如2.37】连续输入3个整数,然后把3个数据分别以十进制、八进制、十六进制输出。具体代码如下:2.8 编程实例与调试前面已经介绍了C+语言的根底知识,下面介绍C+程序设计中代码编写和程序调试的根本方法。2.8.1 编写代码分析根本问题后,就需要把实际问题抽象成一定的数学模型,然后通过软件设计工具进行描述后,根据此流程图编写程序。代码编写是程序中的根本工作之一,当把问题的数学模型做好以后,根据数学模型作出程序流程图,剩下的工作就是由编程实现。因此代码编写用数学模型去实现。那么代码编写要注意哪些问题呢?首先是注意根据程序流程图编写代码。程序流程图是把数学模型进行转化得到的,是程序设计中最重要的一局部。可以说流程图是对程序设计的最强有力的指导。然后注意代码编写的习惯。无论是注释的添加,还是空格的使用,都需要注意。养成良好的编写代码的习惯是一个程序员最根本的素质。最后就是注意对代码的重复使用。程序设计中代码的重复利用是十分重要的,C+语言“类的产生可以说就是为了代码的重复利用问题,因此编写程序时应该把一些常用的代码段保存,做成自己的库文件。在Visual C+中编写代码首先应该注意代码的格式。同时应该了解一些常用的技巧。在Visual C+6.0中可以使用右下角的状态栏定位光标的当前位置,包括行号和列号。同时在代码编写过程中可以对一些代码添加注释,这样可以加深印象。同时以后再次查看代码时可以快速记起整个应用程序的代码流程等。2.8.2 Visual C+工程文件介绍在利用Visual C+进行软件开发时会在当前的工程目录下生成多个类型的文件。例如后缀名为.cpp文件是源码文件,而后缀名为.h文件是头文件。根据第1章使用向导创立的win32应用,其目录下生成的文件的后缀名如下所述。.dsp文件:是整个工程的工程文件,包含整个工程的信息。可以使用文本格式翻开,看到工程信息。但是默认的是使用Visual C+翻开,加载整个工程。.dsw文件:工作区文件,可以使用文本格式翻开,里面内容是工程的情况。默认使用Visual C+翻开,可以加载工程,但是如果没有dsp文件,那么加载工程失败。此文件是整个工作区情况的描述,而dsp仅仅是一个工程的描述。.plg文件:编译信息文件,编译时的error和warning信息文件会存储在此文件中。可以使用文本格式翻开。.opt文件:保存了当前工程的环境设定文件,一般不可以翻开。.ncb文件:保存类工程中类向导使用情况。该文件由Visual C+自动生成,不需要程序员进行编辑。一般不可以翻开该文件。.h文件:C+语言中的头文件。一般是类的声明文件。.cpp文件:C+的源文件,是类的函数定义和整个程序实现的文件。在使用Visual C+进行软件开发时经常出现工程工程打不开或者出错等问题,出现这种情况最可能的原因就是缺少文件造成的。一个完整的工程文件需要包含多个文件的支持。在Visual C+中,开发工具会自动生成工程所需要的各个文件。一般来说,程序员除了添加.h和.cpp文件以外,并不需要对其他文件进行处理。2.8.3 调试与运行程序代码编写完成后不可能没有错误,甚至说程序的逻辑错误比起语法错误更为严重。因此程序的调试就显的尤为重要。程序调试中可以利用单步执行,手工进行查找程序中的错误,然后进行排错。当然可以也使用软件工程中的软件测试方法进行测试,确保软件的正确性。一般来说在Visual C+中常用的测试是单步运行和断点测试。调试程序时,经常利用设置断点使程序可停止地运行,这样可以在程序中动态地查看变量的值。断点设置的方法是在要设置断点的位置单击,光标闪动,右击。在弹出的快捷菜单中选择Insert|Remove Breakpoint命令即可在光标处设置断点。取消时同样是在要取消断点的那一行右击,在弹出的快捷菜单中选择Remove Breakpoint命令即可取消本行的断点。或者利用弹出的快捷菜单的Disable Breakpoint命令和Enable Breakpoint命令设置断点状态。本小节简单介绍了程序设计的根本流程。程序设计是实践性很强的课程,多进行上机操作可以帮助读者快速掌握理论知识,同时提高程序设计水平。在2.9节中将结合具体实例讲解完整的程序设计步骤。2.9 小 结本章主要介绍了C+的根本语法知识。C+语言是C语言在面向对象的扩充。C+语法和C语言的语法根本是相同的,C+使用了新的I/O。通过对本章的学习,应该掌握C+程序设计的根本步骤,掌握一般程序的调试方法。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!