C++语言程序设计主讲教师:吴洪Email:hwu@uestc.edu.cn电子科技大学2008春季2课程介绍关于C++语言课程与C语言的关系•是从C语言发展演变扩充而来,是“带类的”更好的C。•C是C++的一个子集,C语言程序不加修改可以在C++编译器中编译。因此,C++既可以C语言为基础,也可以单独学习。C++与Java和C#•C++是Java和C#的始祖。•Java和C#是C++的子集与简化因此,学习C++后学习Java与C#会事半工倍、倍感轻松。教材、参考书与课时安排教材C++语言程序设计教程杨进才沈显君刘蓉编著清华大学出版社参考书C++语言程序设计教程习题解答与实验指导杨进才沈显君刘本发编著清华大学出版社C++Primer(3RD)中文版.StanleyB.Lippman,JoseeLajoie著.潘爱民,张丽译.北京:中国电力出版社C++程序设计教程(第4版).H.M.Deitel,P.J.Deitel著.施平安译.北京:清华大学出版社教材、参考书与课时安排课时安排授课:48学时上机:16学时成绩构成成绩构成平时成绩:10%上机成绩:20%期末考试:70%7第一讲C++编程简介81.1计算机程序设计语言机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000加10010000减用助记符号描述的指令系统如ADDAX,BX面向机器的语言程序设计依赖解决问题的过程客观事物描述成具有属性和行为的对象;同一类对象的共同属性和行为形成类;封装对象间通过发送和接受消息发生联系;类的继承与多态性可以提供使用现成类的机制,从而实现代码的重用.程序设计关键是定义类,并由类实例化成对象接近人的自然语言习惯,如:100+2009面向对象的基本概念对象是用来描述客观事物的一个实体张三李四属性服务性别,年龄…说话,行走…抽象类是具有相同属性和服务的一组对象的概括具体化继承新类人说话,行走…性别,年龄…大学生性别,年龄,专业…说话,行走,学习…消息101.2C++语言概述全面支持CC++语言的产生1983加入类CC++ANSIC++1994标准化C++语言的特点面向对象比C更完善、安全、高效111.3C++程序开发过程程序代码的录入、修改执行预处理指令,词法分析、语法分析后生成目标程序与其它目标程序或库连接,生成可执行程序编辑器编译器连接器源程序.cpp编辑编译目标程序.obj库文件.lib目标程序.obj目标程序.obj连接可执行文件.exeCPU运行内存装入调试预处理器预处理系统头文件源程序.cpp源程序.h调试器调试121.4C++程序实例/*************************************************程序文件名:p1_1.cpp**本程序显示:HelloC++!**设计者:杨进才时间:8-8-2006************************************************/#includeiostream//载入头文件usingnamespacestd;//使用命名空间stdvoidmain()//程序入口{coutHelloC++!endl;}预处理命令无返回值无参数、无返回值的主函数主函数名函数开始函数体语句结束标志函数结束运行结果:HelloC++!注释块注释行一个简单的C++程序在C++程序中,注释块由“/*”开始,由“*/”结束,可以实现多行注释。也可使用“//”进行单行注释。C++语言的预处理命令都是以“#”号开头。iostream是一个头文件,系统头文件不带.h后缀cout为标准输出流对象,它与显示器相连。是插入操作符,endl为换行符号。整个语句的功能是将”HelloC++!”字符串与endl依次插入到cout中main是主函数名,一个C++语言程序有且仅有一个main函数。C++程序执行时就是从main函数开始.C++语言规定:语句以分号结束13?为什么:标准C++库提供的对象等都放在标准名字空间std中,要使用它们,必须要声明使用标准名字空间std.使用标准名字空间std有3种方式:整体声明usingnamespacestd;使用时单个对象临时声明std::coutHelloC++std::endl;单个对象使用前声明usingstd::cout;使用名字空间14使用名字空间单个对象使用前声明#includeiostreamusingstd::cout;usingstd::endl;voidmain(){cout”HelloC++!”endl;}单个对象临时声明#includeiostreamvoidmain(){std::cout”HelloC++!”std::endl;}整体声明#includeiostreamusingnamespacestd;voidmain(){coutHelloC++!endl;}15cin对象1对象2...对象n;C++中使用对象cin作为标准输入流对象,通常代表键盘,cin与提取操作符连用,使用格式为:意思是从标准输入流对象键盘上提取n个数据分别给对象1、对象2、...、对象n。C++输入/输出简介16C++输入/输出简介cout对象1对象2...对象n;C++中使用对象cout作为标准输出流对象,通常代表显示设备,cout与插入操作符连用,使用格式为:意思是依次从将对象1、对象2、...、对象n插入到标准输出流对象中,从而实现了对象在显示器上的输出.1键盘cin执行cinX;键入123123内存显示器cout执行coutX;X=12317输入输出举例7891011121314151617#includeiostreamusingnamespacestd;voidmain(){floatnum1,num2,num3;//定义三个数coutPleaseinputthreenumbers:;cinnum1num2num3;coutTheaverageofnum1,num2andnum3;coutis:(num1+num2+num3)/3endl;}运行结果Pleaseinputthreenumbers:101201300↙Theaverageof101,201and300is:200.66718常用的操纵符需包括头文件iomanip,作用范围为后续对象设置输出小数位数(默认为6)setprecision(n)需包括头文件iomanip,仅对后一个对象起作用设置输出宽度setw(n)换行并刷新输出流endl数据以16进制形式输出hex数据以10进制形式输出(默认)dec作用范围为后续输出的整数对象,小数不起作用。数据以8进制形式输出oct说明作用操纵符注意:在使用setw(n)与setprecision(n)时,还需要包含输入/输出操纵符头文件iomanip,iomanip意为inputandoutputmanipulate(操纵).setprecision(n)仅对带有小数的数有效,n为整数与小数但不包括小数点的位数。19常用的操纵符使用举例#includeiostream#includeiomanipusingnamespacestd;voidmain(){floatnum1,num2,num3;//定义三个数coutPleaseinputthreenumbers:;cinnum1num2num3;coutsetw(8)setprecision(12);coutTheaverageofnum1,num2andnum3;coutis:setw(20)(num1+num2+num3)/3endl;}5678910111213141516运行结果Pleaseinputthreenumbers:101201300↙Theaverageof101,201and300is:200.666671753201.5本章小结◇程序设计语言经历了从机器语言、汇编语言、高级语言、面向对象的语言的发展过程,使得编程语言与人的自然语言越来越接近,编程效率越来越高。◇程序设计方法经历了面向过程的方法、结构化的方法、面向对象的方法的发展过程。◇C++语言具有全面兼容C与面向对象的特点,支持结构化与面向对象程序设计方法。◇面向对象的基本概念有:对象、类、封装、继承、消息、多态性。◇C++程序设计的步骤有编辑、预编译、编译、连接、调试与运行。