C++程序设计案例教程完整版课件全套ppt教学教程最全整套电子讲义幻灯片(最新).pptx





《C++程序设计案例教程完整版课件全套ppt教学教程最全整套电子讲义幻灯片(最新).pptx》由会员分享,可在线阅读,更多相关《C++程序设计案例教程完整版课件全套ppt教学教程最全整套电子讲义幻灯片(最新).pptx(360页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.1 面向对象程序设计1.2 C+程序设计1.3 C+程序的开发过程1.4 面向对象程序的组成元素第1章 绪论1.5 C+程序的编译与调试1.6 本章小结2.1 C+数据类型2.2 变量与常量2.3 运算符与表达式2.4 控制结构2.5 数组2.6 函数第2章 C+基础知识2.7 结构体2.8 联合体2.9 指针2.10 面向过程程序设计规范2.11 菜单结构的设计与实现2.12 本章小结返回目录2.1.1C+字符集C+基本数据类型2.1.2C+构造数据类型2.1.3引用2.1.4面向对象程序设计的基本特征2.1.5面向对象的程序设计方法与步骤2.1.7面向对象程序设计与面向过程程序设计的比
2、较2.1.62.1 C+数据类型C+字符集C+字符集字母字母:az;AZ数字数字:0123456789其他符号其他符号:+-*/=,._:;?|!#%&()(空格)C+基本数据类型知识点概述1.字符类型字符类型字符常量:括在单引号中的字符。如:A,特殊的字符常量:转义字符,如:n字符变量:使用char进行声明的标识符。如:charch;字符串常量:括在双引号内的字符序列,如:”hello,world!”2.整数类型整数类型整型常量:十进制、八进制、十六进制的整型常量。整型变量:使用int进行声明的变量3.浮点类型与双精度类型浮点类型与双精度类型浮点常量:实数和科学计数法两种形式浮点变量与双精度
3、变量:分别使用float和double进行声明4.空类型空类型:voidC+构造数据类型什么是构造类型?构造类型又称为组合类型,它是由基本类型按照某种规则组合而成的构造类型又称为组合类型,它是由基本类型按照某种规则组合而成的数组数组:由具有相同数据类型的元素组成的集合结构体结构体:由不同的数据类型构成的一种混合的数据结构联合联合:构成联合体的数据成员共用同一段内存单元枚举类型枚举类型:将变量的值列举指针类型指针类型:存储另一变量的地址类类型类类型:它定义的是一种对象类型,由数据和方法组成知识点概述 引用概念概念:变量的别名,和所引用变量共享内存定义定义:数据类型&引用变量名=变量名;使用使用:
4、引用函数的参数引用还可以做函数的返回值程序举例intmain()inta=1;int&b=a;/定义b是a的引用cout初始化后:n;couta=a&aendl;coutb=b&bendl;b=3;coutb=3后:n;couta=a&aendl;coutb=b&bendl;int&c=b;/定义c是b的引用,别名的别名c=4;coutc=4后:n;couta=a&aendl;coutb=b&bendl;coutc=c&cendl;system(pause);return0;程序举例voidswap(int&x,int&y);intmain()inta=2,b=3;couta=ata:addr
5、ess=&aendl;coutb=btb:address=&bendl;swap(a,b);/调用函数交换a,b的值couta=ata:address=&aendl;coutb=btb:address=&bendl;system(pause);return0;/函数的定义voidswap(int&x,int&y)inttmp;tmp=x;x=y;y=tmp;程序举例intvals10;/定义的全局数组变量interror=-1;intmax=0;int&maxValue(intx,inty);/引用做函数返回值int&put(intn);/返回值是引用类型intmain()res=0;cout
6、引用仅作函数返回值:n;res=maxValue(2,3);coutres=restmax=maxendl;cout引用作函数返回值,返回值作了左值:n;put(0)=10;/以put(0)函数值作为左值,等价vals0=10;put(9)=20;/以put(9)函数值作为左值,等价vals9=20;coutvals0t;coutvals9y?x:y;returnmax;/*功能:处理数组越界函数名称:put参数:n-整数类型返回值:整形变量的引用*/int&put(intn)if(n=0&n=9)returnvalsn;elsecoutsubscripterror;returnerror;返
7、回目录2.2.1标识符与关键字变量的定义与初始化2.2.22.2 变量与常量常量与符号常量2.2.3标识符与关键字标识符标识符:程序或系统定义的符号用来作为变量名、常量名、函数名、类型名、文件名等。由字母、数字、下划线组成,且由字母或下划线开头的字符串,中间不能有空格_sum,sum,stu_name,price等为合法的标识符。cout,52select,alot,-W,sin等为不合法标注符。关键字关键字:也称保留字是C+编译器预定义的、具有固定含义的标识符,不允许另作它用常用关键字intfalseifdefaultenumsizeofpublicconst_castshortvoidel
8、sereturnunionnewprotectedstatic_castunsignedtypedefswitchstructdeleteprivatereinterpret_castlongtypeidcaseclassautovirtualdynamic_castfloatdotemplatestaticusingexplicitdoublewhiletypenameexternnamespacetrycharforregisterthiscatchw_char_tbreakvolatileoperatorthrowboolgotomutablefriendtruecontinuecons
9、tinline变量的定义与初始化变量定义变量定义的语法:变量的类型变量的名称;变量的类型变量的名称;初始化初始化的方法inta=;intb(1);intc;c=1;常量与符号常量常量通过关键字关键字const来定义语法规则语法规则const变量类型变量名称;变量类型变量名称;或const变量类型变量名称变量类型变量名称=初始值;初始值;如:如:constdoublepi=3.14;返回目录2.3.1运算符表达式2.3.2类型转换2.3.32.3 运算符与表达式运算符查看详情1.算术运算符算术运算符:+、-、*、/、%、+、-2.赋值运算符赋值运算符:=、+=、-=、*=、/=、%=3.关系运算
10、符关系运算符:、=、=、!=4.逻辑运算符逻辑运算符:!、&、|5.条件运算符条件运算符:?:6.位运算符位运算符:、|、&7.sizeof运算符运算符(求字节运算符):sizeof8.逗号运算符逗号运算符:,9.其它运算符其它运算符:指针运算符(*、&)、分量运算符(*、-)、函数调用运算符()、强制类型转换运算符(type)返回运算符的优先级与结合性运算符优先级决定了在表达式中各个运算符执行的先后顺序括号会改变优先级运算符的结合方式有两种:左结合和右结合左结合表示运算对象先与其左边的运算符结合右结合表示运算对象优先与其右边的运算符结合表达式表达式是用于计算的式子,它由运算符、运算数和括号组
11、成表达式是用于计算的式子,它由运算符、运算数和括号组成算术表达式算术表达式:由算术运算符和位操作运算符组成的表达式逻辑表达式逻辑表达式:由逻辑运算符组成的表达式。其表达式值的类型为逻辑型关系表达式关系表达式:由关系运算符组成的表达式。其表达式值的类型为逻辑型赋值表达式赋值表达式:由赋值运算符组成的表达式条件表达式条件表达式:由三目运算符组成的表达式逗号表达式逗号表达式:用逗号将若干个表达式连起来组成的表达式类型转换命名空间命名空间1.隐式类型转换隐式类型转换隐式类型转换是由编译器自动完成的类型转换。当编译器遇到不同类型的数据参与同一运算时,会自动将它们转换为相同类型后再进行运算2显式类型转换显
12、式类型转换显式类型转换是由程序员显式指出的类型转换转换形式有两种类型名(表达式)类型名(表达式)(类型名)表达式(类型名)表达式3转换规则转换规则当参与运算的操作数必须是bool型时,如果操作数是其它类型,编译系统会自动将非0数据转换为true,0转换为false位运算的操作数必须是整数赋值运算要求左值与右值的类型相同,若不同,系统自动转换为左值的类型返回目录2.4.1选择结构循环结构2.4.22.4 控制结构选择结构多分支结构:多分支结构:if(条件表达式1)语句1;elseif(条件表达式2)语句2;elseif(条件表达式n)语句n;else语句n+1;单分支结构:单分支结构:if(条件
13、表达式)语句1;双分支结构双分支结构:if(条件表达式)语句1;else语句2;switch语句语句switch(判断表达式)case常量表达式1:语句1;break;case常量表达式2:语句2;break;/default:语句n+1;循环结构三要素:循环变量、循环体和循环终止条件循环结构for循环的一般结构循环的一般结构for(表达式1;表达式2;表达式3)语句;while循环的一般结构循环的一般结构while(表达式)语句;do-while循环的一般结构循环的一般结构do语句;while(表达式);expr循环体假(0)真(非0)whiledo循环体expr假(0)真(非0)while
14、程序举例程序2-7:计算这一天是这一年的第几天intmonthDays=0,30,28,31,30,31,30,31,31,30,31,30,31;intmain()intyear,month,day;coutyearmonthday;intsumDays=day;/总天数for(inti=1;imonth;i+)/忽略闰年sumDays=sumDays+monthDaysi;coutyear-month-dayiscoutyear年的第sumDays天n;system(pause);return0;程序举例程序2-8:输入两个整数m,n,计算其最大公约数int main()int a,b;c
15、out a b;int m=a,n=b;int r=m%n;while(r!=0)m=n;n=r;r=m%n;cout a ,b 的最大公约数是:n endl;system(pause);return 0;程序举例程序2-9:用公式求的近似值,直到最后一项的绝对值小于10-8为止。#include#include#includeusingnamespacestd;intmain()doubles=0,t=1;intsgn=1,k=1;dos=s+t;k=k+2;sgn=sgn*(-1);t=sgn/double(k);while(fabs(t)1e-8);coutsetprecision(15
16、)s*4endl;system(pause);return0;返回目录2.5.1一维数组二维数组2.5.2字符数组和字符串类2.5.32.5 数组一维数组概念:概念:同一类型的多个数据分配一段连续的内存空间定义:定义:数据元素类型数组变量名称数组元素的个数;数据元素类型数组变量名称=初值,初值,.;初始化:初始化:全部初化,inta=1,2,3,4,5,6;部分初始化,inta5=1,2,3,;访问:访问:下标运算符,数组名下标程序举例:数组使用#include#includeusingnamespacestd;intmain()/数组逆置处理intmyArray=1,2,3,4,5;intn
17、=sizeof(myArray)/sizeof(myArray0);/计算数组元素的个数inti,j,tmp;for(i=0,j=n-1;ij;i+,j-)tmp=myArrayi;myArrayi=myArrayj;myArrayj=tmp;for(i=0;in;i+)coutsetw(5)myArrayi;coutendl;system(pause);return0;二维数组概念:数组的元素又是数组,可看作矩阵概念:数组的元素又是数组,可看作矩阵定义:定义:数据元素类型数组变量名称数组元素的行数数据元素的列数;数据元素类型数组变量名称数据元素的列数=初值,初值,.;初始化初始化分行初始化:
18、例inta3=1,4,5;不分行初始化:例inta3=1,2,3,4,5;访问:访问:数组名下标下标程序举例:设计二维数组程序,输出九九乘法表:#include#include#includeusingnamespacestd;#defineCOL10#defineCOLUMN10intmain()intmatCOLCOLUMN=0;inti,j;for(i=1;iCOL;i+)/矩阵元素赋值,乘法表for(j=1;j=i;j+)matij=i*j;for(i=1;iCOL;i+)/输出乘法表for(j=1;j=i;j+)coutsetw(3)j*i=matij;coutendl;/将结果写到
19、文件中ofstreamoutFile(res.txt);/定义输出文件流for(i=1;iCOL;i+)for(j=1;j=i;j+)/将结果写到输出文件流中outFilesetw(3)j*i=matij;outFileendl;outFileendl;outFile.close();/关闭输出文件流fflush(stdin);/清空输入缓冲区getchar();return0;字符数组和字符串类概念概念:数组的每一个元素均为字符类型定义定义:char字符数组名称字符数组最多存放的字符元素个数;char*字符指针名=newcharN;string字符串变量名;程序举例:将数字字符串变为数字#i
20、nclude#include/C+字符串,是类类型usingnamespacestd;intmain()stringnumStr;longintnumber=0;intsingleNum;cout输入一个数字字符串numStr;inti=0;while(numStri!=0)/将单个字符变为数字,48是0的ASC码值singleNum=numStr.at(i)-48;number=number*10+singleNum;i+;coutnumStr=numStrendl;coutnumber=numberendl;fflush(stdin);getchar();return0;返回目录2.6.1
21、函数的定义函数原型的声明2.6.2函数的调用2.6.3内联函数2.6.4函数的重载2.6.5递归函数2.6.7带缺省值的函数2.6.62.6 函数函数的定义概念:概念:实现某一功能的相关语句组织在一起,并给之注明相应的名称,这种形式的组合就称为函数功能:功能:C+程序的基本模块,函数组成程序的基本模块,函数组成C+程序程序至少含有一个main函数main是程序运行的入口分类:分类:是否为系统预定义,分为库函数和用户自定义函数是否有参:有参函数和无参函数函数原型的声明编译器遇到一个函数调用时,需要判断该函数调用是否正确,该机制即函数原型。C+中,函数声明就是函数原型函数原型的声明函数原型是一条程
22、序语句,它必须以必须以“;”分号结束分号结束;由函数返回类型、函数名和参数表构成函数返回值类型函数名();intarea(int,int);intarea(intlength,intwidth);函数原型和函数定义在返回类型、函数名和参数表上必须完全一致函数的调用直接调用直接调用适用于函数的返回值为空,或返回值不需要被保存的情况表达式调用表达式调用将函数调用放到一个表达式中,让其参与运算一般用在赋值表达式中y=sin(x);嵌套调用嵌套调用一个函数调用的结果作另一个函数调用的参数m=max(a,max(b,c);参数传递参数传递传值传引用传地址C+的函数调用过程就是栈空间操作的过程栈空间操作的
23、过程(1)建立被调函数的栈空间;(2)保护调用函数的运行状态和返回地址;(3)传递参数;(4)将控制权转交给被调函数;(5)函数运行完成后,复制返回值到函数数据块的底部;(6)恢复调用函数的运行状态;(7)返回到调用函数。分析程序的执行过程intfuncA(intx,inty);intmain()inta=6,b=12;a=funcA(a,b);intfuncA(intx,inty)intn=5;n=x+y;returnn;main()b12a6 操作系统运行状态及返回地址返回值0运行程序,执行main()funcA()n5y12x6main()运行状态及返回地址返回值main()b12a6操
24、作系统运行状态及返回地址返回值0调用函数funcA(a,b)main函数的临函数的临时空间时空间funcA()n5 18y12x6main()运行状态及返回地址返回值 main()b12a6操作系统运行状态及返回地址返回值0调用函数funcA(a,b),执行n=x+y;funcA()n18y12x6main()运行状态及返回地址返回值 18main()b12a6操作系统运行状态及返回地址返回值0调用函数funcA(a,b),执行returnn;18126main()运行状态及返回地址 18main()b12a6 18操作系统运行状态及返回地址返回值0返回到main()函数中,a=funcA(a
25、,b);内联函数内联扩展(inlineexpansion)简称为内联(inline),内联函数也称为内嵌函数函数的定义或声明前加上关键字inline一个函数定义为内联函数后,在程序编译阶段,编译器就会把每次调用该函数的地方都直接替换为该函数体中的代码,由此省去函数调用的空间分配、保存现场、参数传递和返回操作等,从而加快整个程序的执行速度内联函数可以在一开始仅定义或声明一次,但必须在函数被调用之前定义或声明函数的重载功能相似而参数类型不同的函数可以使用相同的函数名,这就是函数重载参数类型不同voidsort(int*arr,intn);voidsort(float*arr,intn);参数个数不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 案例 教程 完整版 课件 全套 ppt 教学 整套 电子 讲义 幻灯片 最新

限制150内