【OOP】实验2 创建多文件的C++程序
作者:3sbase | 发布时间:2016/3/19

一、实验类型

    设计型

二、实验目的与要求

1、实验目的

    练习C++多文件的程序结构

2、实验要求

熟悉C++头文件、界面文件的概念,编制有头文件、界面文件及源文件构成的一个C++工程;掌握函数的组织方式;掌握全局数据、局部数据、静态全局数据及静态局部数据的概念;掌握命名空间的定义及使用方法;掌握常用的预编译指令。

三、上机准备

1、实验室安装VC++6.0软件。

2、复习教材7章的内容。

四、实验内容

1、编写由圆及矩形相关函数构成的多文件程序

(1)圆相关文件组织

头文件:Circle.h

void InputRadius();

void InputHeight();

void GetCircleArea();

void GetCylinderVolumn();

编写相应的函数定义文件Circle.cpp。其中定义如下的变量即常量:

float fRadius;

static float fHeight;

const float PI=3.14f;

(2)矩形相关文件组织

 头文件:Rect.h

void InputRectWH(float &fRectW,float &fRectH);

float InputRectZ();

static float GetRectArea(float fRectW,float fRectH);

float GetRectVolumn(float fRectW,float fRectH,float fRectZ);

编写相应的函数定义文件Rect.cpp

(3)test.cpp文件

#include<iostream>

#include"Circle.h"

#include"Rect.h"

using namespace std;

 

extern float fRadius;

//extern float fHeight;

 

void DisplayRadius();

void DisplayHeight();

 

void main(){

    InputRadius();

    InputHeight();

    GetCircleArea();

    GetCylinderVolumn();

    DisplayRadius();

//  DisplayHeight();

 

    float fRectW,fRectH;

    InputRectWH(fRectW,fRectH);

 //  cout<<"矩形的面积为:"<<GetRectArea(fRectW,fRectH)<<endl;

    float fRectZ;

    fRectZ=InputRectZ();  

    cout<<"长方体的体积为:"<<GetRectVolumn(fRectW,fRectH,fRectZ)<<endl;

}

 

void DisplayRadius(){

  cout<<"当前圆的半径为:"<<fRadius<<endl;

}

void DisplayHeight(){

 // cout<<"当前圆柱的高度为:"<<fHeight<<endl;

}

依次取掉注释,分析错误的原因。

2、预编译指令练习

在文件Circle.hRect.h中,均定义一个结构体

struct Point

{

    float x,y;

};

运行程序,出现什么错误,怎样通过预编译指令解决这个问题?

3、实现圆的相关函数的命名空间circle,然后调试程序使程序能够运行。在实验报告中说明,声明名空间时,应该注意的那些方面。

五、实验步骤

1VC++控制台应用程序的建立

2、编写由圆及矩形相关函数构成的多文件程序

3、通过预编译指令解决Circle.hRect.h中同时定义一个Point结构体时的问题。

4、实现圆的相关函数的命名空间circle    

六、实验报告

1、根据实验内容要求,分析错误原因,并书写解决的办法。