c++入门基础PPT.ppt_第1页
c++入门基础PPT.ppt_第2页
c++入门基础PPT.ppt_第3页
c++入门基础PPT.ppt_第4页
c++入门基础PPT.ppt_第5页
已阅读5页,还剩66页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+程序设计,课程概述,课程性质:通识基础课 课程目标: 理解并熟练运用C语言进行结构化程序设计 理解并熟练运用C+语言进行面向对象程序设计 课程安排:50%课堂讲授;50%上机实验 课程考核:平时成绩40%;期末笔试60%,课程内容,第一部分 C语言 数据类型 运算符 基本语句 函数 指针 第二部分 C+语言 类和对象 引用 友元 继承 多态和虚函数 抽象类 模板 运算符重载 I/O流,参考书目,教材 C+程序设计教程 钱能 清华大学出版社 参考书目 C语言程序设计 谭浩强 清华大学出版社 面向对象的理论与C+实践 王燕清华大学出版社,第一章 概述,程序设计语言 程序与算法 结构化程序设计 面向对象程序设计,1.1 程序设计语言,机器语言 汇编语言 高级语言 C C+ Java Basic C# ,1.1 程序设计语言,C+编程流程 程序编辑编译链接可执行文件,1.2 程序与算法,程序 代码 算法 求解特定问题的一组有限的操作序列 程序=算法+数据结构,1.3 结构化程序设计,顺序结构 选择结构 循环结构,1.4 面向对象程序设计,出现的原因 面向对象的基本概念 封装 继承 多态,第一个C+程序,#include int main() cout“Hello, World!”endl; return 0; ,头文件,主函数,输出,返回,编程环境,Visual C+ 6.0 如何建立C+文件(演示) “文件” -“新建” 选择“C+ Source File”,输入文件名,点“确定” 程序调试,第二个C+程序,#include int main() int x,y; /*定义变量x和y*/ coutx; couty; cout“x+y=”x+yendl; /输出相加之和 return 0; ,编程风格,缩进对齐 写注释,总结,第二章 数据类型、运算符、表达式,什么是数据类型,数据类型: 一定的数据在计算机的内部表示; 该数据所表示的值的集合; 在该数据上的一系列操作。,2.1 数据类型,整型 字符型 枚举型 布尔型 浮点型 字符串型 数组 指针和引用(*),常量和变量,常量:程序运行过程中不能被改变的量 如: 整型常量(如12、0、-3为整型常量) 实型常量(4.6、-1.23为实型常量) 字符常量( a、d字符常量),常量和变量,变量:在程序运行过程中,其值可以被改变的量称为变量。 每个变量都必须有一个名字变量名, 变量命名遵循标识符命名规则: 变量命名的规定:+语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 变量必须先定义后使用,2.1.1 整型,各整型的范围:取决于不同的编译器,类型 类型说明符 长度 数的范围 基本型 int 4字节 -231231-1 短整型 short 2字节 -215215-1 长整型 long 4字节 -231231-1 无符号整型 unsigned 4字节 0232-1 无符号短整型 unsigned short 2字节 0 216-1 无符号长整型 unsigned long 4字节 0(232-1),2.1.1 整型,整型字面值分八进制,十进制和十六进制不同表示如: 0123 / 8进制 0x12af3 / 16进制 12345 / 10进制 超过表示范围的整型数其值不可预料或者出错如: int a = 12345678912345678912345; / 错,2.1.1 整型,整型数的操作:+,-,*,/,%,=,!,=,=,=,&,|,&=,|=,&,|,&=,|=,!=,=,+=,-=,*=,/=,%=,+,-,,,? :,2.1.1 整型,变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符,.; int a,b,c; / a,b,c为整型变量 long x,y; /x,y为长整型变量 unsigned int p,q; /p,q为无符号整型变量,2.1.2 字符型,用一对单引号括起来的单个字符,称为字符常量 字符变量的类型关键字为char,一般占用1字节内存单元 字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。可作为整数和字符两种形式输出,可对字符进行整数运算( ASCII码值) 语言还允许使用一种特殊形式的字符常量,就是以反斜杠“ ”开头的转义字符。,2.2 字符型,语言还允许使用一种特殊形式的字符常量,就是以反斜杠“ ”开头的转义字符。,其它如下表:,字符形式,n,t,v,b,r,f,ddd,xxh,功能,换行,横向跳格(即跳到下一个输出区),竖向跳格,退格,回车,走纸换页,反斜杠字符“ ”,单引号(撇号)字符,1到3位8进制数所代表的字符,1到2位16进制数所代表的字符,2.1.2 字符型,输出形式与整型数不同: int a = 65; char b = 65; couta“n”; coutb“n”; 结果为: 65 A,2.1.3 枚举型,自定义整数区间,甚至列举单个整数值 enum Week Mon, Tue, Wed, Thu, Fri, Sat, Sun ; 最大特点是可以给每个值指定一个在程序中直接使用的标记(枚举符) 编程中将其当作整数常量用如: int a = 6; if ( a = Sun) cout “Sundayn”;,2.1.4 布尔型,表示范围仅含整数和1,也可以表示成true和false,相当于: 因为条件表达式、逻辑运算的结果都是或,所以,相当大数量的表达式的值与布尔型对应 例:bool a=3 /true bool b=0 /false,2.1.5 浮点型,浮点型常量的表示方法 小数形式: 0.123 指数形式: 3e-3,2.1.5 浮点型,浮点型分为: 单精度(float型) 双精度(double型) 长双精度型(long double),2.1.5 浮点型,浮点型变量的赋值 float f1=19.2f double f2=19.2,(1)语言允许在定义变量的同时使变量初始化。 如: int a=3; / 指定为整型变量,初值为 float f=3.56; / 指定为浮点型变量,初值为.56 char c= a; / 指定为字符变量,初值为a,小结,小结,(2)可以使被定义的变量的一部分赋初值。 如: int a,b,c=5; 表示指定、为整型变量,但只对初始化,c的初值为 (3)如果对几个变量赋以同一个初值, 应写成:int a=3,b=3,c=3; 表示、的初值都是。 不能写成 int a=b=c3;,练习1,用户输入圆的半径,求出圆的面积并输出。 #include #include int main() double r, mj; coutr; mj=3.14*r*r; cout“圆的面积是:“mjendl; return 0; ,练习2,输入矩形的长和宽,求矩形的周长并输出。 #include int main() double x,y,zc; coutx; couty; zc=2*x+2*y; cout“矩形的周长是:“zcendl; return 0; ,2.1.6 数组,数组是同类元素的集合,它的元素排列在连续的空间中,按下标来标记 描述数组必须给出元素类型,元素个数 元素个数必须在编程时确定,任何变量都不允许 数组的定义格式为: 类型名 数组名常量表达式 数组下标从0开始,2.1.6 数组,例: int aa ; / 表示int a97; int n = 100 ; int an ; / 错: 元素个数必须预知 const int n = 100 ; int an ; / ok int a ; / 错: 无元素个数 int a = 1, 2, 3, 4, 5 ; / ok:通过初始化确定元素个数,2.1.6 数组,数组初始化可选,但须遵循语法无初始化的数组按规定取默认值 int array15 = 1, 2, 3, 4, 5, 6;/错:初始值个数超元素个数 int array25 = 1, , 2, 3, 4 ; / 错: 不能以逗号方式省略 int array35 = 1, 2, 3, ; / 错: 同上 int array45 = ; / 错: 初始值不能为空 int array55 = 1, 2, 3 ; / ok: 后面元素取0 int array65 = 0 ; / ok: 元素全为0 int array75 ; / ok: 元素值不确定 int a35 = 1, 2, 3, 4, 5 , 2, 3, 4, 5, 6 , 3, 4, 5, 6, 7 ;,2.1.6 数组,二维数组 二维数组的定义格式为: 类型名 数组名常量表达式常量表达式 int a34; /a为34(3行4列)的数组 float b510;/b为510(5行10列)的数组,2.1.6 数组,二维数组的初始化 分行赋值,如: int a34 = 1,2,3,4,5,6,7,8,9,10,11,12; 全部数据写在一个大括号内,如: int a34= 1,2,3,4,5,6,7,8,9,10,11,12; 部分元素赋值,如: int a34 = 1,5,9; 仅对a00、a10、a20赋值,其余元素未赋值(编译器自动为未赋值元素指定初值0,2.1.6 数组,二维数组的初始化 如果对全部元素赋初值,则第一维的长度可以不指定,但必须指定第二维的长度。 例: int a34=1,2,3,4,5,6,7,8,9,10,11,12; 与下面定义等价: int a 4=1,2,3,4,5,6,7,8,9,10,11,12;,练习3,斐波那契数列如下 F0 = 1 F1 = 1 Fn = Fn-1 + Fn-2 使用数组求出斐波那契数列的前5项,并输出。,#include int main() int F5; F0=F1=1; F2=F0+F1; F3=F1+F2; F4=F2+F3; cout“斐波那契数列的前5项是:“ F0“ “F1“ “F2“ “F3“ “F4endl; ,2.1.7 字符串型,C-串 C语言中没有字符串类型 char buffer7=“Hello!“; 本质是一个字符数组,Hello!0,72 101 108 108 111 33 0,2.1.7 字符串型,知道了C-串首地址,即可知道整个串,所以可以用字符首址(字符指针)来操作C-串,但要注意,串的第一个字符与整个串的操作不同,如,C-串的输出操作: char* str = ”Hello”; cout *str endl; / 显示H cout str endl; / 显示Hello,2.1.7 字符串型,string:C+提供的一种自定义类型 例: string a, s1 = “Hello “; string s2 = “123“; a = s1;,2.1.7 字符串型,输入C-串的string承载方式: cin的读入方式总是将前导的空格(所谓空格,即包括空格、回车、水平或垂直制表符等)滤掉,将单词读入,在遇到空格时结束本次输入 getline总是将行末的回车符滤掉,将其整行输入 对字串”Hello, How are you?”的两种输入方式 for ( string s; cins; ) couts” “; coutsendl; string s; getline(cin, s); coutsendl;,2.1.8 指针与引用,指针是一种特殊的变量,它是存放地址的 指针必须初始化或者赋值(指向了数据)后,才能进行间接访问(间访)操作 int* ip; int iCount = 18; int* iPtr = / 间访操作,2000,8,地址:2000,iCount,ip,2000,iPtr,2.1.8 指针与引用,为表示指针变量和它指向的变量之间的关系,用指针运算符“*”表示。 运算符“ /*将3赋给指针变量num_pointer所指向的变量*/,2.1.8 指针与引用,定义指针变量的一般形式为 基类型 *指针变量名;,2.1.8 指针与引用,下面都是合法的定义: float *pointer_; char *pointer_; 可以用赋值语句使一个指针变量得到另一个变 量的地址,从而使它指向 一个该变量。 例如: pointer_; pointer_;,2.1.8 指针与引用,2.1.8 指针与引用,指针加减整数的操作表示空间位置上的挪动,但是挪动的字节数与其数据类型相关: 对float指针加6实际增加了24个字节 对long int指针加5实际增加了20个字节 对char指针减7实际减少了7个字节 对double指针减2实际减少了16个字节,2.1.8 指针与引用,数组名本身就是表示元素集合的首地址 可以将数组名赋给指针 int a3; a1=1; a2=2; a3=3; int *iP=a; cout*(iP+2)“n”; 结果为: 3,2.1.8 指针与引用,引用必须初始化,因为引用总是附属于某个实体 int someInt = 5; int 结果为: 8,2.2 运算符,运算符:狭义的运算符是表示各种运算的符号。 C+语言运算符丰富,范围很宽,把除了控制语句和输入/输出以外的几乎所有的基本操作都作为运算符处理,所以C+语言运算符可以看作是操作符。C+语言丰富的运算符构成C+语言丰富的表达式(是运算符就可以构成表达式)。运算符丰富、表达式丰富、灵活。 在C+语言中除了提供一般高级语言的算术、关系、逻辑运算符外,还提供赋值运算符,位操作运算符、自增自减运算符等等。甚至数组下标,函数调用都作为运算符。,2.2 运算符,2.2 运算符,C中各类运算符的优先级:,初等运算符 ( )、 、,单目运算符 !、+ +、 、+ 、 、(类型),算术运算符 、/ 、% ,+、 ,关系运算符 、= ,= =、! =,逻辑运算符 &、,条件运算符 ? :,赋值运算符 =、+=、 =、=、/=、%=,逗号运算符 ,2.2.1算术运算符和算术表达式,基本的算术运算符: (加法运算符,或正值运算符,如:、) (减法运算符,或负值运算符,如:、) * (乘法运算符,如:*) (除法运算符,如:) (模运算符,或称求余运算符,两侧均应为整型数据,如:的值为)。,2.2.1算术运算符和算术表达式,算术表达式和运算符的优先级与结合性基本的算术运算符: 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合+语法规则的式子,称为+算术表达式。运算对象包括常量、变量、函数等。 例如: *.5a 是一个合法的表达式。,强制转换,强制转换是通过类型转换运算符来实现。 一般形式:(类型说明符)表达式 功能:把表达式的结果强制转换为类型说明符所表示的类型。,(int)a 将a的结果强制转换为整型量。 (int)(x+y) 将x+y的结果强制转换为整型量。 (float)a+b 将a的内容强制转换为浮点数,再与b相加,无论隐式转换,强制转换都是临时转换,不改变数据本身的类型和值。,2.2.1算术运算符和算术表达式,自增、自减运算符(+ -) 作用是使变量的值增或减 如: ,(在使用之前,先使的值加 (减) ,(在使用之后,使的值加( 减),2.2.1算术运算符和算术表达式,i+与+i的区别: 是先执行后,再使用的值; 是先使用的值后,再执行。 例如: ; 如果i的初值是3,则i的值先变成4, 再赋给,j的值均为 ; 如果i的初值是3,先将 i的值3赋给,的值为,然后变为,2.2.1算术运算符和算术表达式,注意: (1)自增运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论