Code:
//main.cpp
#include "aRandomNumber.h"
#include "histogram.h"
int main()
{
aRandomNumber die1();
histogram histogram1(die1.getRange());
for (int i=0; i<10; i++) //calls the add function 9000 times
{
histogram1.add(die1.generate());
}
histogram1.displayData();
histogram1.displayHistogram();
}
Code:
//histogram.h
#pragma once
class histogram
{
public:
histogram(void);
histogram(int numCount);
~histogram(void);
void histogram::add(int numGenerated);
void histogram::displayData();
void histogram::displayHistogram();
void histogram::add();
private:
int * data;
int low;
int range;
};
Code:
//histogram.cpp
#include "histogram.h"
#include <iostream>
#include <cstdlib>
using namespace std;
histogram::histogram(void)
{
data = new int[9];
for (int i = 0; i < 9; i++)
{
data[i] = 0;
}
low = 1;
}
histogram::histogram(int numCount)
{
range = numCount;
data = new int[numCount];
}
void histogram::add(int numGenerated)
{
int data[range];
int i;
for(i=0;data[i] != numGenerated; i++)
{
}
if (data[i] = numGenerated)
{
data[i]++;
}
}
void histogram::displayData()
{
for(int i=0; i<range; i++)
{
cout << i + low << " " << data[i] << '\n' ;
}
}
void histogram::displayHistogram()
{
// will need to include scaling factor here
for(int i=0; i<range; i++)
{
cout<< i+range;
for(int stars=0; stars<data[i]; stars++)
{
cout<<'*';
}
cout<< endl;
}
}
histogram::~histogram(void)
{
delete[] data;
}
Code:
//aRandomNumber.h
#pragma once
class aRandomNumber
{
public:
aRandomNumber(void); //default constructor
//~aRandomNumber(void); //default destructor
aRandomNumber(int start, int end);
void aRandomNumber::setRange(int start, int end);
int aRandomNumber::generate();
int aRandomNumber::getRange();
private:
int low;
int high;
};
Code:
//aRandomNumber.cpp
#include "aRandomNumber.h"
#include <iostream>
#include <cstdlib>
using namespace std;
aRandomNumber::aRandomNumber(void)
{
low = 1;
high = 9;
}
aRandomNumber::aRandomNumber(int start, int end)
{
low = start;
high = end;
}
int aRandomNumber::getRange()
{
return (high - low + 1);
}
void aRandomNumber::setRange(int start, int end)
{
low = start;
high = end;
}
int aRandomNumber::generate()
{
int numGenerated; //holds the number generated by the random number function
numGenerated = low + rand() % getRange();
return numGenerated;
}
I got the following errors from Microsoft Visual Studio 2010 professional:
main.cpp
1>c:\users\ashley\documents\visual studio 2010\projects\random number project\random number project\main.cpp(8): error C2228: left of '.getRange' must have class/struct/union
1>c:\users\ashley\documents\visual studio 2010\projects\random number project\random number project\main.cpp(11): error C2228: left of '.generate' must have class/struct/union
1> histogram.cpp
1>c:\users\ashley\documents\visual studio 2010\projects\random number project\random number project\histogram.cpp(24): error C2057: expected constant expression
1>c:\users\ashley\documents\visual studio 2010\projects\random number project\random number project\histogram.cpp(24): error C2466: cannot allocate an array of constant size 0
1>c:\users\ashley\documents\visual studio 2010\projects\random number project\random number project\histogram.cpp(24): error C2133: 'data' : unknown size
1> Generating Code...
what is wrong with my code