Mira... esta es una idea
falta depurarlo un poco pero fue lo mejor que pude hacer en un rato, saludos!
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <conio.h>
using namespace std;
void gotoxy(int x,int y);
#define MAX 40
class Grafica
{
public:
Grafica(int y, int x)
{
MAX_X=x;
MAX_Y=y;
}
void tabla()
{
cout << "\tGrafica" <<endl<<endl;
for(int y=MAX_Y;y>=0;y--)
{
if(y<10)
cout << " ";
cout << y << "-" << char(179);
if(y>0)
{
cout << endl;
}
if(y==0)
{
for(int x=0;x<MAX_X;x++)
{
cout << char (196)<< char(179);
}
}
}
}
void llenar()
{
int j=0,x=5,y=2,cont=0;
while(cont<MAX_X*2)
{
for(int i=MAX_Y;i>0;i--)
{
if(d[j]==i)
{
gotoxy(x,y++);
cout << char (177)<< endl;
d[j]--;
}
else {cout << endl; y++;}
}
j++; x++; cont+=2;
if(j<MAX_Y)
{
x=5+cont; y=2;
}
}
}
void in_datos()
{
for (int i=0;i<MAX_X;i++)
{
cout << "Ingresa los datos de x"<<i+1<< ": ";
cin >> d[i];
}
}
private:
int MAX_X,MAX_Y;
int d[MAX];
};
COORD coord={0,0};
void gotoxy(int x,int y)
{
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
main ()
{
int x,y;
cout << "Ingresa la cantidad maxima en Y: ";
cin >> y;
cout << "Ingresa cuantos datos hay en X: ";
cin >> x;
Grafica G1(y,x);
G1.in_datos();
system("cls");
G1.tabla();
G1.llenar();
gotoxy(x,y);
cout << endl<<endl<<endl;
getch();
return 0;
}