教学课件:《CC++程序设计教程》龚沛曾.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《教学课件:《CC++程序设计教程》龚沛曾.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC+程序设计教程 教学 课件 CC 程序设计 教程 龚沛曾
- 资源描述:
-
1、1 C/C+程序设计教程程序设计教程第一章第一章 C/C+C/C+概述概述第二章第二章 基本数据类型、运算符和表基本数据类型、运算符和表达式达式第三章第三章 结构化程序设计结构化程序设计第四章第四章 数组和指针数组和指针第五章第五章 函数函数第六章第六章 结构和链表结构和链表第七章第七章 文件文件第八章第八章 面向对象程序设计基础面向对象程序设计基础 2第一章 C/C+概述1.1 C/C+发展简史1.2 简单的C/C+程序实例 1.3 基本语法成分1.4 数据的输入和输出1.5 编译预处理1.6 Visual C+简介31.1 C/C+发展简史发展简史C+:Bell实验室的实验室的Bjarne
2、 StroustrupCSimula 67带类的C类基础1979年Cpre预处理器C+1.01985年C+程序设计语言C+2.01989年C+3.01993年类及派生类公有和私有构造函数,析构函数友元内联函数赋值运算符的重载虚函数函数和运算符的重载引用常量Const多重要继承保护成员对象的初始化与赋值的机制抽象类静态成员函数CONST成员函数模板C语言:语言:Bell实验室实验室的的D.M.Ritchie 1972年,为了编写UNIX设计的。两个重要的标准:老标准:1978年,The C Programming Language B.W.Kernighan和D.M.Ritchie合著 新标准;
3、1983年,ANSI制定,称为ANSI C4C+的组成的组成C语言语言面向对象设计(OOP)Visual C+环境环境C+程序设计C语言程序MFC应用程序向导51.2 简单的C/C+程序实例例1.1 输入圆的半径,求面积注释:以/开始#include是编译预处理命令 把头文件的内容插入该处使用cin、cout函数必须有该命令main函数的函数体main函数的函数头void表示无返回值6例1.2 求两个数之和。求两个数之和。#include iostream.h int add(int x,int y)/定义定义add()函数,求两个数之和函数,求两个数之和int z;/说明说明z为为int类型
4、的变量类型的变量 z=x+y;/将将x+y的值赋值给的值赋值给z return z;/结束结束add()函数的执行,并将函数的执行,并将z的值返回给主函数的值返回给主函数void main()/定义主函数定义主函数int a,b,c;/说明说明a、b、c为为int类型的变量类型的变量cinab;/从键盘输入两个数据送到从键盘输入两个数据送到a和和b中中c=add(a,b);/调用调用add()函数,计算函数,计算a+b,并把结果赋给,并把结果赋给ccoutcendl;/先输出先输出c的值,再输出换行符的值,再输出换行符7总结:(1)C/C+程序是一个或多个函数构成的,main函数一定要有。(2
5、)不管有多少个函数,执行从main函数开始。在一个函数内,执行从上到下开始的。(3)注释从/开始的,只有增加可读性的作用。(4)书写形式自由 一行内可以写多条语句,一条语句也可以分写在不同行上。(5)C语言中大小写字母是不同的81.3 1.3 基本语法成分基本语法成分1.基本符号:(1)字母:52个 AZ az (2)数字字符:10个0 9 (3)下划线 _ 。(4)特殊符号:一般作运算符,如+、-、*、/、&2关键字关键字 有特定含义的、专用的单词。如int、char、break、for、define等。不能作变量名、符号常量名、函数名、类名等。93.标识符:由字母、数字和下划线三种字符组成
6、 必须以字母或下划线开头合法标识符。A2 student area_of_circle num _dd Int不合法标识符2A A-B area of circle M.D int 大小写字母不等价 习惯上,变量名小写,符号常量大写。关键字不能作标识符用。例如,int、define等关键字不 能作为标识符用。定义标识符时最好能简洁且“见名知义”,以提高程序的可读性。如min表示最小值,average表示平均值,day表示日期。在Visual C+中,标识符中不能有汉字但是字符串和注释中可以有汉字。101.4 数据的输入和输出#include iostream.h或#include 1.cout
7、cout表达式1表达式2表达式n;说明:数据的输出格式由系统自动决定。各表达式可以是任意类型的。#include iostream.hvoid main()int a=2;double b=3.32;char c=A;couta bendl;coutc abcdendl;11格式控制符(自学)格式控制符格式控制符说说 明明示示 例例语语 句句结结 果果endl输出换行符cout123endl123123123dec十进制表示coutdec123;123hex十六进制表示couthex123;7boct八进制表示coutoct123;173setw(int n)设置数据输出的宽度coutaset
8、w(4)b;a b(中间有3个空格)setfill(int n)设置填充字符coutsetfill(*)setw(6)123;*123setprecision(int n)设置浮点数输出的有效数字位数coutsetprecision(5)123.456123.4612使用格式控制符输出数据(使用示例)#include iostream.h#include iomanip.hvoid main()int x=65;double f=123.456;cout123456789012345endl;coutdecx hexx octxendl;coutxendsxendl;coutfendl;cou
9、tsetprecision(4)fendl;coutsetw(12)fendl;coutsetw(12)setfill(#)f变量变量2变量n;说明:数据之间用空格、TAB键或回车分隔#include iostream.hvoid main()int a;float b;coutab;couta+b=a+bendl;141.5 编译预处理1.5.1文件包含 头文件:.h如stdio.h、iostream.h 函数说明、常量定义作用:头文件的内容插入到源文件(.CPP)文件中。(1)#include 从系统指定的文件夹中找(2)#include 文件名从当前文件夹中找,现到系统指定的文件夹中找注
10、意:一条文件包含命令只能包含一个文件编写源程序编写源程序预处预处理理编译编译连接连接执行执行预处理程序预处理程序 编译程序编译程序151.5.2 宏定义主要用来定义符号常数#define 标识符 常量例如:#define FALSE 0#define TRUE 1#define PI 3.1415926#define EPS 1.0e-6注意:符号常量一般大写行末一般不加分号不能对符号常量进行赋值。161.6 Visual C+简介 项目工作区输出窗口代码窗口代码窗口17简单C/C+程序的编写、运行过程1创建一个空工程;Win32 Console Application C+Source Fi
11、le 2创建一个C+源文件,输入源程序;3进行编译、连接、运行。编译|编译TEST.cpp CTRL+F7编译|构建TEST.exe F7编译|执行TEST.exe CTRL+F518编译连接后生成的主要文件D:TESTTEST.dspTEST.dswTEST.cppDebugTEST.objTEST.exe程序调试程序调试1语法错误语法错误 错误信息错误信息D:TESTTEST.CPP(6):error C2146:syntax error:missing;before identifier cin 警告信息警告信息 D:TESTTEST.CPP(6):warning C4244:=:con
12、version from const double to int,possible loss of data2逻辑错误逻辑错误 3调试调试设置断点:设置断点:Insert/Remove Breakpoint F9运行到断点:编译运行到断点:编译|开始调试开始调试|去去 F519Variables窗口Watch窗口Restart 终止当前调试,重新运行,停在第一条语句终止当前调试,重新运行,停在第一条语句Stop Debugging 结束当前调试和运行结束当前调试和运行Step Over 单步运行,不进入函数体内单步运行,不进入函数体内Step Out 从函数体运行到外面从函数体运行到外面20欢
13、迎访问欢迎访问同济大学计算机系基础学科组网站同济大学计算机系基础学科组网站http:/021-6598020421第二章 基本数据类型、运算符和表达式2.1 数据类型2.2 变量和常量 2.3 运算符和表达式2.4 指针2.5 typedef语句2.6 应用举例222.1 2.1 数据类型数据类型程序中要对各种各样的数据进行描述和操程序中要对各种各样的数据进行描述和操作,用到的数据都必须指明其类型。数据类型的作,用到的数据都必须指明其类型。数据类型的作用:作用:指出了应为数据分配的存储空间的大小指出了应为数据分配的存储空间的大小规定了数据所能进行的操作规定了数据所能进行的操作 数据类型基本类型
14、 构造类型 整型(int)实型 字符型(char)布尔型(bool)空类型(void)单精度型(float)双精度型(double)指针数组结构型(struct)共用体(union)枚举(enum)类(class)232.2 变量和常量1.变量的定义变量的定义程序运行过程中其值可变的量程序运行过程中其值可变的量,定义方式如下:定义方式如下:C/C+规定:规定:程序中所有变量必须先定义后使用,可及时程序中所有变量必须先定义后使用,可及时发现录入错误(如,定义的变量为发现录入错误(如,定义的变量为data,而程序体,而程序体中使用变量为中使用变量为date),同时还可限制非法运算(如:),同时还可
15、限制非法运算(如:a%b,若若a,b为为float类型则出错)。类型则出错)。C+中变量可随时使用,随时定义。例如:例如:int a,b;(定义变量定义变量a和和b为整型为整型)float x,y;(定义变量定义变量x和和y为单精度为单精度实型实型)数据类型数据类型 变量名变量名表表;2.2.1 变量242.变量的初始化变量的初始化变量必须先有确定的值后才能参与各种相变量必须先有确定的值后才能参与各种相应的操作,变量获取值的途径有三:应的操作,变量获取值的途径有三:通过输入语句输入通过输入语句输入 (如:如:cina;)通过赋值语句赋值通过赋值语句赋值 (如:如:a=3;)通过初始化方式赋初值
16、通过初始化方式赋初值 (如:如:int k=3;)所谓初始化是指在定义变量的同时指定变所谓初始化是指在定义变量的同时指定变量的初值,形式有二:量的初值,形式有二:例如:例如:int k=3,m=3,n(3);()int k=m=n=3;/不允许为多个变量同不允许为多个变量同时初始化时初始化数据类型 变量名=表达式;数据类型 变量名(表达式);253.变量引用C+中增加了“引用”这一概念,许多地方可以代替指针实现相应的功能,比指针更安全。所谓引用即给一个已知变量起个别名,系统不为引用另外开辟内存,而是与原变量共享同一段内存,引用好比是一个虚拟的变量,声明形式为:数据类型&引用名=已定义的变量如:
17、int a=3,&b=a;/定义b为a的引用b=5;/你知道此时a的值为多少吗?262.2.2 常量在程序运行过程中其值不能改变的量,有值常量和符号常量两种。1.整型常量进制进制形式形式实例实例错例错例十进制十进制以以数字数字19开始开始-3,+5,12045八进制八进制以数字以数字0开始开始(由由07之间数字组成)之间数字组成)023,-010078十六进制十六进制以以0 x或或0X开始开始(由由09及及AF组成)组成)0XAF,-0X510XFG272.实型常量十进制小数形式:由正负号、数字和小数点组成,如1.25、-1.25、17.和.1 指数形式:由尾数、指数符号e(或E)及指数构成,
18、其中指数必 须是十进制整数。如1.25e-5、+1e10、-1.25e5。注意:e前面不能没有数字,e后面的数字必须为整数,也不能加园括号。如1E(-3)、E-5、1e2.1都是错误的。283.字符常量 C/C+提供了两类字符型常量:普通字符常量:用单引号括起来的一个字符。如:A、0、?。转义字符常量:以“”(反斜杠)开头的用单引号括起来的字符 序列。如:n 、t 、x61等。常用的转义 字符见p26。注意:0表示ASCII码为0的字符,它是一个空字符,注意其与0的区别,后者表示的是ASCII码为48的数字字符。字符型数据在内存中以ASCII码存储,故整型数据和字符型数据在一定范围内可以通用。
19、如:x=a +2;printf(%d,a);294.字符串常量字符串常量 字符串常量是用双引号括起来的字符序列字符串常量是用双引号括起来的字符序列,系统在字符串常量最后自动加字符串结束符号系统在字符串常量最后自动加字符串结束符号 0 。例如:例如:字符串字符串“A”的存储形式:的存储形式:字符字符A的存储形式:的存储形式:5.符号常量符号常量是以标识符形式出现的常量,作用是便是以标识符形式出现的常量,作用是便于程序阅读和修改。于程序阅读和修改。C+C+中用中用definedefine命令或关命令或关键字键字constconst定义符号常量定义符号常量,形式如下:形式如下:A 0 A内存中实际存
20、放的是这些字符的ASCII码#define 标识符 常量值 const 数据类型 标识符=常量值或:30注意:习惯上符号常量名大写,而变量名小写,以示区分。符号常量虽然用标识符来标识,但本质上是常量,具有常量值不能改变的性质。#define PI 3.14 /const double PI=3.14#include iostream.hvoid main()float r=3.0,s,l;l=2*PI*r;s=PI*r*r;coutl=l,s=sendl;例2-11.演示不同精度圆周率的程序运行结果2.观察编译中的“警告”对程序运行的影响3.消除“warning”的方法312.3 运算符和表达
21、式2.3.1 基本概念运算符具有三个属性:优先级:指运算的先后次序,共分15个级别。(见p27表1.2.4)结合性:指相同优先级运算符连续出现时的计算顺序,分自左 向右和自右向左两种,除特别声明外,皆指自左向右。目 数:指运算符要求的操作数的个数,包括单目、双目和三目,一般目数越少,优先级越高。表达式:由常量、变量、函数调用和运算符按一定规律组合在一 起构成的式子。如:a+14/(3+2)-sqrt(17)322.3.2 运算符1.算术运算种类:+(加法或取正)-(减法或取负)*(乘法)/(除法)%(求余数)+(自增)-(自减)其中:+和-的结合性则是自右向左 优先级:(从高到低)(+、-、+
22、、-)(*、/、%)(+、-)正、负加、减33说明:说明:在除法运算中,当两个操作数都是整数时,在除法运算中,当两个操作数都是整数时,商也为商也为整数整数,小数部分一律舍去。如:,小数部分一律舍去。如:1/2 0 1.0/2 0.5%(求余运算)要求两个操作数都是(求余运算)要求两个操作数都是整型整型,结果为整除后余下的整余数。结果为整除后余下的整余数。自增、自减运算符自增、自减运算符(+、-)+i ,-i (在使用在使用 i之前之前,先使先使i的值的值加减加减1)i+,i-(在使用在使用 i之后之后,使使i的值加的值加减减1)若 i 的值为3,则:j=+i;j的值为4,i的值为4 j=i+;
23、j的值为3,i的值为4注意:自增、自减运算符只能用于变量,而不能用于常量和表达式。()5+、(a+b)+342.关系运算种类:(小于)、(大于)=(等于)、=(大于等于)、!=(不等于)优先级:(从高到低)(、=)(=、!=)关系运算描述的是一种“判断关系”,其结果有“真(true)”和“假(false)”两种。用“1”代表“真”,用“0”代表“假”例如:53的结果为1,aB的结果为0思考:x为0到100之间的数能否表示为 0=x=100?353.逻辑运算种类:&(逻辑与)、|(逻辑或)、!(逻辑非)优先级:(从高到低)!&|其中,“!”是单目运算符,优先级高于算术运算符。“”和“|”低于关系
24、运算符。逻辑运算通常用来连接关系运算,逻辑运算符两端的操作数如为“非”,就当作“真”来处理,如果是“”,便当作“假”来处理。逻辑运算的结果也只有 0(false)和1(true)两种。36运运算算符符 说说明明 优优先先级级 说说明明 例例 结结果果!取取反反 2 当当操操作作数数为为假假时时,结结果果为为真真!0 1&与与 11 操操作作数数均均为为真真时时,结结果果才才为为真真 2&0 5&3 0 1|或或 12 操操作作数数中中有有一一个个为为真真时时,结结果果为为真真 0|1 0|0 1 0 说明:说明:当多个当多个&连续出现时,如表达式连续出现时,如表达式&表表达式达式&表达式从左到
25、右,只要一个操表达式从左到右,只要一个操作数为作数为0,结果就为,结果就为0,不进行后续运算。,不进行后续运算。当多个当多个|连续出现时,如表达式连续出现时,如表达式|表达表达式式|表达式从左到右,只要一个操作数表达式从左到右,只要一个操作数为为1,结果就为,结果就为1,不进行后续运算。,不进行后续运算。37#include iostream.hvoid main()int m,n=10;m=2&n+;coutm=m,n=y?x:y);/将和中较大的一个数赋值给变量max条件运算符的结合性是由右向左思考题:对n(0)个人进行分班,每班k(0)个人,最后不足k人也编一班,问要编几个班?(试用条件
展开阅读全文