C++实验指导书Word格式文档下载.docx

上传人:b****6 文档编号:17538907 上传时间:2022-12-07 格式:DOCX 页数:21 大小:81.05KB
下载 相关 举报
C++实验指导书Word格式文档下载.docx_第1页
第1页 / 共21页
C++实验指导书Word格式文档下载.docx_第2页
第2页 / 共21页
C++实验指导书Word格式文档下载.docx_第3页
第3页 / 共21页
C++实验指导书Word格式文档下载.docx_第4页
第4页 / 共21页
C++实验指导书Word格式文档下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C++实验指导书Word格式文档下载.docx

《C++实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++实验指导书Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。

C++实验指导书Word格式文档下载.docx

C++数据类型、数组、常量、变量、引用类型、控制语句、函数等相关知识。

3.VisualC++6.0编程环境简介

1.1工程的概念

用VisualC++6.0编写任何一个程序前都必须首先创建一个工程(project),一个工程就好象一个工作间,以后这个程序所牵扯到的所有的文件、资源等元素都将放入这个工程中,各个工程之间互不干扰。

工程的概念使得我们的编程工作更有条理,更具模块化。

1.2操作步骤:

(1)运行VisualC++6.0,选择菜单“文件(file)”下的“新建(new)”项,会出现一个选择界面。

(2)在界面的属性标题中,选择“工程(projects)”标签。

(3)在工程下,选择“Win32ConsoleApplication”,在“工程”文本框(即ProjectName文本框)中写入新建工程的名称---“sample”;

在“C位置”文本框中,添入你要存放文件的位置;

选择“R创建新工作区”选项。

VisualC++6.0会自动“工程”文本框的名字为你建一个同名目录。

按“确定”,进入下一个界面。

(4)该界面主要是询问用户想要构成一个什么类型的工程。

选择“Anemptyproject”项,将生成一个空的工程,工程不包括任何东西。

按“完成”进入下一个界面。

(5)该界面,VisualC++6.0为你生成一个小型报告,报告的内容是刚才所有选项的总结,并询问你是否接受这些设置。

按“确定”后,进入“VisualC++6.0”的编程环境。

(6)界面的Workspace窗口中有两个标签,一个是ClassView,一个是FileView。

下端是Output窗口,程序编译、连接、调试等信息在此窗口显示。

如果看不到这两个窗口,可选择菜单“查看”(View)下的“工作区”(Workspace)和“输出”(Output)项即可。

(7)生成一个源文件。

选择菜单“工程”(Project)中的子菜单“添加工程”AddToProject下的“新建”new项,在弹出的对话框中选择“文件”(Files)标签,在列表框中选种C++SourceFile项,在右侧,选中“A添加工程”Addtoproject复选框,在下拉列表中选中sample,然后在“文件”文本框中为将要生成的文件取一个名字,我们为文件取名为main,并在“C目录”Location文本框中为文件选择一个存储目录。

按“确定”后,VisualC++6.0会为你生成相应的文件。

此时,可以在Workspace窗口的FileView标签中看到SourceFiles文件夹下,已经加有main.cpp文件。

双击main.cpp就可在视图区打开这个文件。

(8)在main.cpp中编写简单的应用程序,向屏幕输出一行字符串“一个简单的VisualC++6.0示例”

#include<

iostream.h>

voidmain()

{

cout<

<

"

一个简单的VisualC++6.0示例"

endl;

}

此时,在Workspace窗口的ClassView标签中的Globals文件夹下,可以看见刚才键入的main函数。

(9)编译、链接

所有关于编译、链接的命令都在“编译”(Build)菜单中,第一项“编译”(Compile),是编译当前的项目。

若在编译中发现错误,将在“输出”窗口显示出错的行及出错的信息。

若编译通过,可以选择第二项“构件”(Build)来链接生成可执行程序。

完毕后,运行所编的程序,选择“执行”Execute项即可运行。

也可以“编译”(Build)菜单中,选择“重构全部”项,一次完成编译、链接。

(10)注意:

以上所说的编译、链接过程都是Debug类型,即加入了一些调试信息。

如果确信程序完美无缺或者要正式发布,应选择菜单中的“批构件”(Batch)项,在对话框中选择相应的选项,点击“B建造”或“R全部重建”按钮,可在工程的目录下,产生一个新目录release,在该目录可生成所要的代码,其规模小,执行效率高,是最后的产品。

4.实验内容:

4.1分析下面的程序,并给出程序运行的结果:

#include<

classchange

charc1,c2;

public:

voidset(chara){c2=((c1=a)-32);

voidprint()

{cout<

c1<

canbeupwrittenas"

c2<

};

voidmain()

changea,b;

a.set('

a'

);

b.set('

b'

a.print();

b.print();

4.2按下面的要求编写并调试程序:

下面是一个类的测试程序,给定主函数,请写出类的定义,构成一个完整的程序,使执行程序后输出结果为:

88+32=120

88-32=56

给定的主函数为:

voidmain()

Tstt;

t.init(88,32);

t.print();

5.按要求写出实验报告。

根据实验的真实情况,进行分析,写出实验报告。

实验二类及对象的封装性

预习类及其成员定义,对象的创建和使用

3.实验内容:

3.1分析下面的程序,指出错误的地方

classCSample

inta=2.5;

public:

intb;

voidPrint()

a+b<

'

\n'

;

}

voidSet(int,int);

voidSet(intx,inty)

a=x;

y=b;

voidmain()

CSampleSam1,Sam2;

Sam1.Set(2,3);

Sam2.Set(5,6);

Sam1.Print();

Sam2.Print();

Cout<

sam1.a+sam2.a<

sam1.b+sam2.b<

3.2编写并调试程序:

定义一个描述学生基本情况的类,数据成员包括姓名、学号、英语、数学、计算机成绩。

成员函数包括设置姓名、学号和三门课程的成绩、输出数据、以及求平均值。

设计主函数,在主函数里调用设置“姓名、学号和三门课程的成绩”的成员函数设置各数据;

调用输出数据成员函数,实现各数据的输出;

调用求平均值的成员函数,求三门课的平均成绩,并输出显示。

3.3调试下列程序,指出程序实现的功能及程序输出结果。

进一步理解类的定义和使用。

math.h>

classCTria

floatx,y,z;

voidSetData(floata,floatb,floatc)

if(a+b>

c&

&

a+c>

b&

b+c>

a)

{x=a;

y=b;

z=c;

elsex=y=z=0;

floatArea()

floatt=(x+y+z)/2;

returnsqrt(t*(t-x)*(t-y)*(t-z));

CTriaa1;

a1.SetData(3,4,5);

//A

三角形面积="

a1.Area()<

//B

4.写出实验报告。

实验三、成员函数的重载

1.实验目的及要求:

(1)掌握普通函数重载的方法;

(2)掌握成员函数重载的方法;

1)预习普通函数重载的相关知识。

2)预习成员函数重载的相关知识。

3.1试定义一个字符串类my_string,使其至少有内容(contents)和长度(length)两个数据成员,并具有显示字符串,求字符串长度,给原字符串后添加一个字符串等功能。

3.2定义一个时间类Time,该类有小时hour,分钟minute和秒second三个数据成员,另外还有设置时间,显示时间等的成员函数,并在main()函数中演示这个类。

实验四、构造函数与析构函数

1)掌握构造函数和析构函数定义方法;

2)掌握构造函数的重载、具有默认值的构造函数的使用方法;

3)加深对构造函数的特殊用途的理解。

预习构造函数和析构函数的定义、构造函数的重载、具有默认值的构造函数以及构造函数的特殊用途等相关知识。

3.1分析下面的程序,指出程序运行的结果:

1)分析下面的程序,指出程序运行的结果:

classCylinder

Cylinder(){}

Cylinder(doubler,doubleh);

voidsetcylinder(doubler,doubleh);

doublegetradius(){returnradius;

doublegetheight(){returnheight;

doublevolume();

doublesurface_area();

private:

doubleradius;

doubleheight;

constdoublePI=3.1415926;

Cylinder:

:

Cylinder(doubler,doubleh)

radius=r;

2

height=h;

voidCylinder:

setcylinder(doubler,doubleh)

doubleCylinder:

volume()

doublevol;

vol=PI*radius*radius*height;

returnvol;

surface_area()

doublearea;

area=2*PI*radius*height+2*PI*radius*radius;

returnarea;

Cylindercylinder1(7.0,12.0),cylinder2;

cylinder2.setcylinder(12.3,18.7);

theradiusofcylinder1is:

\t"

cylinder1.getradius()<

endl;

theheightofcylinder1is:

cylinder1.getheight()<

thevolumeofcylinder1is:

cylinder1.volume()<

thesurfaceareaofcylinder1is:

cylinder1.surface_area()<

theradiusofcylinder2is:

cylinder2.getradius()<

theheightofcylinder2is:

cylinder2.getheight()<

thevolumeofcylinder2is:

cylinder2.volume()<

thesurfaceareaofcylinder2is:

cylinder2.surface_area()<

2)分析下面的程序,指出程序的错误:

stdlib.h>

classSample

inti;

intj;

Sample(intx)

i=x;

3

~Sample()

exit

(1);

撤消"

Samplea1(10),a2(20);

3)将下面的程序补充完整:

#include<

classtest{

intnum;

floatf1;

test();

test(___,___);

getint(){returnnum;

getfloat(){returnf1;

test__test()

默认初始化"

____=0;

____=0.0;

test____test(__n,__f)

初始化"

_____=n;

_____=f;

testa;

testb(2,5.5);

4、写出实验报告。

实验五、对象成员

1)理解对象成员的概念;

2)掌握对象成员的初始化方法。

预习对象成员,对象的创建和使用,*this指针等相关知识。

3.1分析调试程序指出程序运行的结果:

1)分析下面程序中的对象传递,写出输出结果。

classA

inti;

A(intx)

{i=x;

intget()

{returni;

intcube(Aa)

{returna.get()*a.get()*a.get();

{Aa1(10),a2(20);

cube(a1)<

cube(a2)<

2)分析对象成员的调用,写出程序结果。

classB

inta,b;

B(){}

B(inti,intj);

voidshowb();

Bc;

A(){}

A(inti,intj);

voidshowa();

A:

A(inti,intj):

c(i,j)

{}

voidA:

showa()

c.showb();

B:

B(inti,intj)

a=i;

b=j;

voidB:

showb()

a="

a<

"

\t'

b="

b<

Aa1(5,6);

a1.showa();

按下面的要求编程并调试:

编写一类Cpoint表示一个点的信息。

在此基础上编写一个表示三角形的类tria,顶点为其对象成员。

编写完整的程序输出三角形的面积。

实验6友元const对象和const成员

(2学时)

1.实习目的及要求

1)掌握友元函数的定义和使用。

2)掌握coust对象、coust成员函数和coust成员数据的使用;

2.预习

1)预习友元的概念、友元成员函数、友元类等相关知识。

2)预习coust对象及const成员的定义、使用等相关知识;

3.实验内容

3.1观察下面的程序在编译时会出现什么样的错误,并用所学的理论知识进行分析。

{intn;

Sample(inti)

{n=i;

voidsetvalue(inti)

voiddisplay()

{cout<

n="

n<

{constSamples(5);

s.setvalue(8);

s.display();

3.2编写一个程序求直角坐标中一个点到直线的距离。

要求设计一个点类point,含有两个公有成员数据x和y,代表点的坐标。

另一个类为直线类line,它有三个私有成员数据a,d,c。

分别代表直线方程ax+by+c=0的系数。

在类line中设计一个友元函数distance计算一个点到直线的距离。

点(x,y)到直线ax+by+c=0的距离distance的计算公式如下:

请根据下面给出的部分程序编写直线类line及其成员函数,以组成完整的程序。

classline;

classpoint

{public:

floatx,y;

point(floati,floatj)

{x=i;

y=j;

...

{pointp1(2,4);

linel1(1,2,3);

distance="

distance(p1,l1)<

4.写出实验报告

实验七静态成员

1)掌握静态成员数据的定义及使用。

2)掌握静态成员函数的定义及使用。

预习静态成员数据、静态成员函数等相关知识。

staticintc;

Sample()

{a=b=0;

c++;

voidshow()

'

c="

c<

intSample:

c=1;

{Samplea1,a2;

a1.show();

a2.show();

3.2分析下面的程序,指出程序实现的功能及程序输出结果:

A(intx){i=x;

cout<

x="

i<

\t调用构造函数A()\n"

~A(){cout<

\t调用析够函数~A()\n"

};

staticAa;

staticAc;

B(){cout<

调用构造函数B()\n:

;

~B(){cout<

调用析造函数~B()\n:

};

AB:

a(10);

c(5);

Aa1(20);

main()函数开始!

\n"

Bb;

main()函数结束!

3.3编写并调试程序:

编写一个名为score的类,用于统计一个班的学生成绩。

其中使用一个静态成员数据totals来存储总分以及一个静态成员函数re_totals()返回该总分。

并编写相应的测试程序。

实验八、继承

1)掌握继承的实现方法;

2)继承中常见问题的处理方法;

预习派生类的定义和使用、创建派生类对象时构造函数的调用次序、多重继承中的冲突、及虚基类。

classCBase1

intx;

CBase1()

{x=0;

调用构造函数CBase1()!

\n"

CBase1(inta)

{x=1;

调用构造函数CBase1(int)!

~CBase1(){cout<

调用析构函数~CBase1()!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1