Write a program that finds the greatest sum of three adjacent numbers in any direction (up, down, left, right, or diagonally) in a 20x20 grid of numbers.
All input data must be obtained from the stdin prompt. You can feed in the data from a file by using input redirection. The input file will contain the matrix of numbers from the top left to bottom right.
Example input file:
input.txt
Code:
08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48
---------------------------------------------------------------------------------------------------------
1) The program should be purely Object Oriented containing a constructor, destructor and other helper functions.
2) The data members must be private and accessible only through getter and setter functions (accessors and mutators).
3) No global variables may be used. The 2D data grid must be passed in to a function using pointers.
4) The program should contain a function to obtain user input (this should not be the constructor), a function to display output, and at least one other function to perform the calculations.
---------------------------------------------------------------------------------------------------------
For this program, i have an intArray.h, intArray.cpp, and main.cpp
This is what I have so far:
---------------------------------------------------------------------------------------------------------
intArray.h
Code:
#ifndef INT_ARRAY_H
#define INT_ARRAY_H
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
class intArray{
//variables
int size[20][20];
int* data;
public:
//constructor and destructor
intArray();
~intArray();
//getters
int getSize();
int getValue(int column, int row, int value);
//setters
//void setValue(int value, int index);
//read&display
void display();
void read();
};
#endif //INT_ARRAY_H
---------------------------------------------------------------------------------------------------------
intArray.cpp
Code:
#include <iostream>
#include "intArray.h"
using namespace std;
//const int num = 20;
int width = 20;
int height = 20
//constructor
intArray::intArray(){
int size [height][width];
data = new int [size];
if (data == NULL){
cout << "ERROR: Insufficient Memory" << endl;
exit(1);
}
else {
for(int i = 0; i < height; ++i){
for(int j = 0; j < weight; ++j){
data[i][j] = 0;
}
}
}
}
//destructor
intArray::~intArray(){
if(data != NULL){
delete [] data;
}
}
//display
void intArray::display(){
for(int i = 0; i < height; i++){
for (int j = 0; j < weight; j++){
cout << size[i][j] << " ";
}
cout << endl;
}
}
//read
void intArray::read(){
for(int i = 0; i < height; i++)
for (int j = 0; j < weight; j++)
cin >> size[i][j];
}
//getters
int intArray::getSize(){
return(size);
}
int intArray:: getValue(int column, int row, int value){
for(i = 0; i < height; ++i){
for(j = 0; j < weight; ++j){
}
}
}
---------------------------------------------------------------------------------------------------------
main.cpp
Code:
#include <iostream>
#include <fstream>
#include "intArray.h"
using namespace std;
int main(int argc, char **argv){
intArray myArray;
ifstream inFile;
inFile.open("input.txt");
if (inFile.fail()){
cout << "ERROR!!! Input file cannot be opened. Please try again." << endl;
exit(0);
}
else{
cout << "File opened!";
}
cout << endl;
return(0);
}
---------------------------------------------------------------------------------------------------------
PLEASE HELP! I don't know what to do for main.cpp.. and also I'm not sure what to type for intArray.cpp. Any help would be much appreciated!