Hello, I am new to this forum. Please help me out here thankz.
Hi, anyone like to offer some extra eyes on this problem? I am having trouble with the array pointer and with the variables. I don't seem to have the pointer set up because the additional times the array is called it is empty. Also, if I don't use integers the program drops through.
/*
NumClass
Main.cpp
*******************************************************************************************
* NumClass
*
* Design a class that has an array of floating point numbers. The constructor
* should accept an integer argument and dynamically allocate the array to hold that many
* numbers. The destructor should free the memory held by the array. In addition, there
* should be member functions to perform the following operations:
*
* * Store a number in any element in of the array
* * Retrieve a number in any element of the array
* * Return the highest value stored in the array
* * Return the lowest value stored in the array
* * Return the average of all the numbers stored in the array
*
* Demonstrate the class in a program
*
******************************************************************************************/
#include "NumClass.h" // For the NumClass class
#include <iostream>
usingnamespace std;
// Main to run program
int main()
{
//variables
int a_size = 10; // initialize
NumClass myArray(a_size); // name for instance of array
int element; // to pick an element from the array
int size;
size=a_size;
// Get the array size.
cout << "Enter the arrays's size: ";
cin >> size;
cout << endl;
myArray.theArray[size];
// ask for the numbers in the array
for (int index =0; index < size; index++)
{
cout << "What is the number that is in " << index << " place of the array? \n";
cin >> myArray.theArray[index];
}
// store the in the instance of digits
myArray.theArray[size];
cout << "Pick an element in the array. \n";
cin >> element;
// Display the Array's data.
cout << "\t Array Information \n";
cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
cout << "\t Number from element " << element << " :" << myArray.theArray[element] << endl;
cout << "\t Highest : " << myArray.getHighest() << endl;
cout << "\t Lowest: " << myArray.getLowest() << endl;
cout << "\t Average: " << myArray.getAverage() << endl;
cout << endl;
cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
cout << endl;
}
/*
NumClass.cpp
*/
// Implementation file for the NumClass class
# include "NumClass.h"
#include <cstdlib>
#include <iostream>
usingnamespace std;
// The default constructor
NumClass::NumClass(int size)
{
theArray = newint[size]; // points to a dynamically allocated array of integers
numElements = size; // number of elements in the array
for (int index = 0; index < size; index++)
theArray[index] = 0; // set everyting to zero to start
}
NumClass::~NumClass()
{
//destructor
delete[]theArray; //free memory
theArray = 0; //clear to prevent invalid memory address
}
// Accessor function for the highest number
// use const to tell complier not to change it
// only return value
double NumClass::getHighest() const
{
int count; // local to count in loop
double highest; // to hold highest
// set the first array element to highest
highest = theArray[0];
// step through array size to compare
for (count =1; count < numElements; count++)
{
if (theArray[count] > highest)
{
// stores the highest number
highest = theArray[count];
}
}
return highest;
}
// Accessor function for the lowest
// use const to tell complier not to change it
// only return value
double NumClass::getLowest() const
{
int count; // local to count in loop
double lowest; // to hold lowest
// set the first array element to lowest
lowest = theArray[0];
// step through array size to compare
for (count = 1; count < numElements; count++)
{
if (theArray[count] < lowest)
{
// stores the lowest number
lowest = theArray[count];
}
}
return lowest;
}
// Accessor function for the average
// use const to tell complier not to change it
// only return value
double NumClass::getAverage() const
{
double total = 0; // accumulator for function
int count; // local to count in loop
double average; // to hold average
// step through array size to add up numbers
for (count = 0; count < numElements; count++)
{
total =+ theArray[count];
}
average = (total/count);
return average;
}
/*
NumClass.h
*/
// Specification file for the NumClass class
#ifndef NumClass_H // include guard to keep from being run twice
#define NumClass_H // defines class
class NumClass // class name
{
public:
// private member variables
// Dynamically allocate size of array
int *theArray; // pointer to the array
int numElements; // number of elements
NumClass(int); // constructor
~NumClass(); // destructor
// Mutators used to alter variables
void setHighest(double); // set the highest value
void setLowest(double); // set the lowest value
void setAverage(double); // set the average value
// Accessors used to get the variables
//set as constant to avoid making changes to variable
//int getElement() const;
double getHighest() const;
double getLowest() const;
double getAverage() const;
};
#endif // closes guard
NumClass myArray(a_size); // name for instance of array
before you've asked the user how big they want the array?
The whole point of your class is to keep things hidden/encapsulated away from the user, so why have you declared you internal array to be public? You've even added a comment to say they'll be private..