C++程序设计课件 基本语言_第1页
C++程序设计课件 基本语言_第2页
C++程序设计课件 基本语言_第3页
C++程序设计课件 基本语言_第4页
C++程序设计课件 基本语言_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、C+C+程序设计课件程序设计课件基本语言基本语言2先修课程:先修课程:高级语言程序设计(一)高级语言程序设计(一)面向对象技术面向对象技术3参考书:参考书:C+Primer 第三版第三版Stanley B Lippman著著 中文版,潘爱民中文版,潘爱民 张丽译张丽译中国电力出版社中国电力出版社C+大学教程大学教程 第二版第二版 Harvey M. Deitel著著邱仲潘等译,电子工业出版社邱仲潘等译,电子工业出版社C#大学教程大学教程Harvey M. Deitel等著等著电子工业出版社电子工业出版社4课时:课时:1818学时(学时(1 11010周)周)语言平台:语言平台:C+C+Micr

2、osoft Visual C+ 7.0 Microsoft Visual C+ 7.0 或或 Microsoft Visual Studio .NetMicrosoft Visual Studio .Net ConsoleConsole模式模式C#C#Microsoft Visual Studio .NetMicrosoft Visual Studio .Net5 作业命名方式:作业命名方式:假如学号为假如学号为3906010139060101的同学想提交第一次作的同学想提交第一次作业,则需要将源程序文件命名为:业,则需要将源程序文件命名为:39060101C1.cpp39060101C1.c

3、pp或压缩为:或压缩为:39060101C1.rar39060101C1.rar作业提交方式:作业提交方式:以班为单位发送到:以班为单位发送到: 作业要求:作业要求:u 严禁抄袭!严禁抄袭!u 必须写注释语句!必须写注释语句!6第一章第一章C+C+基本语言基本语言71.1 1.1 注释注释C+中有两种注释符号:中有两种注释符号:n一种是注释对一种是注释对/* */ ,可以跨越多行程序。,可以跨越多行程序。n第二种注释符是双斜线第二种注释符是双斜线“/” ,以以“/”开始,到行末结束。开始,到行末结束。8注释注释例:例:/increment numnum+;num+; /increment nu

4、m91.2 1.2 头文件头文件新式标准库头文件不再使用扩展名新式标准库头文件不再使用扩展名.h.h自定义头文件应使用扩展名自定义头文件应使用扩展名.h.h旧式旧式stdio.hstdio.hstdlib.hstdlib.hmath.hmath.hstring.hstring.htime.htime.hctype.hctype.h新式新式cstdiocstdiocstdlibcstdlibcmathcmathcstringcstringctimectimecctypecctype旧式旧式limits.hlimits.hfloat.hfloat.h assert.hassert.hiostrea

5、m.hiostream.hfstream.hfstream.hiomanip.hiomanip.h新式新式climitsclimitscfloatcfloatcassertcassertiostreamiostreamfstreamfstreamiomanipiomanip101.3 1.3 标准输入标准输入/ /输出初步输出初步C C语言中:语言中:#include #include printf(“%d %s n”,num,str);printf(“%d %s n”,num,str);11标准输入标准输入/输出初步输出初步C+C+的输入的输入/ /输出功能由输入输出功能由输入/ /输出流库

6、输出流库iostreamiostream提供:提供:#include #include 终端输入终端输入, ,也被称为标准输入也被称为标准输入, , 与预定义的与预定义的iostream iostream 对象对象cincin绑定在一起绑定在一起. . 终端输出终端输出, ,也被称为标准输出也被称为标准输出, , 与预定义的与预定义的iostreamiostream对象对象coutcout绑定在一起绑定在一起输入操作符输入操作符 输出操作符输出操作符 cin 变量名;变量名;cout cout 变量名变量名 | | 表达式表达式 | | 常量常量 ;注意:输入注意:输入/ /输出操作符可以连用

7、输出操作符可以连用13标准输入标准输入/ /输出初步输出初步例:例:int v1, v2int v1, v2;/ ./ .cout “The sum of v1 + v2 = ”cout “The sum of v1 + v2 = ”;cout v1 + v2cout v1 + v2;cout ncout n;cout The sum of v1 + v2 = v1 + v2 ncout The sum of v1 + v2 = v1 + v2 n; 连用连用14标准输入标准输入/输出初步输出初步cout The sum of v1 + v2 = v1 + v2 ncout The sum o

8、f v1 + v2 = v1 + v2 n; 预定义的预定义的iostream iostream 操纵符操纵符endlendl在输出流中插入一个换行符,在输出流中插入一个换行符,然后刷新输出缓冲区,然后刷新输出缓冲区,c+c+中一般不写中一般不写 n, n, 而写成:而写成:cout “The sum of v1 + v2 = ” v1 + v2 endlcout “The sum of v1 + v2 = ” v1 + v2 endl;为了便于阅读,连接在一起的输出操作符可以分写在几行:为了便于阅读,连接在一起的输出操作符可以分写在几行:cout The sum of cout The su

9、m of v1 + v1 + v2 “ = ” v1 + v2 endl v2 “ = ” v1 + v2 用来从标准输入读入一个值,例如:用来从标准输入读入一个值,例如:char ifile100, ofile100;char ifile100, ofile100;/ ./ .cout Please enter input and output file names: ;cout ifile ofilecin ifile ofile;有两种方法输入连续的数据:有两种方法输入连续的数据:每行只输入一个数据,以换行符结束一个数据的输入;每行只输入一个数据,以换行符结束一个数据的输入;一行输入多个

10、数据,以空格符分隔多个数据,以换行符结束一行输入多个数据,以空格符分隔多个数据,以换行符结束一行数据的输入。一行数据的输入。161.4 1.4 名字空间初步名字空间初步:namespace:namespace#include #include void main( )void main( ) char name100;char name100;int age;int age;cout “Please enter name and age:” endl;cout “Please enter name and age:” name agecin name age; Compiling.Compil

11、ing.console.cppconsole.cppconsole.cpp(11) : error C2065: cout : undeclared identifierconsole.cpp(11) : error C2065: cout : undeclared identifierconsole.cpp(11) : error C2065: endl : undeclared identifierconsole.cpp(11) : error C2065: endl : undeclared identifierconsole.cpp(12) : error C2065: cin : u

12、ndeclared identifierconsole.cpp(12) : error C2065: cin : undeclared identifier17名字空间初步名字空间初步IBMIBM库的头文件:库的头文件:stringstringlistliststackstackMicrosoftMicrosoft库的头文件:库的头文件:vectorvectorqueuequeuestackstackvoid main( )void main( ) /使用数据类型使用数据类型listlist和和queuequeue /包含包含IBMIBM库的头文件库的头文件/包含包含MicrosoftMicr

13、osoft库的头文件库的头文件造成造成stackstack定义冲定义冲突突18名字空间初步名字空间初步IBMIBM库的头文件:库的头文件:namespace ibm namespace ibm string string list list stack stack MicrosoftMicrosoft库的头文件:库的头文件:namespace micro namespace micro vector vector queue queue stack stack void main( )void main( ) /使用数据类型使用数据类型listlist和和queuequeueibm:ibm:l

14、istlistmicro:micro:queuequeue /包含包含IBMIBM库的头文件库的头文件/包含包含MicrosoftMicrosoft库的头文件库的头文件19为了防止标准为了防止标准C+C+库的组件污染用户程序的全局名字空间库的组件污染用户程序的全局名字空间, ,所所有标准有标准C+C+库的组件都声明在一个被称为库的组件都声明在一个被称为std std 的名字空间内。的名字空间内。名字空间初步名字空间初步#include #include void main( )void main( ) char name100char name100;int ageint age;std:st

15、d:cout “Please enter name and age:”cout “Please enter name and age:” name agecin name age; 20名字空间初步名字空间初步#include #include using namespace stdusing namespace std;void main( )void main( ) char name100char name100;int ageint age;cout “Please enter name and age:” endlcout “Please enter name and age:” n

16、ame agecin name age; 使用名字空间:使用名字空间:using namespace using namespace 空间名;空间名;211.5 1.5 数据类型数据类型枚举、结构、联合:枚举、结构、联合:enum Color red, yellow, blue, green, white, black ;enum Color red, yellow, blue, green, white, black ;struct Employee struct Employee char char * * name; name;int age;int age;double salary;

17、double salary;char char * * address; address;enum Color book;enum Color book;struct Employee wang;struct Employee wang;C+C+中定义的枚举名、结构名、联合名都是数据类型名中定义的枚举名、结构名、联合名都是数据类型名Color book;Employee wang;22C+C+新增了两种类型:新增了两种类型:布尔类型布尔类型类型名:类型名:boolbool,只有两个值:,只有两个值:truetrue和和falsefalse,一般用作条件判断。一般用作条件判断。bool isOk

18、 = falsebool isOk = false;抽象数据类型:类类型抽象数据类型:类类型 classclass数据类型数据类型false false 和和true true 能自动转能自动转换成整数值换成整数值0 0 和和1 10 0 或空指针被转换成或空指针被转换成false, false, 所有其他的值都所有其他的值都被转换成被转换成true true 23#include main()char str20;str=hello;printf(%s,str);24对于每一个变量都有两个值与其相关联:对于每一个变量都有两个值与其相关联:1.1.它的它的数据值数据值,存储在某个内存地址中,有

19、时这个值也被,存储在某个内存地址中,有时这个值也被称为对象的称为对象的右值右值rvaluervalue,我们也可认为右值的意思是,我们也可认为右值的意思是被读取的值被读取的值read valueread value ,常量和变量都可被用作右值。,常量和变量都可被用作右值。2.2.它的它的地址值地址值即存储数据值的那块内存的地址,即存储数据值的那块内存的地址,它有时被称为变量的它有时被称为变量的左值左值lvaluelvalue,我们也可认为左值的意思是,我们也可认为左值的意思是位置值位置值location valuelocation value, 常量不能被用作左值。常量不能被用作左值。变量的左

20、值与右值:变量的左值与右值:int a = 8;int a = 8;cout a “hello”;cout a “hello”;8a ahello25在下面的表达式中在下面的表达式中char chchar ch;ch = ch Och = ch O;变量的左值与右值:变量的左值与右值:变量变量ch ch 同时出现在赋值操作符的左边和右边。同时出现在赋值操作符的左边和右边。在表达式的右边在表达式的右边ch ch 和文字字符常量用作右值,在左边和文字字符常量用作右值,在左边chch用作用作左值。左值。一般地,赋值操作符的左边总是要求一个左值,一般地,赋值操作符的左边总是要求一个左值,例:例:0 =

21、 1;0 = 1;ch + 1 = ch 0;ch + 1 = ch 0;/ / 错误错误: : 文字常量不具有左值文字常量不具有左值/ / 错误错误: : 算术表达式不具有左值算术表达式不具有左值数组名是一常量数组名是一常量,代表数组的首地址,因此,代表数组的首地址,因此不具有左值不具有左值。26变量定义的位置:变量定义的位置:在在C C中,变量的定义并不被视为中,变量的定义并不被视为C C语言的语句,块中的所有语言的语句,块中的所有变量定义必须出现在任何程序语句之前。变量定义必须出现在任何程序语句之前。在在C+C+中,变量定义被视为中,变量定义被视为C+C+语言的一条语句,语言的一条语句,

22、一般它可以被放在程序中任何允许语句出现的地方。一般它可以被放在程序中任何允许语句出现的地方。main( ) char infile100; char outfile100; FILE * f1, *f2; scanf(“%s”, infile); if(f1=fopen(infile, “r”)=NULL)printf(“cant open n”);return 1; main( ) char infile100; FILE * f1; scanf(“%s”, infile); if(f1=fopen(infile, “r”)=NULL)printf(“cant open n”);return

23、 1; char outfile100; FILE * f2; 27C+语言预定义了字符串类型:语言预定义了字符串类型:string类,类,该类提供了各种字符串操作:该类提供了各种字符串操作:操作操作示例示例注释注释+s+t将串将串s和和t连接成一个新串连接成一个新串=s=t用用t更新更新s+=s+=t等价于等价于s=s+t=s=t判断判断s与与t是否相同是否相同st判断判断s是否小于是否小于t si访问串中下标为访问串中下标为i的字符的字符length() s.length() 返回串的长度返回串的长度28使用预定义类型使用预定义类型string,必须包含头文件:,必须包含头文件:,例:,例

24、:#include #include using namespace std;int main()string s1=your name;string name;coutPlease inputs1:name;if(name!=)s1+= is ;s1+=name;couts1;return 0;291.6 1.6 动态存储动态存储系统为每个程序都提供了一个在程序执行时可用的内存池,系统为每个程序都提供了一个在程序执行时可用的内存池,这个可用内存池被称为程序的这个可用内存池被称为程序的空闲存储区或堆空闲存储区或堆(heapheap),),运行时刻的内存分配被称为运行时刻的内存分配被称为动态内存

25、分配动态内存分配C C中:中:int int * *pi;pi;pi = (int pi = (int * *) malloc( sizeof(int) );) malloc( sizeof(int) );free(pi);free(pi);30动态存储动态存储:new delete:new deletetype *p;p = new type;delete p;type *p;p = new type();delete p;type type * *p;p;p = new typesp = new types常量常量11常量常量2;2;delete p;delete p;初始化值:初始化值:

26、常量、变量、常量、变量、表达式表达式多维数组:第一维的多维数组:第一维的个数个数s s可以是常量、可以是常量、变量、表达式,其它变量、表达式,其它维为常量,且都不能维为常量,且都不能省略省略格式:格式:typetype可以可以是任何类是任何类型型deletedelete删除的指删除的指针必须是针必须是newnew分配分配的的31动态存储动态存储:new delete:new delete例:例:int *p;p = new int;*p = 10;delete p;int *p;p = new int(5);*p = 10;delete p;char *p;int num;p = new charnum;delete p;32动态存储动态存储:new delete:new delete例:例:int *

温馨提示

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

评论

0/150

提交评论