C++实验指导书.docx
- 文档编号:3600386
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:36
- 大小:585.92KB
C++实验指导书.docx
《C++实验指导书.docx》由会员分享,可在线阅读,更多相关《C++实验指导书.docx(36页珍藏版)》请在冰豆网上搜索。
C++实验指导书
南阳理工学院
C++上机实验指导书
(2011版)
软件学院·软件工程教研室
2011.3
目录
实验1C++编程环境实践1
实验2基本数据类型、运算符和表达式………………….2
实验3选择和循环结构(*)9
实验4指针与引用(*)11
实验5函数与重载12
实验6类与对象13
实验7运算符重载(*)16
实验8继承17
实验9多继承(*)19
实验10多态与虚函数20
注:
带“*”为选做实验,建议学生课后自行完成
实验1C++编程环境实践
一、实验目的
1.熟悉VC++6.0编程环境;
2.编制简单C++程序并运行;
3.熟悉C++的编辑、编译、连接和运行过程。
二、实验内容及步骤
1.使用VisualC++6.0建立一个标准C++程序,编译、运行以下程序:
具体实验步骤:
(1)启动VisualC++6.0开发环境
从“开始”菜单中选择“程序”|MicrosoftVisualStudio6.0|MicrosoftVisualC++6.0,显示VisualC++6.0开发环境主窗口,如图1-1所示。
图1-1VisualC++6.0的主窗口
在VisualC++主窗口的顶部是菜单栏,左侧为项目工作区窗口,右侧是程序编辑窗口。
工作区窗口用来显示所设定的工作区的信息,程序编辑窗口用来输入和编辑源程序。
(2)建立和运行只包含一个C++源程序的方法
①建立只包含一个C++源程序的方法
一个最简单的C++程序只包含一个源程序的文件,建立这样的一个C++源程序的方法是在MicrosoftVisualC++主窗口的菜单栏中选择“File→New”命令,弹出“New”对话框,单击“Files”选项卡,在其列表框中选择“C++SourceFile”选项,表示要建立一个新的C++源程序文件,然后在对话框右半部分的Location文本框中输入准备编辑的源程序文件的存储路径(假设为F:
\C++),表示准备编辑的源程序文件将存放在F盘C++子目录下,在其上方的File文本框中输入准备编辑的源程序文件的名字(假设为example1.cpp),如图1-2所示。
图1-2Files中New选项卡
单击“OK”按钮回到主窗口,在程序编辑窗口编辑源程序文件,如图1-3所示。
图1-3编辑源文件
选择“File→Save”命令或快捷键Ctrl+S保存源程序文件。
也可以选择“File→SaveAs”命令指定新的文件名和路径,这时输入和编辑的源程序就以example1.cpp为文件名存放在F:
\C++子目录下。
②运行只包含一个C++源程序的方法
若要运行当前的源文件或一个已有的源文件,首先需要对该源文件进行编译,只要选择“Build→Compileexample1.cpp”命令进行编译即可。
在选择编译命令后,屏幕上出现一个对话框,内容是“Thisbuildcommandrequiresanactiveprojectworkspace.Wouldyouliketocreateadefaultprojectworkspace?
”(此编译命令要求有一个有效的项目工作区。
你是否同意建立一个默认的项目工作区?
),如图1-4所示。
图1-4对话框提示信息
单击“是(Y)”按钮,表示同意由系统建立一个默认的项目工作区,然后开始编译。
在进行编译时,编译系统检查源程序文件有无语法错误,然后在主窗口下部的调试信息窗口输出编译的信息。
如果有错误,就会指出错误的位置和性质,如图1-5所示。
图1-5编译提示信息
如果存在致命错误(error)和警告性错误(warning),则需要修改并重新编译;没有错误,则编译成功,生成一个example1.obj文件。
编译成功后,就可以对程序文件进行连接了。
选择主菜单中的“Build→Buildexample1.exe”命令,表示要求连接并建立一个可执行文件example1.exe。
运行该文件,在屏幕就可以看到输出结果。
2.建立一个多文件的程序,求最大值。
主函数放在一个文件中,Max函数放在另一个文件中。
如果一个程序中包含多个文件,则需要建立一个projectfile(项目文件),projectfile是放在Workspace(项目工作区)中,并在项目工作区的管理下工作的,因此,如果有多个项目文件存在时,还需要建立一个项目工作区。
在编译时,先分别对每个文件进行编译,然后将项目文件中的文件连接成一个整体,再与系统的有关资源进行连接,生成一个可执行文件,最后执行这个文件。
在实际操作时有两种方法:
一种是由用户建立项目工作区和项目文件;另一种是用户只建立项目和文件,而不建立项目工作区,由系统自动建立项目工作区。
后一种方法比前一种方法操作更简单。
由用户建立项目工作区和项目文件的具体操作为:
(1)分别编辑好同一个程序的多个源程序文件,并存放在指定的目录下。
如一个程序包含两个源程序文件file1.cpp和file2.cpp,如图1-6、1-7所示,并已经把它们保存在F:
\C++子目录下。
图1-6file1.cpp源文件
图1-7file2.cpp源文件
(2)建立一个项目工作区
建立一个项目工作区需要在MicrosoftVisualC++6.0的主窗口中选择“File→New”命令,然后单击此对话框上方的Workspace选项卡,在对话框右部Workspacename和Location中分别输入工作区名ws1和路径名F:
\C++\ws1,如图1-8所示。
图1-8选择File→New命令Workspace选项卡
单击“OK”按钮,返回主窗口。
此时在屏幕左部的工作区窗口中显示了“Workspace‘ws1’:
0project(s)”,说明当前的工作区名是ws1,其中没有放入项目文件,如图1-9所示。
图1-9新建工作区ws1
(3)建立项目文件
选择“File→New”命令,然后单击此对话框上方的Project选项卡,在对话框左部的列表中选择“Win32ConsoleApplication”项,在右部Projectname和Location中分别输入项目文件名Project和路径名F:
\C++\ws1\project1,并按需要选中是否加入当前工作区,还是创建一个新的工作区单选按钮(假设选择加入当前已有工作区),如图1-10所示。
图1-10选择File→New命令Project选项卡
单击“OK”按钮后,在弹出的对话框上选中“Anemptyproject”单选按钮,单击“Finish”按钮,则系统弹出一个工程信息对话框,单击“OK”按钮,出现图1-11所示对话框。
可以看到在屏幕左部的工作区窗口中显示了“Workspace‘ws1’:
1project(s)”,说明当前的工作区名是ws1,其中已经放入了项目文件project1。
图1-11新建的项目文件project1
项目文件建好后,选择将源程序文件加入到该项目文件中。
选择“Project→AddToProject→Files”命令,找到要加入的源程序文件file1.cpp和file2.cpp,把他们加入到项目文件project1中,其显示结果如图1-12所示。
此时可以对加入多个源程序文件的项目文件进行编译和连接了。
方法是:
单击主菜单中的“Build→BuildProject1.exe”命令,系统将对整个项目文件进行编译和连接,在窗口下部会显示编译和连接的信息。
如果程序有错,会显示出错信息,这时需要进行修改;如果没错,则生成可执行文件Project1.exe。
选择主菜单中的“Build→ExecuteProjrct1.exe”命令就可以执行project1.exe。
图1-12加入file1.cpp和file2.cpp的project1
在程序运行时,根据要求输入所需的数据,回车后即得到程序的输出结果。
#include
usingnamespacestd;
intmain(void)
{
cout<<"Hello!
\n";
cout<<"WelcometoC++program!
\n";
return0;
}
实验2基本数据类型、运算符和表达式
一、实验目的
1.熟练掌握基本的数据类型、基本的算术运算符和表达式。
2.掌握键盘输入和屏幕输出方式。
3.能够运用基本的编程知识编写简单的程序。
二、实验内容及步骤
1、三个简单的求值计算
分别输入圆柱体的半径和高,求体积;输入球半径,求其表面积;输入长方体的长、宽、高、求其体积。
#include
#include
usingnamespacestd;
#definePI3.1415926
intmain(void)
{
doubleDRadius(0),DHigh(0),DBluk(0);
doubleDBallRadius(0),DSuperArea(0);
doubleDLength(0),DWith(0),DLongHigh(0),DLongBluk(0);
cout<<"请输入圆柱体的半径和高==>";
cin>>DRadius>>DHigh;
DBluk=PI*DRadius*DRadius*DHigh;
cout<<"圆柱体的体积:
"< (2)< cout<<"请输入球的半径==>"; cin>>DBallRadius; DSuperArea=4*PI*DBallRadius*DBallRadius; cout< (2)<<"球的表面积为: "< cout<<"请输入长方体的长,宽,高==>"; cin>>DLength>>DWith>>DLongHigh; DLongBluk=DLength*DWith*DLongHigh; cout< (2)<<"长方体的体积为: "< return0; } 2、编写一个程序,完成以下内容: (1)累计和显示整1~5的和。 #include usingnamespacestd; intmain(void) { inti,sum(0); for(i=1;i<=5;i++) { sum+=i; } cout<<"1+2+3+4+5="< return0; } (2)计算1~5相加的平均值 #include usingnamespacestd; intmain(void) { inti,sum(0),ave(0); for(i=1;i<=5;i++) sum+=i; ave=(float)sum/5; cout<<"ave: "< return0; } 3.设有变量定义如下: inti=8,j=12; doublex=3.14,y=90 希望得到如下的输出结果: i=10j=c x=6.28000y=90 请编程实现。 #include #include usingnamespacestd; intmain(void) { inti=8,j=12; doublex=3.14,y=90; cout<<"i="< cout< cout< cout< return0; } 4.设有如下语句: floatx=100,y=3.14; chara=’\t’,b=’s’; cout<<”xis”< cout< cout< 则最终的输出结果是什么? 5、请编程提示并接收用户输入的三角形的三条边长,然后用三边面积公式计算三角形的面积,最后输出求的的面积值。 计算方法: 设a、b、c为三条边长, #include #include #include usingnamespacestd; intmain(void) { floata,b,c,ave; floats(0); while (1) { cout<<"请输入三角形的三边长(输入-1退出输入)==>"; cin>>a>>b>>c; if(a==-1) break; ave=(a+b+c)/2.0; if((a+b>c)&&(a+c>b)&&(b+c>a)) { s=sqrt(ave*(ave-a)*(ave-b)*(ave-c)); cout< (2)<<"三角形的面积为: "< } else cout<<"你输入的三边不能构成三角形! "< } return0; } 实验3选择和循环结构(*) 一、实验目的 1、熟练掌握if语句、switch语句、while语句、dowhile语句和for语句。 2、掌握选择结构和循环结构程序设计。 二、实验内容及步骤 1.求三个整数的最大值和最小值。 1)定义三个整形变量x1、x2、x3,并通过cin输入变量值 2)用if-else语句对三个整数进行比较,求出最大值和最小值 3)用cout显示计算结果 #include usingnamespacestd; intmain() { intx1,x2,x3; intmax,min; cout<<"pleaseinputthreenumbers: "< cin>>x1>>x2>>x3; if(x1>x2&&x1>x3) max=x1; elseif(x2>x3) max=x2; else max=x3; if(x1 min=x1; elseif(x2 min=x2; else min=x3; cout<<"max: "< cout<<"min: "< cout<<"\n\n"; system("PAUSE"); } 2.下面程序统计字符数组c中0、1、2及其他字符出现的次数,分别存放在变量i0、i1、i2中,统计结束后输出它们的值。 要求: 分析出现结果的原因,如何修改使结果正确。 答: 字符数组最后一个应该为’\0’;所以i应该小于20;然后i在加1;然后每个case完之后应该break; 源代码: #include usingnamespacestd; intmain(void) { charc[]="0123456789001112222"; inti0=0,i1=0,i2=0,i3=0; for(inti=0;i<20;i++) switch(c[i]) { case'0': i0++;break; case'1': i1++;break; case'2': i2++;break; default: i3++; } cout<<"i0="< cout<<"i1="< cout<<"i2="< cout<<"i3="< return0; } 3.增加实验3的功能,判断用户输入的正整数n是否为素数,直到用户输入1为止。 4)用while循环读入正整数n 5)对于每个正整数n,采用for循环判断是否为素数。 6)打印输出判断结果 #include usingnamespacestd; intmain(void) { inti,num,flag=0; cout<<"请输入一个正整数==>"; cin>>num; while(num! =0) { for(i=2;i { if((num%i)==0) { flag=1; break; } else flag=0; } if(flag==1) cout< else cout< cout<<"请输入一个正整数==>"; cin>>num; } return0; } 4.编写一个程序实现两个数之间简单的四则运算。 在程序中,提示用户按表达式顺序输入操作数与运算符。 #include usingnamespacestd; floatadd(floatx,floaty) { returnx+y; } floatsub(floatx,floaty) { returnx-y; } floatmul(floatx,floaty) { returnx*y; } Floatdiv1(floatx,floaty) { returnx/y; } intmain(void) { floata,b; charopt; cout<<"请输入两个整数及操作符==>"; cin>>a>>opt>>b; switch(opt) { case'+': cout< case'-': cout< case'*': cout< case'/': { If(b==0) { Cout<< "0不能作为被除数! \n"; Break; } cout< } default: cout<<"输入错误! 重新输入! "< } return0; } 5.增加实验5的功能,是程序运行时,能一次完成多个运算,直至用户输入字符“N”(在程序中,提示用户输入“Y”或“N”以决定是否继续进行四则运算)。 #include #include usingnamespacestd; floatadd(floatx,floaty) { returnx+y; } floatsub(floatx,floaty) { returnx-y; } floatmul(floatx,floaty) { returnx*y; } floatdiv1(floatx,floaty) { returnx/y; } intmain(void) { floata,b; charopt; charyorn; do { cout<<"请输入两个整数及操作符(如: 3+4=)==>"; cin>>a>>opt>>b; switch(opt) { case'+': cout< case'-': cout< case'*':
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 指导书