C++面向对象程序设计(上)探素课件

上传人:我*** 文档编号:144916782 上传时间:2020-09-14 格式:PPT 页数:44 大小:3.06MB
返回 下载 相关 举报
C++面向对象程序设计(上)探素课件_第1页
第1页 / 共44页
C++面向对象程序设计(上)探素课件_第2页
第2页 / 共44页
C++面向对象程序设计(上)探素课件_第3页
第3页 / 共44页
C++面向对象程序设计(上)探素课件_第4页
第4页 / 共44页
C++面向对象程序设计(上)探素课件_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《C++面向对象程序设计(上)探素课件》由会员分享,可在线阅读,更多相关《C++面向对象程序设计(上)探素课件(44页珍藏版)》请在金锄头文库上搜索。

1、黑龙江大学 王欣,C + 面向对象程序设计教程(基础篇),C+ Object-Oriented Programming Design Course,(第三版),2015年8月,开发环境:VC6、VS、CB等,VC6:,输入程序后,按“F7”,编译,点击:“是”,建立项目空间,按Ctrl+F5,运行程序。执行结果如下:,VS:,第一章 cout,cin、string串、引用、函数的重载、结构体,#include using namespace std; void main() coutHello,world!n; ,1.1.1 第一个C+程序,cout表示标准输出流的对象,用于屏幕输出。 “”是

2、插入符,它将后面的内容输出到屏幕上,屏幕等待指令: system( pause ) 或者getchar()或者cin.ignore();,练习:编写程序输出以下内容,头文件,#include ,也可写为,#include using namespace std;,但是:用标准名空间的写法符合ANSI C+规范。,std 是standard的缩写。,ANSI C+建议头文件不带后缀“.h”,American National Standards Institute(ANSI美国国家标准学会),iostream和iostream.h是两个不同的文件 #include 写法是旧版的C+标准,,1.输

3、入输出语句( Input/Output Statements ),(1)输出流 cout. 可以输出一个整数、实数、字符及 字符串。cout中的插入符“”可以连续写多个。,#include using namespace std; void main() std:coutABCDt1234tstd:endl; ,C标准程序库中的所有标识符都被定义于一个名为std的namespace 中,因此它的完整写法为:,#include void main() std:coutHello,world!n; ,当写了using namespace std; std:cout 就可以省略std了。,(2)输入

4、流 cin. 可以获得多个键盘的输入值。,如:cinnNum1nNum2nNum3;,输入时三个数值之间加上一些空格来分隔, 空格个数不限。最后用回车键结束输入。或者 在每个数值之间按回车键。,9 20 或 12 9 20 ,(3)格式算子 oct、dec和 Hex能分别将输入或输出 数据转换成八进制、十进制及十六进制。,#include using namespace std; void main() int nNum; couthexnNum; coutocttoctnNumendl; cout dectdecnNumendl; cout hext hexnNumendl; ,showpo

5、s 在正数之前显示+号 showbase 十六进制整数前加0 x,八进制整数前加0 uppercase 十六进制格式字母用大写字母表示 showpoint 浮点输出即使小数点后都为0也加小数点 boolalpha 逻辑值1和0用true和false表示 left 输出内容靠左 right 输出内容靠右边(默认),cout3)3); / 0 false coutfixed12345.678; / 12345.678000 coutscientific123456.678; / 1.234568e+05,标准输出流: 可以控制输出格式,控制宽度和填充字符的操作是带参数的,注意 width(n)为一

6、次性操作,即第二次显示时将不再 有效。默认为width(0),表示仅显示数值。例如: cout.width(5); cout.fill(S); cout coutsetw(6)setfill($)27endl; / 输出: $27,1 输出结果为:,coutn*s1=setw(15)setfill(#)chinabejing *; coutn*s2=setw(5)leftsetfill(#)chi*;,2 从键盘接收一个整型数,以十进制、八进制、 十六进制显示。,编程练习,2. C-串与string ( C-string /从s2拷贝到s1 strcmp(s1, s2); /比较s1与s2 s

7、trcat(s1, s2); /连接s2到s1 strrev(s); /将s倒排 strset(s, c); /将s全置为c strstr(s, “ell”); /查找s中的子串 strchr(s,c); /查找s中的字符 等等,char a10=abcd; char b5=efgh; strcat(a,b); for (int i=0;ai!=0;i+) coutai;,字符串连接:,string串:,String 是一种自定义类型,它可以方便的执行C串所不能执行的 一切操作,处理空间占用问题是自动的,需要多少,用多少,不像 字符指针那样,提心吊胆的使用。而且它的长度是字符本身长度 不用加1

8、。,应包含头文件string.h,可以很方便的进行字符串相加: string a; a=saf; a=a+123; couta;,a.length()/输出本身长度,a.substr(0,2);/返回从第0个位置开始后2个字符,例:判断某一字符在字符串中的位置:,int i; string a,b; a=12+34=; for (i=1;i=a.length();i+) if(a.substr(i,1)=+) couti; ,编程实现: 求字符串”123+4=”,其中加数与被加数的位数未知?,#include iostream #include string using namespace s

9、td; void main() string a=12; string b=34; int c,d; /sscanf(a.c_str(),%d, ,字符串到整形的转换:,3 引用Reference,int a=5; int ,一旦引用的诞生,就确定了它与实体的联系, 这种联系是打不破的,直到引用自身的灭亡.,注1 引用必须初始化,因为引用总是附属于某个实体int a= 5;int /初始化,注2 修改引用的值,即是修改了附属的实体值,int a=5; const int ,注4 引用可以限定,阻止rint进行写操作。,int a = 5; int 结果为: 8,注3引用多用在函数参数的传递上,

10、要求编写整数、浮点数和双精度的二次方的函数时,若用C语言 来处理,必须编写三个函数,这三个函数不允许重名。例如,这就要求用户必须记住三个函数,虽然这三个函数的功能是相同的。,isquare(int i); fsquare(float i); dsquare(double i);,C+支持函数重载 当用户调用函数时,只需要在参数表中带入实参,编译器就会 根据实参的类型来确定到底哪个函数重载。,4函数的重载,main() int i=12; float f=3.4; double d=5.67; coutisquare(i)endl; coutfsquare(f)endl; coutdsquare

11、(d)endl; ,int isquare(int i) return i*i; float fsquare(float f) return f*f; double dsquare(double d) return d*d;,C语言方法:,main() int i=12; float f=3.4; double d=5.67; coutsquare(i)endl; coutsquare(f)endl; coutsquare(d)endl; ,int square(int i) return i*i; float square(float f) return f*f; double square

12、(double d) return d*d;,(1)参数个数相同,参数类型不同,支持函数重载,C+方法:,int mul(int x,int y) return x*y; int mul(int x,int y,int z) return x*y*z;,void main() int a=3,b=4,c=5; coutmul(3,4)endl; coutmul(3,4,5); ,(2)参数个数不同。支持函数重载。,说明:,(1)函数重载,与返回值无关,int mul(int x,int y) double mul(int x,int y),错误!,(2) void draw(int r=0;i

13、nt x=0) void draw(int r),尽管C+提供重载,但当调用draw(20);编译程序无法确定哪 一个函数。,二义性!,定义带默认参数的函数时,默认值要从右到左给定,中间不能够有间隔在调用带默认参数的函数,实参的给定要从左给定,中间不能够有空缺的参数。,下列函数定义中正确的为: A.int func(int a=1,int b,int c=3) B. int func(int a=1,int b,int c) C. int func(int a,int b,int c=3) D. int func(int a=1,int b=2,int c=3),例:试用C语言printf语句

14、实现类似于C+中cout的命令,void show(char a) /for(int i=0;ai!=0;i+) / printf(%c,ai); printf(%s,a); void show(int a) printf(n%d,a); void show(double a) printf(n%f,a);,void main() float a; a=1223.3; show(12345stree); show(123); show(123.3333);,5结构体,结构体是C+提供的构造复杂数据类型的手段。 struct ; ; 结构变量表;,struct person int age; c

15、har sex; float weight; char name25; family_member;,例:,struct point int x; int y; p1;,void main() p1.x=10; p1.y=12; coutp1.xendlp1.y;/结构体变量的引用 ,结构体变量的定义,定义:struct point sister 或 point sister,struct point int x; int y; p1;,void main() point p2; /strcut point p2; p2.x=12; p2.y=14; ,结构体变量初始化 初始化: struct point int x; int y; p1=20,40;,void main() coutp1.xendlp1.y; ,关于函数重载的说法正确的是: A.函数名不同,但参数的个数和类型不同 B.函数名相同,但参数的个数或参数的类型不同 C.函数名相同,参数的个数和类型也相同 D.函数名相同,函数的返回值不同,而与函数的参数和类型无关,课后练习,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号