




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual C+ 实用教程序:见本文件夹开课前演示程序 第一章 基本C+语言C+语言是20世纪80年代初期由贝尔实验室设计的一种在C语言基础上增加了对面向对象程序设计支持的语言,它是目前应用最为广泛的编程语言。说明:在Visual C+6.0环境下,运行C语言、C+语言的操作步骤:(一) 建立和运行C语言的操作步骤在e盘上建立文件夹,名为:vcpp(以后你建的所有文件都在这里)。点VC系统FileNewFileC+source File右边File处写你要建的文件名在其下面的Location即路径名处写:e:vcppok,出现的界面上你可敲入C程序,之后点BuildBuild !运行,就可以了。如:#include void main()printf(“烟台南山学院好! n”); (二) 建立和运行C+的操作步骤1、在e盘上建个文件夹,名为 vcpp(以后你建的所有C+程序文件都存在这里)。2、点VC系统FileNewprojectsWin32Console ApplicatorProject Name处写文件名,下面路径名处写e:vcpp(文件夹名)okfinishok3、(你必须第二次再建执行程序)接上: 在主菜单处点FileNewFileC+ Source右边保证 Add to Project 是你刚才敲的文件名File处写你敲的文件名.cppok出现白屏幕开始敲入C+程序,并运行BuildBuild!如:#include void main()cout”Hello,world ! 大家好 n” ;(三) C和C+都可运行打开VC系统FileNewProjectsWin32Console ApplicationProject name处写文件名下面Location处写路径名 e: vcpp(文件夹名)ok点A”Hello,World!”applicationFinishok点开左边工作区的Source Files的 .cpp里面有东西,你可全去掉或全注释掉,写C或C+程序后都可运行。一、下面是用C和C+以及用C+类的概念编写的程序实例:1、用C编写的输出星号三角形程序#include DoDraw(int num) for(int i=0;inum;i+) for(int j=0;j=i;j+) printf(*); printf(n); void main() int num=5; DoDraw(num);/函数的调用2、用C+编写的输出星号三角形程序#include void DoDraw(int num) for(int i=0;inum;i+) for(int j=0;j=i;j+) cout*; coutn; void main() int num=5; DoDraw(num);/函数的调用/ 只是头文件和输出语句不同3、用C+编程序,计算圆的面积#include “stdafx.h”/*C+程序的基本结构*/#include void main() double r,area; /声明圆半径和圆面积变量 coutr; /从键盘上输入圆的半径r的值 area=3.14159*r*r; /计算圆的面积cout”圆的面积为:”area”n”; /最后这儿也可是endl / 输出圆的面积stdafx.h是Visual C+应用程序所必须有的预编译头文件,程序所用到的Visual C+头文件包含语句均应添加到这个文件中。由于该语句在Visual C+创建的应用程序项目中会自动添加,因此书中C+代码中不再显示此语句代码。4、用类的概念编写星号输出程序#include class CDrawArray /定义类 public:void DoDraw(int num); /声明类的公有成员函数;void CDrawArray:DoDraw(int num) /成员函数的实现 for(int i=0;inum;i+) for(int j=0;j=i;j+) cout*; coutn; void main() int num=5;CDrawArray myDraw; /定义类的一个对象myDraw.DoDraw(num); /调用此对象的成员函数 二、 关于C+对C的几点补充C+的一般语句与C大致相同,有些不同的是:1、变量的初始化 int n=5;int x(2),y(3),w;char g(a),k(b);如:#include void main() char g(a),k(w),z; int n=5,x(2),y(3); w=n+x+y; cout”w=”wendl; cout”g=”gendl; cout”k=”kendl; 1、输入输出流(头文件用 )A、输出流cout 相当于C语言中的printf() ( C语言头文件是 ) 可以coutijk.输出多个值例1:cout的输出算子endl(11页)#include void main() cout”ABCDt”1234”t”endl; / t制表符,跳过一个缓冲区再打印,一/个缓冲区8个字符宽度大小 /n和endl等价,都是结束当前行,并将/屏幕输出的光标移至下一行 例如:输出格式#include void main() int nNum=1234; double fNum=12.3456789; cout1234567890endl;/endl相当于n回车换行。 cout.width(10); /width()无参数是用来获取当前输出数据的宽度,/width(int)是用来设置当前输出数据的宽度 coutnNumn; cout.width(10); coutfNumendl; coutcout.precision(4)endl;/precision与width相似,有参和无参数分别用 /来设置和获取当前浮点数的有效数字个数。 coutfNumendl; coutcout.precision(7)endl; coutfNum 相当于C语言中的scanf()可以获得键盘输入多个值:cinijk输入多个值例如:格式输入(13页)#include void main() int nNum; couthexnNum; /将一个16进制数 coutOcttoctnNumendl; coutDectdecnNumendl; coutHexthexnNumendl; /以下是:2、关于sizeof运算符 coutsizeof(Hello)endl;/计算字符串常量“Hello”所占内存的字节大小6 coutsizeof(float)endl; /计算整型int所占内存的字节数/字符8、整型16(32)、浮点32位) coutsizeof(char)endl; coutsizeof(int)endl;/格式算子:oct(八进制)、dec(十进制)、hex(十六进制)2、sizeof 运算符 是返回操作数所占的内存空间大小(字节数)sizeof ( “ Hello “ ) 计算字符串“Hello”的实际长度(字符个数)结果为 6sizeof ( int ) 计算整形int所占内存的字节数(字符8、整型16(32)、浮点32位)3、作用域和存储类型 作用域又称“作用范围”,是指程序中标识符的有效范围。一个标识符是否可以被引用,称之为标识符的可见性。一个标识符只能在声明或定义它的范围内可见,在此之外是不可见的。存储类型决定了何时为标识符分配存储空间及该存储空间所具有的特征,存储类型是在标识符声明或定义时指定的。(1)函数原形作用域 double max(double x,double y); double max(double,double); / 省略参数名 是等价的 (2) 文件作用域例 在块作用域内引用文件作用域的同名变量#include int i=10;void main() int i=5,j; :i=:i+4; j=:i+i; cout:i=:i,j=jn;cout:i=in;当块作用域内的标识符与全局标识符同名时,局部标识符优先,且在块作用域内使用作用域运算符“:”来引用与局部标识符同名的全局标识符。4、静态类型变量(static) 静态类型变量也是一种局部变量,它和自动存储类型变量的最大不同之处在于:静态类型变量在内存中是以固定地址存放的,它是采用静态分配方式来分配内存空间的。在这种方式下,只要程序还在继续执行,静态类型变量的值就一直有效,不会随它所在的函数或语句的结束而消失。声明一个静态类型的变量是在变量类型前面加上关键字static.例如1:使用静态类型的局部变量#include void count()int i=0;static int j=0;couti=i,j=jn;i+; j+;void main()count();count();结果是j的值改变为1,而i的值还是0,说明第2次执行函数count(),i又被赋了0,而只要程序还在执行,j的值就一直是最早赋的值,而不变化。例如2:使用静态类型的全局变量(书38页)1)建一个控制台应用程序(名为:静态全局),创建过程中选择项目类型为:A simple application(简单型)。2)文件的代码如下:#include stdafx.h#include int n;void f();void main()n=20;coutn=nn;f();3)再在这个程序中选择“文件”“新建”菜单命令,将“新建”对话框切换到“文件”页面,选中“C+Source File”文件类型,在文件编辑框中输入文件名:静态全局变量,单击“确定”按钮,如书38页图14所示。在视图的执行文件(.cpp)中加如下代码:#include stdafx.h#include static int n;void f()n+;coutn=nn;你运行哪个程序都可以,结果均为:n=20 n=1可见,函数f输出1而不是21,表示2个变量互不相干。静态全局变量对组成该程序的其他源文件是无效的,它能很好地解决程序多文件组织中全局变量的重名问题。*静态函数与静态全局变量相类似,静态函数也是在某个函数声明前加上static,他的目的也是使该函数只在声明的源文件中使用,对于其他源文件则无效。*寄存器类型(register) 使用关键字register声明寄存器类型的变量的目的是将所声明的变量放入寄存器内,从而加快程序的运行速度。有时寄存器被占用,寄存器变量会自动当做auto变量。*外部类型(extern)使用关键字extern声明的变量称为外部变量,一般是指定义在本程序外部的变量。当某个变量被声明成外部变量时,不必再次为他分配内存就可以在本程序中引用这个变量。只有在以下2种情况下要使用外部变量。例1:在同一个源文件5、内联函数 把函数体的代码直接插入到调用处,将调用函数的方式该为顺序执行,直接插入的程序代码,减少程序的执行时间,缺点:需要空间较大例如:内联函数 用内联函数实现求两个浮点数的最大值(62)#include inline float fmax(float x,float y) /定义一个内联函数,前面用: inline关键字 return xy?x:y; void main() float a,b; coutab; /输入时,两个数中间用空格分开 cout最大的数为: fmax(a,b)n;注意:(1)内联函数也要遵循定义在前,调用在后的原则。形参与实参之间的关系与一般函数相同。(2)在C+中,需要定义的内联函数不能含有循环、switch和复杂嵌套的if语句。递归函数也不能被用来做内联函数的。6、函数的重载允许多个同名的函数存在,但参数(形参)必须有区别,形参个数不同或类型不同。例如:函数重载(63)编程求两个或三个操作数之和#include int sum(int x,int y);double sum(double x,double y);int sum(int x,int y,int z);double sum(double x,double y,double z);void main() coutsum(2,5)endl; coutsum(8.8,6.6)endl; coutsum(2,5,7)endl; coutsum(1.2,5.0,7.5)endl;int sum(int x,int y) return x+y; double sum(double x,double y) return x+y; int sum(int x,int y,int z) return x+y+z; double sum(double x,double y,double z) return x+y+z; 7、new 和 delete 在C语言里malloc和free库函数能有效地、直接地进行动态内存的分配和释放。 而在C+里同样的工作要用new和delete如:double *p; p=new double; new返回指定类型的一个指针。 - -delete p;A、delete 必须用于先前new分配的有效指针,如果使用了未定义的其它类型的指针,会引起严重的后果,甚至系统崩溃等。B、用new也可指定分配的内存大小 int *p; p=new int(60); 60个字节的内存单元 60Byte - - - delete p;C、new 也可为数组分配内存,但释放时,必须告诉delete数组有多少个元素。/例如:new内存分配(87)#include main() int *p,i; p=new int20; /数组中有20个元素 分配整型数组 if(!p) cout内存分配失败; for(i=0;i20;i+) pi=i; /给数组赋值 i=0; for(i=0;i20;i+) coutpit; delete 20p; /告诉delete数组有多少元素 coutendl; 8、常量const修饰符 在C中,习惯用#define来定义常量,如:#define PI=3.14 (宏定义)而在C+中用const取代#define例如:常量#include int main() int a=1; const T1=a+a; const T2=T1-T1; coutT2 is T2endl; return 0; 9、引用 (引用与指针密切相关) 引用是一个变量的别名,系统不为引用类型变量分配内存空间,只是使引用类型变量与其相关联的变量使用同一个内存空间,如:定义引用类型变量的一般格式为: int a=3; int &ra=a; 这里ra就是个引用,它是变量a的别名。 所有对引用ra的操作,实际上就是对被引用对象a的操作. ra=ra+2; 就是a+2结果为5; /例如:给引用重新赋值(87)#include void main() int a; int &ra=a; a=5;couta=an;coutra=ran;couta的地址是:&an;coutra的地址是:&ran;int b=8;ra=b;couta=an;coutb=bn;coutra=ran;couta的地址是:&an;coutb的地址是:&bn;coutra的地址是:&ran; 注意:(1)定义引用类型变量时,必须将其初始化。而且引用变量类型必须与为它初始化的变量类型相同。如:float fVal; int &rfVal=fVal;错误,类型不同。(2)当引用类型变量的初始化值是常数时,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园安全知识培训课件目标
- 作业人员试题及答案
- 耕地抛荒面试题及答案
- 质监系统考试试题及答案
- 台湾民法考试题及答案
- 校园保安反恐防暴安全知识培训课
- 政工人员试题及答案
- 函数高考试题及答案
- 2025年贵阳市城乡建设学校外聘教师招聘考试试题(含答案)
- 医院和住院环境医学必看试题带答案
- 业务跟单培训
- 河北省唐山市路北区2023-2024学年八年级下学期期末数学试题
- DL-T-5161.13-2018电气装置安装工程质量检验及评定规程第13部分:电力变流设备施工质量检验
- 安全顾问聘请协议
- 糖尿病酮症酸中毒的护理课件
- 设备材料进场报验单
- 班组长计划管理能力考试题库-上(选择题)
- (完整版)《机械制造工艺基础》教案
- 小学四年级数学口算题(每页60道直接打印).文档
- 诱思探究理论
- 铣床日常点检保养记录表
评论
0/150
提交评论