c++实验报告 有chang 可加💰

img


【c++面向对象程序设计】的综合实验报告
实验目的:理解面向对象的概念及特点;了解抽象、封装、继承和多态在向对象程序设计中的不同作用;正确理解单继承和多继承;掌握通过继承派生出一个新类的方法;正确理解和使用派生类的构造函数和析构函数;熟悉封装是利用访问控制实现的,以及不同继承方式对基类成员的访问控制的影响。

#include <iostream>
using namespace std;

class Shape{
protected:
    double area;
public:
    virtual double calculateArea() = 0;    //纯虚函数,定义成抽象类,不能实例化
    void displayArea(){
        cout << "Area: " << area << endl;
    }
};

class Point : public Shape{
public:
    Point(double x = 0.0, double y = 0.0){
        area = 0.0;
    }
    double calculateArea(){        //具体实现
        return 0.0;
    }
};

class Circle : public Shape{
protected:
    double radius;
public:
    Circle(double r){
        radius = r;
    }
    double calculateArea(){        //重写基类虚函数
        area = 3.14 * radius * radius;
        return area;
    }
};

class Cylinder : public Circle{
protected:
    double height;
public:
    Cylinder(double r, double h): Circle(r){
        height = h;
    }
    double calculateArea(){        //重写基类虚函数
        area = 2 * Circle::calculateArea() + 2 * 3.14 * radius * height;
        return area;
    }
};

class Triangle : public Shape{
protected:
    double base, height;
public:
    Triangle(double b, double h){
        base = b;
        height = h;
    }
    double calculateArea(){        //重写基类虚函数
        area = 0.5 * base * height;
        return area;
    }
};

int main(){
    Shape* shape;
    Circle c(10);
    shape = &c;        //指定base class指针指向c类对象,实现多态
    shape->calculateArea();
    shape->displayArea();

    Point p;
    shape = &p;        //指定base class指针指向p类对象,实现多态
    shape->calculateArea();
    shape->displayArea();

    Cylinder cy(10, 20);
    shape = &cy;        //指定base class指针指向cy类对象,实现多态
    shape->calculateArea();
    shape->displayArea();

    Triangle tr(10,10);
    shape = &tr;        //指定base class指针指向tr类对象,实现多态
    shape->calculateArea();
    shape->displayArea();

    return 0;
}

代码不是写了吗

将毕设模板发我呗,我写一下

可以看看

#include <iostream>
using namespace std;

class Shape{
protected:
    double area;
public:
    virtual double calculateArea() = 0;    //纯虚函数,定义成抽象类,不能实例化
    void displayArea(){
        cout << "Area: " << area << endl;
    }
};

class Point : public Shape{
public:
    Point(double x = 0.0, double y = 0.0){
        area = 0.0;
    }
    double calculateArea(){        //具体实现
        return 0.0;
    }
};

class Circle : public Shape{
protected:
    double radius;
public:
    Circle(double r){
        radius = r;
    }
    double calculateArea(){        //重写基类虚函数
        area = 3.14 * radius * radius;
        return area;
    }
};

class Cylinder : public Circle{
protected:
    double height;
public:
    Cylinder(double r, double h): Circle(r){
        height = h;
    }
    double calculateArea(){        //重写基类虚函数
        area = 2 * Circle::calculateArea() + 2 * 3.14 * radius * height;
        return area;
    }
};

class Triangle : public Shape{
protected:
    double base, height;
public:
    Triangle(double b, double h){
        base = b;
        height = h;
    }
    double calculateArea(){        //重写基类虚函数
        area = 0.5 * base * height;
        return area;
    }
};

int main(){
    Shape* shape;
    Circle c(10);
    shape = &c;        //指定base class指针指向c类对象,实现多态
    shape->calculateArea();
    shape->displayArea();

    Point p;
    shape = &p;        //指定base class指针指向p类对象,实现多态
    shape->calculateArea();
    shape->displayArea();
    Cylinder cy(10, 20);
    shape = &cy;        //指定base class指针指向cy类对象,实现多态
    shape->calculateArea();
    shape->displayArea();

    Triangle tr(10,10);
    shape = &tr;        
    shape->calculateArea();
    shape->displayArea();
    return 0;
}

多查一下书籍吧。一两个小时就搞定了

1

根据您提供的图片,这是一份关于C++面向对象程序设计的综合实验报告。该实验的目的包括以下几点:

  1. 理解面向对象的概念及特点:通过实验,学生可以对面向对象编程的基本概念和特点有更深入的理解,包括封装、继承、多态等。
  2. 了解抽象、封装、继承和多态在面向对象程序设计中的不同作用:学生可以通过实验案例,对抽象、封装、继承和多态在实际程序设计中的应用和作用有更清晰的认识。
  3. 正确理解单继承和多继承:实验内容应该涉及到单继承和多继承的概念和用法,让学生正确理解和区分这两种继承方式。
  4. 掌握通过继承派生出一个新类的方法:通过实验案例,学生可以学会如何通过继承机制派生出新的类,并理解派生类与基类之间的关系。
  5. 正确理解和使用派生类的构造函数和析构函数:实验中应该包含对派生类构造函数和析构函数的使用,使学生能够正确地编写和理解派生类的构造和析构过程。
  6. 熟悉封装是利用访问控制实现的,以及不同继承方式对基类成员的访问控制的影响:通过实验案例,学生应该熟悉封装是通过访问控制来实现的,并了解不同继承方式对基类成员的访问控制产生的影响。

通过这些实验内容,学生可以进一步加深对面向对象程序设计的理解,掌握面向对象编程的基本概念和技巧。同时,通过实验的练习,学生可以提高对C++语言的熟练度和代码设计能力。

希望这个回答对您有帮助。如果您还有其他问题,请随时提问。