Member 13810361 Ответов: 2

Может ли кто-нибудь решить эту проблему. Я пытался, но не смог этого сделать.


Объявите диаграмму класса, которая хранит список значений с плавающей запятой. Определение чистой виртуальной функцией называется диаграмме(). Вывести круговую диаграмму классов и шкальный . Реализуйте функцию plotchart() в обоих этих классах.

Что я уже пробовал:

#include<iostream>
#include<stdio.h>
using namespace std;

class chart
{
    float v;
public:
    virtual void plot_chart( float ,int ) = 0;
};

class PieChart: public chart
{
    float y;
public:
    void plot_chart(float u[],int n1)
     {
         int i;
         cout<<"Virtual function has been called through the object of PieChart.The array is :";
         for(i=0;i<n1;i++)
         {
             cout<<"\n"<<u[i];
         }
     }
};

class BarChart: public chart
{
    float z;
public:
    void plot_chart(float m[],int n2)
     {
         int j;
         cout<<"Virtual function has been called through the object of BarChart.The list of floating values is :";
         for(j=0;j<n2;j++)
         {
             cout<<"\n"<<m[j];
         }
     }
};

int main()
{
    chart x[100];
    int i,n;
    cout<<"\n Enter the size of the list :";
    cin>>n;
    for (i=0;i<n;i++)
    {
        cout<<"\nEnter element "<<i+1<<":";
        cin>>x[i];
    }
    PieChart o;
    o.plot_chart();
    BarChart t;
    t.plot_chart();


    return 0;
}

Richard MacCutchan

"диаграмма классов, которая хранит список значений с плавающей запятой".

Patrice T

В чем проблема с этим кодом ?

KarstenK

Если вы придерживаетесь буквы "список значений с плавающей запятой", ему нужно реализовать список-объект. Как &ЛТ;вектор&ГТ;.

2 Ответов

Рейтинг:
2

Rick York

Вы неправильно поняли связь между диаграммой и данными. В вашем коде каждый тип диаграммы имеет одно значение данных (v, y или z), а затем у вас есть массив диаграмм. Все должно быть наоборот. У вас должна быть одна диаграмма, и диаграмма должна отображать массив значений данных. В соответствии с вашими требованиями базовый класс диаграммы должен хранить список данных с плавающей запятой.


CPallini

5.

Рейтинг:
1

Member 14040193

#include<iostream>
#include<stdio.h>
using namespace std;

class chart
{

public:
        float *v = new float[100];
        int n;

    chart(float x[],int n)
    {
        for(int i=0;i<n;i++)
        {
            v[i]=x[i];
        }
    }

    virtual void plot_chart() = 0;
};

class PieChart: public chart
{
    int y;
public:

    PieChart(float x[],int n):chart(x,n) {y=n;}

    void plot_chart()
     {
         int i;
         cout<<"Virtual function has been called through the object of PieChart.The list of floating values is :"<<endl;
         for(i=0;i<y;i++)
         {
             cout<<v[i]<<endl;
         }
     }
};

class BarChart: public chart
{
    int z;
public:

    BarChart(float x[],int n):chart(x,n) {z=n;}

    void plot_chart()
     {
         int j;
         cout<<"Virtual function has been called through the object of BarChart.The list of floating values is :"<<endl;
         for(j=0;j<z;j++)
         {
             cout<<v[j]<<endl;
         }
     }
};

int main()
{
    int i,n;
    float *x=new float[100];
    cout<<"\n Enter the size of the list :";
    cin>>n;
    for (i=0;i<n;i++)
    {
        cout<<"\nEnter element "<<i+1<<":";
        cin>>x[i];
    }
    PieChart o(x,n);
    o.plot_chart();
    BarChart p(x,n);
    p.plot_chart();


    return 0;
}



/- Я думаю, именно это ты и пытался сделать!


CHill60

Было бы лучше объяснить различия между вашим кодом и OPs. Это просто дамп кода, который не особенно полезен