1、实验一 C+简单程序设计(2学时)一、实验目的(1)学习编写简单的C+程序;(2)学习运算符与表达式的应用;(3)练习使用简单的输入输出;(4)学习使用VISUAL C+开发环境;二、实验任务(1)do-while语句编程,求自然数1-10的和;并用for语句改写此程序。(2)编程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提求用户选择图形的类型,然后,再要求用户对圆形输入半径值,对长方形输入长与宽,对正方形输入边长,计算出面积的值后,在屏幕上显示出来。三、实验步骤(1) 写出源代码,下同do-while 格式:#includeusing namespace std;int
2、main(int argc,char* argv)int sum = 0;int i = 1;dosum = sum + i;i+;while(i=10);coutsum=sum;return 0;for 语句:#includeusing namespace std;int main(int argc,char* argv)int sum = 0;int i = 1;for(i; i=10; i+)sum = sum + i;coutsum=sum;return 0;(2)#include#define PI 3.1415926using namespace std;void Area1()i
3、nt n;coutn;cout面积为 PI*n*n;void Area2()int n,m;coutn;coutnm;cout面积为 n*m; void Area3()int n;coutn;cout面积为 n*n;int main(int argc,char * argv)int n;cout1计算圆面积n2计算矩形面积n3计算正方形面积n4退出endl;coutn;switch(n)case 1:Area1();break;case 2:Area2();break;case 3:Area3();break;case 4:return 0;default:break;return 0;四、运
4、行结果(1)(2)实验二 类与对象程序设计(2学时)一、实验目的(1)掌握类的定义和使用、成员函数的定义和使用;(2)掌握类的私有成员、公有成员和保护成员的区别;(3)掌握对象的定义、类成员的访问;(4)掌握类中构造函数与析构函数的应用。(5)掌握重载函数的定义和使用。二、实验任务(1)设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角的两个点的坐标,能计算矩形的面积。要求定义构造函数与析构函数。(2)编写重载函数MAX1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。三、实验步骤(1)#includeusing namespace std;class
5、 Rectangleprivate:int Ax, Ay;int Bx, By;public:Rectangle(int x1,int y1, int x2, int y2)Ax = x1;Ay = y1;Bx = x2;By = y2;Rectangle();void Area()int a;a=(Ax-Bx)*(Ay-By);coutArea: a;int main()Rectangle a(0,0,50,60);a.Area();return 0;(2)、#includeusing namespace std;int max(int a,int b,int c);int max(int
6、a,int b);double max(double a,double b);double max(double a,double b,double c);int main()int a,b,c;double d,e,f;cout请输入三个整数 abc;cout请输入三个双精度数def; couta,b中较大的是:max(a,b)endl;coutd,e中较大的是: max(d,e)endl;cout最大的整数是:max(a,b,c)endl;cout最大的双精度数是: max(d,e,f)max) max = b;if(c max)max = c;return max; int max(in
7、t a, int b) if(ab) return a; else return b; double max(double d,double e,double f) double Max = d; if(e Max) Max = e; if(f Max) Max = f; return Max; double max(double d,double e) if(de) return d; else return e; 四、运行结果(1)(2)实验三 继承与派生(2学时)一、实验目的(1)掌握类的继承和派生过程;(2)掌握派生类的定义与使用;(3)掌握派生类的构造函数与析构函数的应用及调用顺序;
8、(4)学习使用VISUAL C+调试类的继承关系的应用。二、实验任务(1)声明一个基类BaseClass,有整数类型成员变量Number,构造基派生类DerivedClass,实现其构造函数和析构函数,完善类的功能与结构。(2)声明一个基类SHAPE,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象的面积。使用Rectangle类创建一个派生类Square;完善类的功能与结构。三、实验步骤(1)#includeusing namespace std;class BaseClasspublic:BaseClass()coutBaseClass Constr
9、uction!endl;BaseClass()coutBaseClass Deconstruction!;class DerivedClass:public BaseClasspublic:DerivedClass()coutDerivedClass Construction!endl;DerivedClass()coutDerivedClass Deconstruction!endl;int main()DerivedClass a;return 0;(2)#includeconst double pi = 3.14;using namespace std;class SHAPEpublic
10、: SHAPE(); virtual double GetArea()return 0.0;class Rectangle:public SHAPEprotected:double len;double wid;public:Rectangle(double l,double w)len = l;wid = w; virtual double GetArea()return len*wid;class Circle:public SHAPEprotected:double r;public:Circle(double radius)r = radius; virtual double GetA
11、rea()return r*r*pi;class Square:public Rectanglepublic:Square(double a):Rectangle(a,a) double GetArea()return len*wid;void func(SHAPE &p)coutp.GetArea()endlendl;int main()Rectangle a(4,5);cout矩形面积为:; func(a);Square b(4);cout正方形面积为:; func(b);Circle s(2);cout圆形的面积为:; func(s);return 0;四、运行结果(1)(2)实验四 多
12、态性(2学时)一、实验目的(1)掌握抽象类的定义与使用;(2)掌握虚函数的定义与使用;(3)掌握虚函数实现动态多态性;(4)学习使用VISUAL C+调试虚函数;二、实验任务(1)编写一个抽象类SHAPE,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象的面积。计算周长的函数GetPerim();完善类的功能与结构。(2)声明一个车(Vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(Bicycle)类、汽车(Motorcar)类,从(Bicycle)和(Motorcar)派生出摩托车(Motorcycle)类,它们都有Run、Stop
13、等成员函数。利用虚函数解决问题。三、实验步骤(1)#include#define pi 3.1415926using namespace std;class SHAPEpublic:virtual double GetArea() = 0;virtual double GetPerim() = 0;class Rectangle: public SHAPEprivate:double length,width;public:Rectangle(double len,double wid)length = len;width = wid;cout长length宽widthendl; double
14、 GetArea()return length * width;double GetPerim()return 2 * (length + width);class Circle: public SHAPEprivate:double radius;public:Circle(double r)radius = r;cout半径radiusendl; double GetArea()return pi * radius *radius;double GetPerim()return 2 * pi * radius;void Put(SHAPE &i)cout面积是:i.GetArea()end
15、l;cout周长是:i.GetPerim()endl; int main()double length,width;coutlengthwidth;Rectangle a(length,width);Put(a);double radius;coutradius; Circle b(radius);Put(b);return 0;(2)#includeusing namespace std;class Vehiclepublic:virtual void Run() = 0;virtual void Stop() = 0;class Bicycle: virtual public Vehicl
16、epublic:void Run()coutVehicle:Run calledendl;void Stop()coutVehicle:Stop calledendl;class Motorcar: virtual public Vehiclepublic:void Run()coutbicycle:Run calledendl;void Stop()coutbicycle:Stop calledendl;class Motorcycle:public Bicycle, public Motorcarpublic:void Run()coutmotorcar:Run calledendl;void Stop()coutmotorcar:Stop calledendl;void Put(Vehicle &i)i.Run();i.Stop();int main()Bicycle a;Put(a);Motorcar b;Put(b);Motorcycle c;Put(c);return 0;四、运行结果(1)(2)