In: Computer Science
C++
How would I sort my output to evaluate it by sorting the column by it's size? I didn't include my full program but here is the main.cpp where i'm supposed to sort the output by column size.
//User Libraries
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
//User Libraries
#include "Table.h"
#include "Triangle.h"
//Global Constants
//Function Prototype
void prntRow(RowAray *,int);
void prntTab(Table *);
void prntTri(Triangle *);
//Execution Begins Here!
int main(int argc, char** argv) {
//Initialize the random seed
srand(static_cast<unsigned int>(time(0)));
//Declare Variables
// creates a random number of rows from 1 to 10
int rows=(rand()%10)+ 1;
//creates a random number of columns from 1 to 10
int cols=(rand()%10 )+1;
int perLine=cols/2;
//Test out the RowAray
RowAray row(cols);
//Print the RowAray
cout<<"The Row Array size = "<<row.getSize()
<<" printed "<<perLine<<" per Line";
prntRow(&row,perLine);
//Test out the Table
Table tab(rows,cols);
//Print the Table
cout<<"The table size is [row,col] =
["<<rows<<","<<cols<<"]";
prntTab(&tab);
//Test out the Triangular Table
Triangle tri(rows);
//Print the Triangular Table
cout<<"The triangular table size is [row,row] =
["<<rows<<","<<rows<<"]";
prntTri(&tri);
//Exit Stage Right
return 0;
}
//Fill a triangular matrix
int **fillAry(int *col,int n){
int **array=new int*[n];
for(int i=0;i<n;i++){
array[i]=new int[col[i]];
}
for(int i=0;i<n;i++){
for(int j=0;j<col[i];j++){
array[i][j]=rand()%9+1;//1 Digit numbers [1-9]
}
}
return array;
}
void prntRow(RowAray *a,int perLine){
cout<<endl;
for(int i=0;i<a->getSize();i++){
cout<<a->getData(i)<<" ";
if(i%perLine==(perLine-1))cout<<endl;
}
cout<<endl;
}
void prntTab(Table *a){
cout<<endl;
for(int row=0;row<a->getSzRow();row++){
for(int col=0;col<a->getSzCol();col++){
cout<<a->getData(row,col)<<" ";
}
cout<<endl;
}
cout<<endl;
}
void prntTri(Triangle *a){
cout<<endl;
for(int row=0;row<a->getSzRow();row++){
for(int col=0;col<=row;col++){
cout<<a->getData(row,col)<<" ";
}
cout<<endl;
}
cout<<endl;
}
If you have any doubts, please give me comment...
RowAray.h
#ifndef ROWARAY_H
#define ROWARAY_H
#include <cstdlib>
class RowAray
{
private:
int size;
int *rowData;
public:
RowAray(int size);
~RowAray();
int getSize();
int getData(int i);
};
#endif
RowAray.cpp
#include "RowAray.h"
RowAray::RowAray(int size)
{
this->size = size;
rowData = new int[size];
for (int i = 0; i < size; i++)
{
rowData[i] = (rand() % 90) + 10;
}
}
RowAray::~RowAray()
{
delete rowData;
}
int RowAray::getSize()
{
return size;
}
int RowAray::getData(int i)
{
return rowData[i];
}
Table.h
#ifndef TABLE_H
#define TABLE_H
#include "RowAray.h"
class Table
{
private:
int szRow;
int szCol;
RowAray **records;
public:
Table(int row, int col);
~Table();
int getSzRow();
int getSzCol();
int getData(int r, int c);
};
#endif
Table.cpp
#include "Table.h"
Table::Table(int row, int col)
{
this->szRow = row;
this->szCol = col;
records = new RowAray *[row];
for (int i = 0; i < row; i++)
records[i] = new RowAray(col);
}
Table::~Table()
{
delete[] records;
}
int Table::getSzRow()
{
return szRow;
}
int Table::getSzCol()
{
return szCol;
}
int Table::getData(int r, int c)
{
return records[r]->getData(c);
}
Table.h
#ifndef TRIANGLE_H
#define TRIANGLE_H
#include "RowAray.h"
class Triangle
{
private:
int szRow;
RowAray **records;
public:
Triangle(int row);
~Triangle();
int getSzRow();
int getData(int r, int c);
};
#endif
Triangle.cpp
#include "Triangle.h"
Triangle::Triangle(int row)
{
this->szRow = row;
records = new RowAray *[row];
for (int i = 0; i < row; i++)
records[i] = new RowAray(row);
}
Triangle::~Triangle()
{
delete[] records;
}
int Triangle::getSzRow()
{
return szRow;
}
int Triangle::getData(int r, int c)
{
return records[r]->getData(c);
}
main.cpp
//User Libraries
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
//User Libraries
#include "Table.h"
#include "Triangle.h"
//Global Constants
//Function Prototype
void prntRow(RowAray *, int);
void prntTab(Table *);
void prntTri(Triangle *);
//Execution Begins Here!
int main(int argc, char **argv)
{
//Initialize the random seed
srand(static_cast<unsigned int>(time(0)));
//Declare Variables
// creates a random number of rows from 1 to 10
int rows = (rand() % 10) + 1;
//creates a random number of columns from 1 to 10
int cols = (rand() % 10) + 1;
int perLine = cols / 2;
//Test out the RowAray
RowAray row(cols);
//Print the RowAray
cout << "The Row Array size = " << row.getSize()
<< " printed " << perLine << " per Line";
prntRow(&row, perLine);
//Test out the Table
Table tab(rows, cols);
//Print the Table
cout << "The table size is [row,col] = [" << rows << "," << cols << "]";
prntTab(&tab);
//Test out the Triangular Table
Triangle tri(rows);
//Print the Triangular Table
cout << "The triangular table size is [row,row] = [" << rows << "," << rows << "]";
prntTri(&tri);
//Exit Stage Right
return 0;
}
//Fill a triangular matrix
int **fillAry(int *col, int n)
{
int **array = new int *[n];
for (int i = 0; i < n; i++)
{
array[i] = new int[col[i]];
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < col[i]; j++)
{
array[i][j] = rand() % 9 + 1; //1 Digit numbers [1-9]
}
}
return array;
}
void prntRow(RowAray *a, int perLine)
{
cout << endl;
for (int i = 0; i < a->getSize(); i++)
{
cout << a->getData(i) << " ";
if (i % perLine == (perLine - 1))
cout << endl;
}
cout << endl;
}
void prntTab(Table *a)
{
cout << endl;
for (int row = 0; row < a->getSzRow(); row++)
{
for (int col = 0; col < a->getSzCol(); col++)
{
cout << a->getData(row, col) << " ";
}
cout << endl;
}
cout << endl;
}
void prntTri(Triangle *a)
{
cout << endl;
for (int row = 0; row < a->getSzRow(); row++)
{
for (int col = 0; col <= row; col++)
{
cout << a->getData(row, col) << " ";
}
cout << endl;
}
cout << endl;
}