您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 85面向对象与可视化程序设计第1章
2020/5/211面向对象与可视化程序设计--VisualC++编程主讲教师:唐龙教授(计算机科学与技术系)黄维通博士(计算机与信息管理中心)清华大学2001年2月2020/5/212课程主要内容VisualC++编程基础使用API函数的可视化编程(ApplicationProgrammingInterface)使用MFC库的可视化编程(MicrosoftFoundationClass)2020/5/213课程教学与考核上机操作为主,课堂讲解为辅;鼓励读书自学,提倡上机实践;掌握基本方法,学会正确编程;考核依据:–课后上机练习;–独立完成大作业。2020/5/214第一章C++基础知识2020/5/215内容提要C++是C的继承与发展C++程序基本结构C++的数据类型、常量和变量类与对象的基本概念表达式和语句C++程序设计和实现用VisualC++开发程序2020/5/216§1.1.C++是C的继承与发展2020/5/2171.关于C语言的回顾BrianKernighan和DennisRitchie基于B语言首创的(1972)。一种描述程序语言,开发目的是编写UNIX操作系统。灵巧的、模块化的、结构化的程序设计语言有标准,易移植,广泛推广应用。2020/5/2181.关于C语言的回顾(续)C语言的优点:–与硬件无关,可移植性强;–语言简洁,使用方便;–丰富的运算符和数据类型;–可直接访问内存地址;–能进行位操作;–目标代码质量高,运行效率高–…...2020/5/2191.关于C语言的回顾(续)C语言的弱点:–检查机制弱,编译时不能发现编程错误;–面向过程的语言,没有支持代码复用的机制;–很难控制大规模程序的复杂性。2020/5/21102.C++是C超集BjarneStroustrup开发.1983年7月正式对外发表。主要目的,是支持编写一复杂事件驱动的仿真程序。目标之一,是保持与C语言兼容.2020/5/21112.C++是C超集(续)保留了C在解决软件界面和底层程序设计方面的有效性、紧凑性和灵活性.提供了支持面向对象的程序设计和高层次问题抽象的方法与手段。C++是为了支持大规模的软件(5~10万行)开发而设计的,比C语言有更强的类型检查能力,以减少错误。2020/5/21123.C++的程序设计方法具有双重性既反映了过程的程序设计方法,又反映了面向对象的程序设计方法。它代表了早先的各种程度设计语言的优点的发展和提炼。当然,它最接近于C语言。这种双重性给初学者带来了困难。2020/5/21134.C++的关键概念——类类(class)是一种可由用户定义的、封装有数据元素及其操作函数的类型。类的引入带来许多好处:–提供了数据隐藏;–确保数据的初始化;–对用户定义的类型隐式类型转换;–动态联编和用户控制的内存管理;–实现运算符和函数的重载机制:–实现类的派生和继承机制;–……2020/5/21145.C++继承并发展了C弥补了C的不足之处,增加了对面向对象的程序设计的支持;保持了C的简洁性和高效性;包含了C的所有语法;大多数C程序都可简单地转化为C++程序(不包含C++新特征)。2020/5/21156.C++对初学者挑战理解引入新概念:–类和对象;–运算符和函数的重载;–数据和方法封装与隐蔽性;–派生和继承及多态性;–……2020/5/21166.C++对初学者挑战适应的程序设计新思路和方法–过程与对象的设计方法双重性;–类和类库的建立与使用;–隐蔽性与多态性导致二义性;–…...2020/5/2117§1.2.C++程序基本结构2020/5/21181.C++语言成分C++语言由特定的文字符号组成。–包括:字母(a-z,A-Z)数字(0-9)及其他符号(+-*/%=!’”{}[]()#?^&.:;,SP)字符可遵循一定的语法规则组成各种数、标识符、运算表达式,如:12345.67-12800.123scoresummerpeoplego_home1+2+3(56-12)/34sum=n1+n22020/5/21191.C++语言成分(续)每个变量或函数都应有其唯一的名称,用一串字符表达,称为标识符。应当用合法的标识符,作为函数或变量正确的名称,例如:_abc、people、go_home、Seg7、Lev_5。2020/5/21201.C++语言成分(续)标识符有严格限制–必须以字母或下划线开头;–必须由字母,数字或下划线组成;–大小写字母是有区别的;–不允许用若干保留字(或关键字)。不允许用非合法的标示符命名函数或变量,例如:-abc、go-home、3H、7_Seg、sUm#、$502020/5/21211.C++语言成分(续)C++语言预先定义好的标识符,称为保留字(即关键字)。ANSIC++中有61个,如下所示:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhileboolcatchclassconst_castdeletdynamic_castexplicitfalsefriendinlinemutablenamespacenewoperatorprivateprotectedpublicreinterpret_caststatic_casttemplatethisthrowturetrytypeidtypenameusingvirtnalwchar2020/5/21221.C++语言成分(续)程序由语句组成.每个语句由标识符、常数、运算符号等组成,并以分号结束,例如:intnum1,num2,sum;num1=num2=3;sun=num1+num2;2020/5/21231.C++语言成分(续)C++程序可划分为多个模块–这些模块就是函数和类。–函数由一些相关的语句组成。–类由一些相关的数据和函数组成起。2020/5/21242.程序的基本结构一个简单的实例/**************************************一个简单的C++程序,该程序在标准输出设备上输出一句问候语“hello”***************************************/#includeiostream.hintmain(){couthello!;return0;//正常返回}2020/5/21252.程序的基本结构(续)它由三个部分组成:–注释–编译预处理命令行–main函数。2020/5/21263.注释开始几行是注释,说明的程序的目的和功能。“//正常返回”也是注释。使用注释符时的注意事项:–标志符‘/’和‘*’,‘/’和‘/’之间不可以分开。–注释符对“/*”和“*/”不可以嵌套。–注释符//之后的注释结束于本行。2020/5/2127思考题:下列程序是否正确?#includeiostream.hintmain(){/*下面程序将在终端上输出/*你好*/的字样*/cout你好!;return0;//正常返回}2020/5/21284.编译预处理命令“#includeiostream.h”告诉C++编译器,将文件iostream.h内容插到此程序中。iostream.h中定义了一组标准类输入输出流(I/Ostream)类。cout是标准输出流类的一个预定义的对象。2020/5/21295.函数在C++语言中,函数是具有如下定义形式的语法单位:返回值类型函数名(函数参数表){语句组}函数头——定义了函数的名字,函数参数和返回值。函数体——一对花括号及其中若干语句组成语句组。2020/5/21305.函数(续)C++程序是由若干个互相调用的函数组成的。一个程序必须有,且只能有一个主体——主函数main()。其他函数都是由main函数直接或者间接地调用。2020/5/21315.程序实例/*************************************计算给定半径计算圆的周长*************************************/#includeiostream.hvoidmain(){/******定义变量和常量*****/constfloatPI=3.14;//表示圆周率floatradius=4.15;//圆的半径floatcircum;//圆的周长2020/5/21325.程序实例(续)//计算圆的周长circum=2*PI*radius;//输出计算结果cout“radoiusis:“radiusendl;cout”circumferenceis:”circumendl;2020/5/2133§1.3.C++的数据类型、常量和变量2020/5/2134基本数据类型构造数据类型整型(int)实数型字符型(char)无值(void)(空类型)布尔型(bool)引申数据类型结构化数据类型指针(*)引用(&)数组([])结构(struct)联合(union)位域枚举(enum)类(class)浮点型(float)双精度型(double)1.C++数据类型2020/5/21351.C++数据类型C++的基本数据类型包括有:–整数型(int),例如:12,0,-127–实数型,例如:3.14,12.0,0.234浮点类型(单精度型)(float)双精度型(double)–字符型(char)例如:‘A’,‘4’,‘%’–无值型(空类型)(void)–布尔型(bool),true,false2020/5/21361.C++数据类型由基本数据引申或组合构造而成数据类型,称为构造数据类型。构造数据类型可分为两大类:–引申类型指针、引用–结构化类型数组、结构、联合、位域、枚举、类2020/5/21372.常量用来代表常数的标识符称为常量。例如PI来代表3.14。定义常量的方式为:const常量类型常量名=初始化值例如:constfloatPI=3.14;//表示圆周率constcharBEST=‘A’;2020/5/21383.变量变量来表示可以变化的值,应先定义,后使用,定义的方式为:变量类型变量名;//变量说明变量既可以初始化,也可以赋值。例如:intage;//年龄,age大于等于0chargrade;//成绩,分A-E五个等级floatradius=2.5;//半径,初值2.5注意:和常量不同,变量能被赋值。2020/5/21393.变量(续)变量名是变量的标识,由字母、数字和下划线组成,才合法。合法的变量名,例如:sumstudent_name_Y2K非法的变量名,例如:2end1998us$student%2020/5/2140§1.4.表达式和语句2020/5/21411.表达式操作数和操作符组成的式子称为表达式,其值是操作符施于操作数,所得的结果。最简单的表达式就是单个的常量、变量或常数。数学运算符:+、-、*、/、%(取模)是简单的操作符。2020/5/21421.表达式(续)表达式实例:aa+b*c-2002*PI*radius(x+y)/(a–b)2020/5/21432.语句及其分类语句是程序中可执行的基本单元,以分号结尾。语句的分类:–说明和定义语句;–表达式语句;–流程控制语句;–其他:2020/5/21443.说明和定义语句说明或定义程序中用到的变量、常量、函数、类。例如:intgrade;//变量说明constfloatPI=3.14;//常量定义voidswap(int&a,int&b);//函数说明classPeople{//类定义......
本文标题:85面向对象与可视化程序设计第1章
链接地址:https://www.777doc.com/doc-5500485 .html