Help me with my program in c++ having issues it has issues compiling all the way
ID: 3705862 • Letter: H
Question
Help me with my program in c++ having issues it has issues compiling all the way need it to get to test 20//main.cpp #include <iostream> #include <iomanip> #include <fstream> #include <stdlib.h> #include "iadrv.h" #include "intarray.h" using namespace std; ofstream csis; int main() { csis.open("csis.txt"); test1(); test2(); test3(); test4(); test5(); test6(); test7(); test8(); test9(); test10(); test11(); test12(); test13(); test14(); test15(); test16(); test17(); test18(); test19(); test20(); csis.close(); } void test1() { cout << "1. Array declared with single integer: IntArray a(10);" << endl << endl; csis << "1. Array declared with single integer: IntArray a(10);" << endl << endl; IntArray a(10); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; wait(); } void test2() { cout << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; csis << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; IntArray b(-3, 6); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); } void test3() { cout << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; csis << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test4() { cout << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; csis << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; IntArray d(5, 5); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; wait(); } void test5() { cout << "5. Array declared with no integers: IntArray z;" << endl << endl; csis << "5. Array declared with no integers: IntArray z;" << endl << endl; IntArray z; for(int i = z.low(); i <= z.high(); i++) z[i] = i * 10; z.setName(" z"); cout << z << endl; csis << z << endl; wait(); } void test6() { cout << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; cout << " Intarray e(c);" << endl << endl; csis << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; csis << " Intarray e(c);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; IntArray e(c); e.setName(" e"); cout << e << endl; csis << e << endl; wait(); } void test7() { cout << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; cout << " IntArray g(5, 8);" << endl; cout << " f = g;" << endl << endl; csis << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; csis << " IntArray g(5, 8);" << endl; csis << " f = g;" << endl << endl; IntArray f(1, 4); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; IntArray g(5, 8); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; wait(); f = g; cout << f << endl; cout << g << endl; csis << f << endl; csis << g << endl; wait(); } void test8() { cout << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; cout << " IntArray k(6, 9);" << endl; cout << " IntArray l(1, 4);" << endl; cout << " j = k = l;" << endl << endl; csis << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; csis << " IntArray k(6, 9);" << endl; csis << " IntArray l(1, 4);" << endl; csis << " j = k = l;" << endl << endl; IntArray j(3, 6); for(int i = j.low(); i <= j.high(); i++) j[i] = i * 10; j.setName(" j"); cout << j << endl; csis << j << endl; IntArray k(6, 9); for(int i = k.low(); i <= k.high(); i++) k[i] = i * 10; k.setName(" k"); cout << k << endl; csis << k << endl; IntArray l(1, 4); for(int i = l.low(); i <= l.high(); i++) l[i] = i * 10; l.setName(" l"); cout << l << endl; csis << l << endl; wait(); j = k = l; cout << j << endl; cout << k << endl; cout << l << endl; csis << j << endl; csis << k << endl; csis << l << endl; wait(); } void test9() { cout << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; cout << " IntArray n(1, 5);" << endl; cout << " m == n" << endl << endl; csis << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; csis << " IntArray n(1, 5);" << endl; csis << " m == n" << endl << endl; IntArray m(3, 7); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(1, 5); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; cout << "Returns " << (m == n ? "True." : "False.") << endl << endl; csis << m << endl; csis << n << endl; csis << "Returns " << (m == n ? "True." : "False.") << endl << endl; wait(); } void test10() { cout << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; cout << " IntArray p(1, 5);" << endl; cout << " o == p" << endl << endl; csis << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; csis << " IntArray p(1, 5);" << endl; csis << " o == p" << endl << endl; IntArray o(3, 7); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; IntArray p(1, 5); for(int i = p.low(); i <= p.high(); i++) p[i] = i * 10; p.setName(" p"); cout << p << endl; cout << "Returns " << (o == p ? "True." : "False.") << endl << endl; csis << p << endl; csis << "Returns " << (o == p ? "True." : "False.") << endl << endl; wait(); } void test11() { cout << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; cout << " IntArray r(1, 4);" << endl; cout << " q == r;" << endl << endl; csis << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; csis << " IntArray r(1, 4);" << endl; csis << " q == r;" << endl << endl; IntArray q(1, 3); for(int i = q.low(); i <= q.high(); i++) q[i] = i * 10; q.setName("q"); cout << q << endl; csis << q << endl; IntArray r(1, 4); for(int i = r.low(); i <= r.high(); i++) r[i] = i * 10; r.setName(" r"); cout << r << endl; cout << "Returns " << (q == r ? "True." : "False.") << endl << endl; csis << r << endl; csis << "Returns " << (q == r ? "True." : "False.") << endl << endl; wait(); } void test12() { cout << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; cout << " IntArray t(1, 5);" << endl; cout << " s != t;" << endl << endl; csis << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; csis << " IntArray t(1, 5);" << endl; csis << " s != t;" << endl << endl; IntArray s(3, 7); for(int i = s.low(); i <= s.high(); i++) s[i] = i * 10; s.setName("s"); cout << s << endl; csis << s << endl; IntArray t(1, 5); for(int i = t.low(); i <= t.high(); i++) t[i] = i * 10; t.setName(" t"); cout << t << endl; csis << t << endl; wait(); s = t; cout << s << endl; cout << t << endl; cout << "Returns " << (s != t ? "True." : "False.") << endl << endl; csis << s << endl; csis << t << endl; csis << "Returns " << (s != t ? "True." : "False.") << endl << endl; wait(); } void test13() { cout << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; cout << " IntArray v(1, 5);" << endl; cout << " u != v;" << endl << endl; csis << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; csis << " IntArray v(1, 5);" << endl; csis << " u != v;" << endl << endl; IntArray u(3, 7); for(int i = u.low(); i <= u.high(); i++) u[i] = i * 10; u.setName(" u"); cout << u << endl; csis << u << endl; IntArray v(1, 5); for(int i = v.low(); i <= v.high(); i++) v[i] = i * 10; v.setName(" v"); cout << v << endl; cout << "Returns " << (u != v ? "True." : "False.") << endl << endl; csis << v << endl; csis << "Returns " << (u != v ? "True." : "False.") << endl << endl; wait(); } void test14() { cout << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; cout << " IntArray x(1, 4);" << endl; cout << " w != x;" << endl << endl; csis << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; csis << " IntArray x(1, 4);" << endl; csis << " w != x;" << endl << endl; IntArray w(1, 3); for(int i = w.low(); i <= w.high(); i++) w[i] = i * 10; w.setName(" w"); cout << w << endl; csis << w << endl; IntArray x(1, 4); for(int i = x.low(); i <= x.high(); i++) x[i] = i * 10; x.setName(" x"); cout << x << endl; cout << "Returns " << (w != x ? "True." : "False.") << endl << endl; csis << x << endl; csis << "Returns " << (w != x ? "True." : "False.") << endl << endl; wait(); } void test15() { cout << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; cout << " IntArray b(4, 8);" << endl; cout << " IntArray c = a + b;" << endl << endl; csis << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; csis << " IntArray b(4, 8);" << endl; csis << " IntArray c = a + b;" << endl << endl; IntArray a(1, 5); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; IntArray b(4, 8); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); IntArray c = a + b; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test16() { cout << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; cout << " IntArray e(30, 33);" << endl; cout << " d += e;" << endl << endl; csis << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; csis << " IntArray e(30, 33);" << endl; csis << " d += e;" << endl << endl; IntArray d(10, 13); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; IntArray e(30, 33); for(int i = e.low(); i <= e.high(); i++) e[i] = i * 10; e.setName(" e"); cout << e << endl; csis << e << endl; d += e; cout << d << endl; csis << d << endl; wait(); } void test17() { cout << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; csis << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; IntArray f(5, 2); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; wait(); } void test18() { cout << "18. Array with index out of range: IntArray g(10);" << endl; cout << " g[10] = 1;" << endl << endl; csis << "18. Array with index out of range: IntArray g(10);" << endl; csis << " g[10] = 1;" << endl << endl; IntArray g(10); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; g[10] = 1; wait(); } void test19() { cout << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; cout << " IntArray n(2, 4);" << endl; cout << " m = n;" << endl << endl; csis << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; csis << " IntArray n(2, 4);" << endl; csis << " m = n;" << endl << endl; IntArray m(1, 4); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(2, 4); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; csis << m << endl; csis << n << endl; wait(); } void test20() { cout << "20. Array subscript operator: IntArray o(7, 8);" << endl; cout << " o[7] = 25;" << endl; cout << " o[8] = o[7];" << endl << endl; csis << "20. Array subscript operator: IntArray o(7, 8);" << endl; csis << " o[7] = 25;" << endl; csis << " o[8] = o[7];" << endl << endl; IntArray o(7, 8); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; o[7] = 25; o[8] = o[7]; cout << o << endl; csis << o << endl; wait(); } void wait() { char buf; cout << "Press any key to continue." << endl; cin.get(buf); } ———————————————————— #ifndef iadrv_h #define iadrv_h
#include "intarray.h"
int main(); void test1(); void test2(); void test3(); void test4(); void test5(); void test6(); void test7(); void test8(); void test9(); void test10(); void test11(); void test12(); void test13(); void test14(); void test15(); void test16(); void test17(); void test18(); void test19(); void test20(); void wait();
#endif /* iadrv_h */ ———————————————————- #ifndef intarray_h #define intarray_h
#include <iostream> #include <fstream> using namespace std;
class IntArray { private: string arrayName; int lowIndice; //low indice int highIndice; //high indice int elements; //number of elements int size; //size int *dArray; //dynamic array public: //constructors IntArray(); IntArray(int); IntArray(int, int); //destructor having issues when compiling wont do it completely /* ~IntArray() { delete dArray; } */ //set methods void setName(string); //get methods string getName(); //returns name int low(); //returns lowIndice int high(); //returns high indice //operator overloading friend ostream& operator << (ostream&, IntArray&); int& operator[](int); //subscript IntArray operator+(IntArray&); //additon IntArray operator+=(IntArray&); IntArray& operator=(IntArray&); //asignment bool operator==(IntArray&); //comparsion bool operator!=(IntArray&); //comparsion };
#endif /* intarray_h */ ——————————————————- //#include "IntArray.hpp" #include <iostream> #include <string> #include <cstdlib> #include <fstream>
#include "intarray.h"
using namespace std; extern ofstream csis;
IntArray::IntArray() { size = 9; operator[](9); dArray = new int[size]; lowIndice = 0; highIndice = 9; elements = size + 1; }
IntArray::IntArray(int b) { size = b-1; operator[](b-1); dArray = new int[size]; lowIndice = 0; highIndice = b - 1; elements = b; }
IntArray::IntArray(int a, int b) { size = b; dArray = new int[size]; lowIndice = a; highIndice = b; elements = highIndice - lowIndice + 1; if (a > b) { cout << "Run-time Error: Illegal Array Bounds." << endl; cout << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; csis << "Run-time Error: Illgeal array bounds. " << endl; csis << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; } }
void IntArray::setName(string name){ arrayName = name; }
string IntArray::getName(){ return arrayName; }
int IntArray::low() {; return lowIndice; }
int IntArray::high() { return highIndice; }
ostream& operator<<(ostream& os, IntArray& a) { //displays the array object for (int i = a.low(); i <= a.high(); i++) os << a.getName() << "[" << i << "] = " << a.dArray[i] << " "; return os; }
int& IntArray::operator[](int k){ //if the index of the array is bigger than the size of the array. error will be shown. if (k > size) { cout << "Run-time Error: Illegal Index." << endl; cout << "Dignostic: Index cannot be bigger than size" << endl; csis << "Run-time Error: Illgeal Indez." << endl; csis << "Dignostic: Index cannot be bigger than size" << endl; } return dArray[k]; }
IntArray& IntArray::operator=(IntArray& b){ //if elements do not match up, they cannot be assigned to each other. error will be shown. if (elements != b.elements) { cout << "Runtime error: Length mismatch" << endl; cout << "Diagnostic: Unable to assign, lengths do not match up." << endl; csis << "Run-time Error: Length mismatch." << endl; csis <<"Dignostic: Unable to assign lengths do not match up" << endl; } return *this; }
IntArray IntArray::operator+(IntArray& b) { //object is copied to temp object with its indices. then temp object is added with b object to produce c object. IntArray temp; IntArray c; c.lowIndice = lowIndice; c.highIndice = highIndice; for (int i = lowIndice, k = b.lowIndice; k <= b.highIndice; i++, k++) { temp.dArray[i] = b.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { c.dArray[i] = dArray[i] + temp.dArray[i]; } return c; }
IntArray IntArray::operator+=(IntArray& letter){ //letter object is copied to temp object with its indices. then temp object is added to this object. IntArray temp; for (int i = lowIndice, k = letter.lowIndice; k <= letter.highIndice; i++, k++) { temp.dArray[i] = letter.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { dArray[i] = dArray[i] + temp.dArray[i]; } return *this; }
bool IntArray::operator==(IntArray& letter){ if (elements == letter.elements) { return 1; //return true } else { return 0; // return false } if (size == letter.size) { return 1; // return false } else { return 0; // return true } }
bool IntArray::operator!=(IntArray& letter){ if (elements == letter.elements) { return 0; // return false } else { return 1; // return true } if (size == letter.size) { return 0; // return false } else { return 1; // return true } } Help me with my program in c++ having issues it has issues compiling all the way need it to get to test 20
//main.cpp #include <iostream> #include <iomanip> #include <fstream> #include <stdlib.h> #include "iadrv.h" #include "intarray.h" using namespace std; ofstream csis; int main() { csis.open("csis.txt"); test1(); test2(); test3(); test4(); test5(); test6(); test7(); test8(); test9(); test10(); test11(); test12(); test13(); test14(); test15(); test16(); test17(); test18(); test19(); test20(); csis.close(); } void test1() { cout << "1. Array declared with single integer: IntArray a(10);" << endl << endl; csis << "1. Array declared with single integer: IntArray a(10);" << endl << endl; IntArray a(10); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; wait(); } void test2() { cout << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; csis << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; IntArray b(-3, 6); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); } void test3() { cout << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; csis << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test4() { cout << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; csis << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; IntArray d(5, 5); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; wait(); } void test5() { cout << "5. Array declared with no integers: IntArray z;" << endl << endl; csis << "5. Array declared with no integers: IntArray z;" << endl << endl; IntArray z; for(int i = z.low(); i <= z.high(); i++) z[i] = i * 10; z.setName(" z"); cout << z << endl; csis << z << endl; wait(); } void test6() { cout << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; cout << " Intarray e(c);" << endl << endl; csis << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; csis << " Intarray e(c);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; IntArray e(c); e.setName(" e"); cout << e << endl; csis << e << endl; wait(); } void test7() { cout << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; cout << " IntArray g(5, 8);" << endl; cout << " f = g;" << endl << endl; csis << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; csis << " IntArray g(5, 8);" << endl; csis << " f = g;" << endl << endl; IntArray f(1, 4); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; IntArray g(5, 8); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; wait(); f = g; cout << f << endl; cout << g << endl; csis << f << endl; csis << g << endl; wait(); } void test8() { cout << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; cout << " IntArray k(6, 9);" << endl; cout << " IntArray l(1, 4);" << endl; cout << " j = k = l;" << endl << endl; csis << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; csis << " IntArray k(6, 9);" << endl; csis << " IntArray l(1, 4);" << endl; csis << " j = k = l;" << endl << endl; IntArray j(3, 6); for(int i = j.low(); i <= j.high(); i++) j[i] = i * 10; j.setName(" j"); cout << j << endl; csis << j << endl; IntArray k(6, 9); for(int i = k.low(); i <= k.high(); i++) k[i] = i * 10; k.setName(" k"); cout << k << endl; csis << k << endl; IntArray l(1, 4); for(int i = l.low(); i <= l.high(); i++) l[i] = i * 10; l.setName(" l"); cout << l << endl; csis << l << endl; wait(); j = k = l; cout << j << endl; cout << k << endl; cout << l << endl; csis << j << endl; csis << k << endl; csis << l << endl; wait(); } void test9() { cout << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; cout << " IntArray n(1, 5);" << endl; cout << " m == n" << endl << endl; csis << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; csis << " IntArray n(1, 5);" << endl; csis << " m == n" << endl << endl; IntArray m(3, 7); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(1, 5); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; cout << "Returns " << (m == n ? "True." : "False.") << endl << endl; csis << m << endl; csis << n << endl; csis << "Returns " << (m == n ? "True." : "False.") << endl << endl; wait(); } void test10() { cout << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; cout << " IntArray p(1, 5);" << endl; cout << " o == p" << endl << endl; csis << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; csis << " IntArray p(1, 5);" << endl; csis << " o == p" << endl << endl; IntArray o(3, 7); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; IntArray p(1, 5); for(int i = p.low(); i <= p.high(); i++) p[i] = i * 10; p.setName(" p"); cout << p << endl; cout << "Returns " << (o == p ? "True." : "False.") << endl << endl; csis << p << endl; csis << "Returns " << (o == p ? "True." : "False.") << endl << endl; wait(); } void test11() { cout << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; cout << " IntArray r(1, 4);" << endl; cout << " q == r;" << endl << endl; csis << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; csis << " IntArray r(1, 4);" << endl; csis << " q == r;" << endl << endl; IntArray q(1, 3); for(int i = q.low(); i <= q.high(); i++) q[i] = i * 10; q.setName("q"); cout << q << endl; csis << q << endl; IntArray r(1, 4); for(int i = r.low(); i <= r.high(); i++) r[i] = i * 10; r.setName(" r"); cout << r << endl; cout << "Returns " << (q == r ? "True." : "False.") << endl << endl; csis << r << endl; csis << "Returns " << (q == r ? "True." : "False.") << endl << endl; wait(); } void test12() { cout << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; cout << " IntArray t(1, 5);" << endl; cout << " s != t;" << endl << endl; csis << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; csis << " IntArray t(1, 5);" << endl; csis << " s != t;" << endl << endl; IntArray s(3, 7); for(int i = s.low(); i <= s.high(); i++) s[i] = i * 10; s.setName("s"); cout << s << endl; csis << s << endl; IntArray t(1, 5); for(int i = t.low(); i <= t.high(); i++) t[i] = i * 10; t.setName(" t"); cout << t << endl; csis << t << endl; wait(); s = t; cout << s << endl; cout << t << endl; cout << "Returns " << (s != t ? "True." : "False.") << endl << endl; csis << s << endl; csis << t << endl; csis << "Returns " << (s != t ? "True." : "False.") << endl << endl; wait(); } void test13() { cout << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; cout << " IntArray v(1, 5);" << endl; cout << " u != v;" << endl << endl; csis << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; csis << " IntArray v(1, 5);" << endl; csis << " u != v;" << endl << endl; IntArray u(3, 7); for(int i = u.low(); i <= u.high(); i++) u[i] = i * 10; u.setName(" u"); cout << u << endl; csis << u << endl; IntArray v(1, 5); for(int i = v.low(); i <= v.high(); i++) v[i] = i * 10; v.setName(" v"); cout << v << endl; cout << "Returns " << (u != v ? "True." : "False.") << endl << endl; csis << v << endl; csis << "Returns " << (u != v ? "True." : "False.") << endl << endl; wait(); } void test14() { cout << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; cout << " IntArray x(1, 4);" << endl; cout << " w != x;" << endl << endl; csis << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; csis << " IntArray x(1, 4);" << endl; csis << " w != x;" << endl << endl; IntArray w(1, 3); for(int i = w.low(); i <= w.high(); i++) w[i] = i * 10; w.setName(" w"); cout << w << endl; csis << w << endl; IntArray x(1, 4); for(int i = x.low(); i <= x.high(); i++) x[i] = i * 10; x.setName(" x"); cout << x << endl; cout << "Returns " << (w != x ? "True." : "False.") << endl << endl; csis << x << endl; csis << "Returns " << (w != x ? "True." : "False.") << endl << endl; wait(); } void test15() { cout << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; cout << " IntArray b(4, 8);" << endl; cout << " IntArray c = a + b;" << endl << endl; csis << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; csis << " IntArray b(4, 8);" << endl; csis << " IntArray c = a + b;" << endl << endl; IntArray a(1, 5); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; IntArray b(4, 8); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); IntArray c = a + b; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test16() { cout << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; cout << " IntArray e(30, 33);" << endl; cout << " d += e;" << endl << endl; csis << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; csis << " IntArray e(30, 33);" << endl; csis << " d += e;" << endl << endl; IntArray d(10, 13); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; IntArray e(30, 33); for(int i = e.low(); i <= e.high(); i++) e[i] = i * 10; e.setName(" e"); cout << e << endl; csis << e << endl; d += e; cout << d << endl; csis << d << endl; wait(); } void test17() { cout << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; csis << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; IntArray f(5, 2); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; wait(); } void test18() { cout << "18. Array with index out of range: IntArray g(10);" << endl; cout << " g[10] = 1;" << endl << endl; csis << "18. Array with index out of range: IntArray g(10);" << endl; csis << " g[10] = 1;" << endl << endl; IntArray g(10); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; g[10] = 1; wait(); } void test19() { cout << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; cout << " IntArray n(2, 4);" << endl; cout << " m = n;" << endl << endl; csis << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; csis << " IntArray n(2, 4);" << endl; csis << " m = n;" << endl << endl; IntArray m(1, 4); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(2, 4); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; csis << m << endl; csis << n << endl; wait(); } void test20() { cout << "20. Array subscript operator: IntArray o(7, 8);" << endl; cout << " o[7] = 25;" << endl; cout << " o[8] = o[7];" << endl << endl; csis << "20. Array subscript operator: IntArray o(7, 8);" << endl; csis << " o[7] = 25;" << endl; csis << " o[8] = o[7];" << endl << endl; IntArray o(7, 8); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; o[7] = 25; o[8] = o[7]; cout << o << endl; csis << o << endl; wait(); } void wait() { char buf; cout << "Press any key to continue." << endl; cin.get(buf); } ———————————————————— #ifndef iadrv_h #define iadrv_h
#include "intarray.h"
int main(); void test1(); void test2(); void test3(); void test4(); void test5(); void test6(); void test7(); void test8(); void test9(); void test10(); void test11(); void test12(); void test13(); void test14(); void test15(); void test16(); void test17(); void test18(); void test19(); void test20(); void wait();
#endif /* iadrv_h */ ———————————————————- #ifndef intarray_h #define intarray_h
#include <iostream> #include <fstream> using namespace std;
class IntArray { private: string arrayName; int lowIndice; //low indice int highIndice; //high indice int elements; //number of elements int size; //size int *dArray; //dynamic array public: //constructors IntArray(); IntArray(int); IntArray(int, int); //destructor having issues when compiling wont do it completely /* ~IntArray() { delete dArray; } */ //set methods void setName(string); //get methods string getName(); //returns name int low(); //returns lowIndice int high(); //returns high indice //operator overloading friend ostream& operator << (ostream&, IntArray&); int& operator[](int); //subscript IntArray operator+(IntArray&); //additon IntArray operator+=(IntArray&); IntArray& operator=(IntArray&); //asignment bool operator==(IntArray&); //comparsion bool operator!=(IntArray&); //comparsion };
#endif /* intarray_h */ ——————————————————- //#include "IntArray.hpp" #include <iostream> #include <string> #include <cstdlib> #include <fstream>
#include "intarray.h"
using namespace std; extern ofstream csis;
IntArray::IntArray() { size = 9; operator[](9); dArray = new int[size]; lowIndice = 0; highIndice = 9; elements = size + 1; }
IntArray::IntArray(int b) { size = b-1; operator[](b-1); dArray = new int[size]; lowIndice = 0; highIndice = b - 1; elements = b; }
IntArray::IntArray(int a, int b) { size = b; dArray = new int[size]; lowIndice = a; highIndice = b; elements = highIndice - lowIndice + 1; if (a > b) { cout << "Run-time Error: Illegal Array Bounds." << endl; cout << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; csis << "Run-time Error: Illgeal array bounds. " << endl; csis << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; } }
void IntArray::setName(string name){ arrayName = name; }
string IntArray::getName(){ return arrayName; }
int IntArray::low() {; return lowIndice; }
int IntArray::high() { return highIndice; }
ostream& operator<<(ostream& os, IntArray& a) { //displays the array object for (int i = a.low(); i <= a.high(); i++) os << a.getName() << "[" << i << "] = " << a.dArray[i] << " "; return os; }
int& IntArray::operator[](int k){ //if the index of the array is bigger than the size of the array. error will be shown. if (k > size) { cout << "Run-time Error: Illegal Index." << endl; cout << "Dignostic: Index cannot be bigger than size" << endl; csis << "Run-time Error: Illgeal Indez." << endl; csis << "Dignostic: Index cannot be bigger than size" << endl; } return dArray[k]; }
IntArray& IntArray::operator=(IntArray& b){ //if elements do not match up, they cannot be assigned to each other. error will be shown. if (elements != b.elements) { cout << "Runtime error: Length mismatch" << endl; cout << "Diagnostic: Unable to assign, lengths do not match up." << endl; csis << "Run-time Error: Length mismatch." << endl; csis <<"Dignostic: Unable to assign lengths do not match up" << endl; } return *this; }
IntArray IntArray::operator+(IntArray& b) { //object is copied to temp object with its indices. then temp object is added with b object to produce c object. IntArray temp; IntArray c; c.lowIndice = lowIndice; c.highIndice = highIndice; for (int i = lowIndice, k = b.lowIndice; k <= b.highIndice; i++, k++) { temp.dArray[i] = b.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { c.dArray[i] = dArray[i] + temp.dArray[i]; } return c; }
IntArray IntArray::operator+=(IntArray& letter){ //letter object is copied to temp object with its indices. then temp object is added to this object. IntArray temp; for (int i = lowIndice, k = letter.lowIndice; k <= letter.highIndice; i++, k++) { temp.dArray[i] = letter.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { dArray[i] = dArray[i] + temp.dArray[i]; } return *this; }
bool IntArray::operator==(IntArray& letter){ if (elements == letter.elements) { return 1; //return true } else { return 0; // return false } if (size == letter.size) { return 1; // return false } else { return 0; // return true } }
bool IntArray::operator!=(IntArray& letter){ if (elements == letter.elements) { return 0; // return false } else { return 1; // return true } if (size == letter.size) { return 0; // return false } else { return 1; // return true } }
//main.cpp #include <iostream> #include <iomanip> #include <fstream> #include <stdlib.h> #include "iadrv.h" #include "intarray.h" using namespace std; ofstream csis; int main() { csis.open("csis.txt"); test1(); test2(); test3(); test4(); test5(); test6(); test7(); test8(); test9(); test10(); test11(); test12(); test13(); test14(); test15(); test16(); test17(); test18(); test19(); test20(); csis.close(); } void test1() { cout << "1. Array declared with single integer: IntArray a(10);" << endl << endl; csis << "1. Array declared with single integer: IntArray a(10);" << endl << endl; IntArray a(10); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; wait(); } void test2() { cout << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; csis << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; IntArray b(-3, 6); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); } void test3() { cout << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; csis << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test4() { cout << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; csis << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; IntArray d(5, 5); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; wait(); } void test5() { cout << "5. Array declared with no integers: IntArray z;" << endl << endl; csis << "5. Array declared with no integers: IntArray z;" << endl << endl; IntArray z; for(int i = z.low(); i <= z.high(); i++) z[i] = i * 10; z.setName(" z"); cout << z << endl; csis << z << endl; wait(); } void test6() { cout << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; cout << " Intarray e(c);" << endl << endl; csis << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; csis << " Intarray e(c);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; IntArray e(c); e.setName(" e"); cout << e << endl; csis << e << endl; wait(); } void test7() { cout << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; cout << " IntArray g(5, 8);" << endl; cout << " f = g;" << endl << endl; csis << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; csis << " IntArray g(5, 8);" << endl; csis << " f = g;" << endl << endl; IntArray f(1, 4); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; IntArray g(5, 8); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; wait(); f = g; cout << f << endl; cout << g << endl; csis << f << endl; csis << g << endl; wait(); } void test8() { cout << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; cout << " IntArray k(6, 9);" << endl; cout << " IntArray l(1, 4);" << endl; cout << " j = k = l;" << endl << endl; csis << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; csis << " IntArray k(6, 9);" << endl; csis << " IntArray l(1, 4);" << endl; csis << " j = k = l;" << endl << endl; IntArray j(3, 6); for(int i = j.low(); i <= j.high(); i++) j[i] = i * 10; j.setName(" j"); cout << j << endl; csis << j << endl; IntArray k(6, 9); for(int i = k.low(); i <= k.high(); i++) k[i] = i * 10; k.setName(" k"); cout << k << endl; csis << k << endl; IntArray l(1, 4); for(int i = l.low(); i <= l.high(); i++) l[i] = i * 10; l.setName(" l"); cout << l << endl; csis << l << endl; wait(); j = k = l; cout << j << endl; cout << k << endl; cout << l << endl; csis << j << endl; csis << k << endl; csis << l << endl; wait(); } void test9() { cout << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; cout << " IntArray n(1, 5);" << endl; cout << " m == n" << endl << endl; csis << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; csis << " IntArray n(1, 5);" << endl; csis << " m == n" << endl << endl; IntArray m(3, 7); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(1, 5); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; cout << "Returns " << (m == n ? "True." : "False.") << endl << endl; csis << m << endl; csis << n << endl; csis << "Returns " << (m == n ? "True." : "False.") << endl << endl; wait(); } void test10() { cout << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; cout << " IntArray p(1, 5);" << endl; cout << " o == p" << endl << endl; csis << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; csis << " IntArray p(1, 5);" << endl; csis << " o == p" << endl << endl; IntArray o(3, 7); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; IntArray p(1, 5); for(int i = p.low(); i <= p.high(); i++) p[i] = i * 10; p.setName(" p"); cout << p << endl; cout << "Returns " << (o == p ? "True." : "False.") << endl << endl; csis << p << endl; csis << "Returns " << (o == p ? "True." : "False.") << endl << endl; wait(); } void test11() { cout << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; cout << " IntArray r(1, 4);" << endl; cout << " q == r;" << endl << endl; csis << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; csis << " IntArray r(1, 4);" << endl; csis << " q == r;" << endl << endl; IntArray q(1, 3); for(int i = q.low(); i <= q.high(); i++) q[i] = i * 10; q.setName("q"); cout << q << endl; csis << q << endl; IntArray r(1, 4); for(int i = r.low(); i <= r.high(); i++) r[i] = i * 10; r.setName(" r"); cout << r << endl; cout << "Returns " << (q == r ? "True." : "False.") << endl << endl; csis << r << endl; csis << "Returns " << (q == r ? "True." : "False.") << endl << endl; wait(); } void test12() { cout << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; cout << " IntArray t(1, 5);" << endl; cout << " s != t;" << endl << endl; csis << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; csis << " IntArray t(1, 5);" << endl; csis << " s != t;" << endl << endl; IntArray s(3, 7); for(int i = s.low(); i <= s.high(); i++) s[i] = i * 10; s.setName("s"); cout << s << endl; csis << s << endl; IntArray t(1, 5); for(int i = t.low(); i <= t.high(); i++) t[i] = i * 10; t.setName(" t"); cout << t << endl; csis << t << endl; wait(); s = t; cout << s << endl; cout << t << endl; cout << "Returns " << (s != t ? "True." : "False.") << endl << endl; csis << s << endl; csis << t << endl; csis << "Returns " << (s != t ? "True." : "False.") << endl << endl; wait(); } void test13() { cout << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; cout << " IntArray v(1, 5);" << endl; cout << " u != v;" << endl << endl; csis << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; csis << " IntArray v(1, 5);" << endl; csis << " u != v;" << endl << endl; IntArray u(3, 7); for(int i = u.low(); i <= u.high(); i++) u[i] = i * 10; u.setName(" u"); cout << u << endl; csis << u << endl; IntArray v(1, 5); for(int i = v.low(); i <= v.high(); i++) v[i] = i * 10; v.setName(" v"); cout << v << endl; cout << "Returns " << (u != v ? "True." : "False.") << endl << endl; csis << v << endl; csis << "Returns " << (u != v ? "True." : "False.") << endl << endl; wait(); } void test14() { cout << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; cout << " IntArray x(1, 4);" << endl; cout << " w != x;" << endl << endl; csis << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; csis << " IntArray x(1, 4);" << endl; csis << " w != x;" << endl << endl; IntArray w(1, 3); for(int i = w.low(); i <= w.high(); i++) w[i] = i * 10; w.setName(" w"); cout << w << endl; csis << w << endl; IntArray x(1, 4); for(int i = x.low(); i <= x.high(); i++) x[i] = i * 10; x.setName(" x"); cout << x << endl; cout << "Returns " << (w != x ? "True." : "False.") << endl << endl; csis << x << endl; csis << "Returns " << (w != x ? "True." : "False.") << endl << endl; wait(); } void test15() { cout << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; cout << " IntArray b(4, 8);" << endl; cout << " IntArray c = a + b;" << endl << endl; csis << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; csis << " IntArray b(4, 8);" << endl; csis << " IntArray c = a + b;" << endl << endl; IntArray a(1, 5); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; IntArray b(4, 8); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); IntArray c = a + b; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test16() { cout << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; cout << " IntArray e(30, 33);" << endl; cout << " d += e;" << endl << endl; csis << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; csis << " IntArray e(30, 33);" << endl; csis << " d += e;" << endl << endl; IntArray d(10, 13); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; IntArray e(30, 33); for(int i = e.low(); i <= e.high(); i++) e[i] = i * 10; e.setName(" e"); cout << e << endl; csis << e << endl; d += e; cout << d << endl; csis << d << endl; wait(); } void test17() { cout << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; csis << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; IntArray f(5, 2); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; wait(); } void test18() { cout << "18. Array with index out of range: IntArray g(10);" << endl; cout << " g[10] = 1;" << endl << endl; csis << "18. Array with index out of range: IntArray g(10);" << endl; csis << " g[10] = 1;" << endl << endl; IntArray g(10); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; g[10] = 1; wait(); } void test19() { cout << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; cout << " IntArray n(2, 4);" << endl; cout << " m = n;" << endl << endl; csis << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; csis << " IntArray n(2, 4);" << endl; csis << " m = n;" << endl << endl; IntArray m(1, 4); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(2, 4); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; csis << m << endl; csis << n << endl; wait(); } void test20() { cout << "20. Array subscript operator: IntArray o(7, 8);" << endl; cout << " o[7] = 25;" << endl; cout << " o[8] = o[7];" << endl << endl; csis << "20. Array subscript operator: IntArray o(7, 8);" << endl; csis << " o[7] = 25;" << endl; csis << " o[8] = o[7];" << endl << endl; IntArray o(7, 8); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; o[7] = 25; o[8] = o[7]; cout << o << endl; csis << o << endl; wait(); } void wait() { char buf; cout << "Press any key to continue." << endl; cin.get(buf); } ———————————————————— #ifndef iadrv_h #define iadrv_h
#include "intarray.h"
int main(); void test1(); void test2(); void test3(); void test4(); void test5(); void test6(); void test7(); void test8(); void test9(); void test10(); void test11(); void test12(); void test13(); void test14(); void test15(); void test16(); void test17(); void test18(); void test19(); void test20(); void wait();
#endif /* iadrv_h */ ———————————————————- #ifndef intarray_h #define intarray_h
#include <iostream> #include <fstream> using namespace std;
class IntArray { private: string arrayName; int lowIndice; //low indice int highIndice; //high indice int elements; //number of elements int size; //size int *dArray; //dynamic array public: //constructors IntArray(); IntArray(int); IntArray(int, int); //destructor having issues when compiling wont do it completely /* ~IntArray() { delete dArray; } */ //set methods void setName(string); //get methods string getName(); //returns name int low(); //returns lowIndice int high(); //returns high indice //operator overloading friend ostream& operator << (ostream&, IntArray&); int& operator[](int); //subscript IntArray operator+(IntArray&); //additon IntArray operator+=(IntArray&); IntArray& operator=(IntArray&); //asignment bool operator==(IntArray&); //comparsion bool operator!=(IntArray&); //comparsion };
#endif /* intarray_h */ ——————————————————- //#include "IntArray.hpp" #include <iostream> #include <string> #include <cstdlib> #include <fstream>
#include "intarray.h"
using namespace std; extern ofstream csis;
IntArray::IntArray() { size = 9; operator[](9); dArray = new int[size]; lowIndice = 0; highIndice = 9; elements = size + 1; }
IntArray::IntArray(int b) { size = b-1; operator[](b-1); dArray = new int[size]; lowIndice = 0; highIndice = b - 1; elements = b; }
IntArray::IntArray(int a, int b) { size = b; dArray = new int[size]; lowIndice = a; highIndice = b; elements = highIndice - lowIndice + 1; if (a > b) { cout << "Run-time Error: Illegal Array Bounds." << endl; cout << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; csis << "Run-time Error: Illgeal array bounds. " << endl; csis << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; } }
void IntArray::setName(string name){ arrayName = name; }
string IntArray::getName(){ return arrayName; }
int IntArray::low() {; return lowIndice; }
int IntArray::high() { return highIndice; }
ostream& operator<<(ostream& os, IntArray& a) { //displays the array object for (int i = a.low(); i <= a.high(); i++) os << a.getName() << "[" << i << "] = " << a.dArray[i] << " "; return os; }
int& IntArray::operator[](int k){ //if the index of the array is bigger than the size of the array. error will be shown. if (k > size) { cout << "Run-time Error: Illegal Index." << endl; cout << "Dignostic: Index cannot be bigger than size" << endl; csis << "Run-time Error: Illgeal Indez." << endl; csis << "Dignostic: Index cannot be bigger than size" << endl; } return dArray[k]; }
IntArray& IntArray::operator=(IntArray& b){ //if elements do not match up, they cannot be assigned to each other. error will be shown. if (elements != b.elements) { cout << "Runtime error: Length mismatch" << endl; cout << "Diagnostic: Unable to assign, lengths do not match up." << endl; csis << "Run-time Error: Length mismatch." << endl; csis <<"Dignostic: Unable to assign lengths do not match up" << endl; } return *this; }
IntArray IntArray::operator+(IntArray& b) { //object is copied to temp object with its indices. then temp object is added with b object to produce c object. IntArray temp; IntArray c; c.lowIndice = lowIndice; c.highIndice = highIndice; for (int i = lowIndice, k = b.lowIndice; k <= b.highIndice; i++, k++) { temp.dArray[i] = b.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { c.dArray[i] = dArray[i] + temp.dArray[i]; } return c; }
IntArray IntArray::operator+=(IntArray& letter){ //letter object is copied to temp object with its indices. then temp object is added to this object. IntArray temp; for (int i = lowIndice, k = letter.lowIndice; k <= letter.highIndice; i++, k++) { temp.dArray[i] = letter.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { dArray[i] = dArray[i] + temp.dArray[i]; } return *this; }
bool IntArray::operator==(IntArray& letter){ if (elements == letter.elements) { return 1; //return true } else { return 0; // return false } if (size == letter.size) { return 1; // return false } else { return 0; // return true } }
bool IntArray::operator!=(IntArray& letter){ if (elements == letter.elements) { return 0; // return false } else { return 1; // return true } if (size == letter.size) { return 0; // return false } else { return 1; // return true } } //main.cpp #include <iostream> #include <iomanip> #include <fstream> #include <stdlib.h> #include "iadrv.h" #include "intarray.h" using namespace std; ofstream csis; int main() { csis.open("csis.txt"); test1(); test2(); test3(); test4(); test5(); test6(); test7(); test8(); test9(); test10(); test11(); test12(); test13(); test14(); test15(); test16(); test17(); test18(); test19(); test20(); csis.close(); } void test1() { cout << "1. Array declared with single integer: IntArray a(10);" << endl << endl; csis << "1. Array declared with single integer: IntArray a(10);" << endl << endl; IntArray a(10); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; wait(); } void test2() { cout << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; csis << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; IntArray b(-3, 6); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); } void test3() { cout << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; csis << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test4() { cout << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; csis << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; IntArray d(5, 5); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; wait(); } void test5() { cout << "5. Array declared with no integers: IntArray z;" << endl << endl; csis << "5. Array declared with no integers: IntArray z;" << endl << endl; IntArray z; for(int i = z.low(); i <= z.high(); i++) z[i] = i * 10; z.setName(" z"); cout << z << endl; csis << z << endl; wait(); } void test6() { cout << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; cout << " Intarray e(c);" << endl << endl; csis << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; csis << " Intarray e(c);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; IntArray e(c); e.setName(" e"); cout << e << endl; csis << e << endl; wait(); } void test7() { cout << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; cout << " IntArray g(5, 8);" << endl; cout << " f = g;" << endl << endl; csis << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; csis << " IntArray g(5, 8);" << endl; csis << " f = g;" << endl << endl; IntArray f(1, 4); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; IntArray g(5, 8); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; wait(); f = g; cout << f << endl; cout << g << endl; csis << f << endl; csis << g << endl; wait(); } void test8() { cout << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; cout << " IntArray k(6, 9);" << endl; cout << " IntArray l(1, 4);" << endl; cout << " j = k = l;" << endl << endl; csis << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; csis << " IntArray k(6, 9);" << endl; csis << " IntArray l(1, 4);" << endl; csis << " j = k = l;" << endl << endl; IntArray j(3, 6); for(int i = j.low(); i <= j.high(); i++) j[i] = i * 10; j.setName(" j"); cout << j << endl; csis << j << endl; IntArray k(6, 9); for(int i = k.low(); i <= k.high(); i++) k[i] = i * 10; k.setName(" k"); cout << k << endl; csis << k << endl; IntArray l(1, 4); for(int i = l.low(); i <= l.high(); i++) l[i] = i * 10; l.setName(" l"); cout << l << endl; csis << l << endl; wait(); j = k = l; cout << j << endl; cout << k << endl; cout << l << endl; csis << j << endl; csis << k << endl; csis << l << endl; wait(); } void test9() { cout << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; cout << " IntArray n(1, 5);" << endl; cout << " m == n" << endl << endl; csis << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; csis << " IntArray n(1, 5);" << endl; csis << " m == n" << endl << endl; IntArray m(3, 7); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(1, 5); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; cout << "Returns " << (m == n ? "True." : "False.") << endl << endl; csis << m << endl; csis << n << endl; csis << "Returns " << (m == n ? "True." : "False.") << endl << endl; wait(); } void test10() { cout << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; cout << " IntArray p(1, 5);" << endl; cout << " o == p" << endl << endl; csis << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; csis << " IntArray p(1, 5);" << endl; csis << " o == p" << endl << endl; IntArray o(3, 7); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; IntArray p(1, 5); for(int i = p.low(); i <= p.high(); i++) p[i] = i * 10; p.setName(" p"); cout << p << endl; cout << "Returns " << (o == p ? "True." : "False.") << endl << endl; csis << p << endl; csis << "Returns " << (o == p ? "True." : "False.") << endl << endl; wait(); } void test11() { cout << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; cout << " IntArray r(1, 4);" << endl; cout << " q == r;" << endl << endl; csis << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; csis << " IntArray r(1, 4);" << endl; csis << " q == r;" << endl << endl; IntArray q(1, 3); for(int i = q.low(); i <= q.high(); i++) q[i] = i * 10; q.setName("q"); cout << q << endl; csis << q << endl; IntArray r(1, 4); for(int i = r.low(); i <= r.high(); i++) r[i] = i * 10; r.setName(" r"); cout << r << endl; cout << "Returns " << (q == r ? "True." : "False.") << endl << endl; csis << r << endl; csis << "Returns " << (q == r ? "True." : "False.") << endl << endl; wait(); } void test12() { cout << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; cout << " IntArray t(1, 5);" << endl; cout << " s != t;" << endl << endl; csis << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; csis << " IntArray t(1, 5);" << endl; csis << " s != t;" << endl << endl; IntArray s(3, 7); for(int i = s.low(); i <= s.high(); i++) s[i] = i * 10; s.setName("s"); cout << s << endl; csis << s << endl; IntArray t(1, 5); for(int i = t.low(); i <= t.high(); i++) t[i] = i * 10; t.setName(" t"); cout << t << endl; csis << t << endl; wait(); s = t; cout << s << endl; cout << t << endl; cout << "Returns " << (s != t ? "True." : "False.") << endl << endl; csis << s << endl; csis << t << endl; csis << "Returns " << (s != t ? "True." : "False.") << endl << endl; wait(); } void test13() { cout << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; cout << " IntArray v(1, 5);" << endl; cout << " u != v;" << endl << endl; csis << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; csis << " IntArray v(1, 5);" << endl; csis << " u != v;" << endl << endl; IntArray u(3, 7); for(int i = u.low(); i <= u.high(); i++) u[i] = i * 10; u.setName(" u"); cout << u << endl; csis << u << endl; IntArray v(1, 5); for(int i = v.low(); i <= v.high(); i++) v[i] = i * 10; v.setName(" v"); cout << v << endl; cout << "Returns " << (u != v ? "True." : "False.") << endl << endl; csis << v << endl; csis << "Returns " << (u != v ? "True." : "False.") << endl << endl; wait(); } void test14() { cout << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; cout << " IntArray x(1, 4);" << endl; cout << " w != x;" << endl << endl; csis << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; csis << " IntArray x(1, 4);" << endl; csis << " w != x;" << endl << endl; IntArray w(1, 3); for(int i = w.low(); i <= w.high(); i++) w[i] = i * 10; w.setName(" w"); cout << w << endl; csis << w << endl; IntArray x(1, 4); for(int i = x.low(); i <= x.high(); i++) x[i] = i * 10; x.setName(" x"); cout << x << endl; cout << "Returns " << (w != x ? "True." : "False.") << endl << endl; csis << x << endl; csis << "Returns " << (w != x ? "True." : "False.") << endl << endl; wait(); } void test15() { cout << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; cout << " IntArray b(4, 8);" << endl; cout << " IntArray c = a + b;" << endl << endl; csis << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; csis << " IntArray b(4, 8);" << endl; csis << " IntArray c = a + b;" << endl << endl; IntArray a(1, 5); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; IntArray b(4, 8); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); IntArray c = a + b; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test16() { cout << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; cout << " IntArray e(30, 33);" << endl; cout << " d += e;" << endl << endl; csis << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; csis << " IntArray e(30, 33);" << endl; csis << " d += e;" << endl << endl; IntArray d(10, 13); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; IntArray e(30, 33); for(int i = e.low(); i <= e.high(); i++) e[i] = i * 10; e.setName(" e"); cout << e << endl; csis << e << endl; d += e; cout << d << endl; csis << d << endl; wait(); } void test17() { cout << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; csis << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; IntArray f(5, 2); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; wait(); } void test18() { cout << "18. Array with index out of range: IntArray g(10);" << endl; cout << " g[10] = 1;" << endl << endl; csis << "18. Array with index out of range: IntArray g(10);" << endl; csis << " g[10] = 1;" << endl << endl; IntArray g(10); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; g[10] = 1; wait(); } void test19() { cout << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; cout << " IntArray n(2, 4);" << endl; cout << " m = n;" << endl << endl; csis << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; csis << " IntArray n(2, 4);" << endl; csis << " m = n;" << endl << endl; IntArray m(1, 4); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(2, 4); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; csis << m << endl; csis << n << endl; wait(); } void test20() { cout << "20. Array subscript operator: IntArray o(7, 8);" << endl; cout << " o[7] = 25;" << endl; cout << " o[8] = o[7];" << endl << endl; csis << "20. Array subscript operator: IntArray o(7, 8);" << endl; csis << " o[7] = 25;" << endl; csis << " o[8] = o[7];" << endl << endl; IntArray o(7, 8); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; o[7] = 25; o[8] = o[7]; cout << o << endl; csis << o << endl; wait(); } void wait() { char buf; cout << "Press any key to continue." << endl; cin.get(buf); } ———————————————————— #ifndef iadrv_h #define iadrv_h
#include "intarray.h"
int main(); void test1(); void test2(); void test3(); void test4(); void test5(); void test6(); void test7(); void test8(); void test9(); void test10(); void test11(); void test12(); void test13(); void test14(); void test15(); void test16(); void test17(); void test18(); void test19(); void test20(); void wait();
#endif /* iadrv_h */ ———————————————————- #ifndef intarray_h #define intarray_h
#include <iostream> #include <fstream> using namespace std;
class IntArray { private: string arrayName; int lowIndice; //low indice int highIndice; //high indice int elements; //number of elements int size; //size int *dArray; //dynamic array public: //constructors IntArray(); IntArray(int); IntArray(int, int); //destructor having issues when compiling wont do it completely /* ~IntArray() { delete dArray; } */ //set methods void setName(string); //get methods string getName(); //returns name int low(); //returns lowIndice int high(); //returns high indice //operator overloading friend ostream& operator << (ostream&, IntArray&); int& operator[](int); //subscript IntArray operator+(IntArray&); //additon IntArray operator+=(IntArray&); IntArray& operator=(IntArray&); //asignment bool operator==(IntArray&); //comparsion bool operator!=(IntArray&); //comparsion };
#endif /* intarray_h */ ——————————————————- //#include "IntArray.hpp" #include <iostream> #include <string> #include <cstdlib> #include <fstream>
#include "intarray.h"
using namespace std; extern ofstream csis;
IntArray::IntArray() { size = 9; operator[](9); dArray = new int[size]; lowIndice = 0; highIndice = 9; elements = size + 1; }
IntArray::IntArray(int b) { size = b-1; operator[](b-1); dArray = new int[size]; lowIndice = 0; highIndice = b - 1; elements = b; }
IntArray::IntArray(int a, int b) { size = b; dArray = new int[size]; lowIndice = a; highIndice = b; elements = highIndice - lowIndice + 1; if (a > b) { cout << "Run-time Error: Illegal Array Bounds." << endl; cout << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; csis << "Run-time Error: Illgeal array bounds. " << endl; csis << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; } }
void IntArray::setName(string name){ arrayName = name; }
string IntArray::getName(){ return arrayName; }
int IntArray::low() {; return lowIndice; }
int IntArray::high() { return highIndice; }
ostream& operator<<(ostream& os, IntArray& a) { //displays the array object for (int i = a.low(); i <= a.high(); i++) os << a.getName() << "[" << i << "] = " << a.dArray[i] << " "; return os; }
int& IntArray::operator[](int k){ //if the index of the array is bigger than the size of the array. error will be shown. if (k > size) { cout << "Run-time Error: Illegal Index." << endl; cout << "Dignostic: Index cannot be bigger than size" << endl; csis << "Run-time Error: Illgeal Indez." << endl; csis << "Dignostic: Index cannot be bigger than size" << endl; } return dArray[k]; }
IntArray& IntArray::operator=(IntArray& b){ //if elements do not match up, they cannot be assigned to each other. error will be shown. if (elements != b.elements) { cout << "Runtime error: Length mismatch" << endl; cout << "Diagnostic: Unable to assign, lengths do not match up." << endl; csis << "Run-time Error: Length mismatch." << endl; csis <<"Dignostic: Unable to assign lengths do not match up" << endl; } return *this; }
IntArray IntArray::operator+(IntArray& b) { //object is copied to temp object with its indices. then temp object is added with b object to produce c object. IntArray temp; IntArray c; c.lowIndice = lowIndice; c.highIndice = highIndice; for (int i = lowIndice, k = b.lowIndice; k <= b.highIndice; i++, k++) { temp.dArray[i] = b.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { c.dArray[i] = dArray[i] + temp.dArray[i]; } return c; }
IntArray IntArray::operator+=(IntArray& letter){ //letter object is copied to temp object with its indices. then temp object is added to this object. IntArray temp; for (int i = lowIndice, k = letter.lowIndice; k <= letter.highIndice; i++, k++) { temp.dArray[i] = letter.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { dArray[i] = dArray[i] + temp.dArray[i]; } return *this; }
bool IntArray::operator==(IntArray& letter){ if (elements == letter.elements) { return 1; //return true } else { return 0; // return false } if (size == letter.size) { return 1; // return false } else { return 0; // return true } }
bool IntArray::operator!=(IntArray& letter){ if (elements == letter.elements) { return 0; // return false } else { return 1; // return true } if (size == letter.size) { return 0; // return false } else { return 1; // return true } } #include <iostream> #include <iomanip> #include <fstream> #include <stdlib.h> #include "iadrv.h" #include "intarray.h" using namespace std; ofstream csis; int main() { csis.open("csis.txt"); test1(); test2(); test3(); test4(); test5(); test6(); test7(); test8(); test9(); test10(); test11(); test12(); test13(); test14(); test15(); test16(); test17(); test18(); test19(); test20(); csis.close(); } void test1() { cout << "1. Array declared with single integer: IntArray a(10);" << endl << endl; csis << "1. Array declared with single integer: IntArray a(10);" << endl << endl; IntArray a(10); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; wait(); } void test2() { cout << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; csis << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl; IntArray b(-3, 6); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); } void test3() { cout << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; csis << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test4() { cout << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; csis << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl; IntArray d(5, 5); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; wait(); } void test5() { cout << "5. Array declared with no integers: IntArray z;" << endl << endl; csis << "5. Array declared with no integers: IntArray z;" << endl << endl; IntArray z; for(int i = z.low(); i <= z.high(); i++) z[i] = i * 10; z.setName(" z"); cout << z << endl; csis << z << endl; wait(); } void test6() { cout << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; cout << " Intarray e(c);" << endl << endl; csis << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl; csis << " Intarray e(c);" << endl << endl; IntArray c(6, 8); for(int i = c.low(); i <= c.high(); i++) c[i] = i * 10; c.setName(" c"); cout << c << endl; csis << c << endl; IntArray e(c); e.setName(" e"); cout << e << endl; csis << e << endl; wait(); } void test7() { cout << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; cout << " IntArray g(5, 8);" << endl; cout << " f = g;" << endl << endl; csis << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl; csis << " IntArray g(5, 8);" << endl; csis << " f = g;" << endl << endl; IntArray f(1, 4); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; IntArray g(5, 8); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; wait(); f = g; cout << f << endl; cout << g << endl; csis << f << endl; csis << g << endl; wait(); } void test8() { cout << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; cout << " IntArray k(6, 9);" << endl; cout << " IntArray l(1, 4);" << endl; cout << " j = k = l;" << endl << endl; csis << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl; csis << " IntArray k(6, 9);" << endl; csis << " IntArray l(1, 4);" << endl; csis << " j = k = l;" << endl << endl; IntArray j(3, 6); for(int i = j.low(); i <= j.high(); i++) j[i] = i * 10; j.setName(" j"); cout << j << endl; csis << j << endl; IntArray k(6, 9); for(int i = k.low(); i <= k.high(); i++) k[i] = i * 10; k.setName(" k"); cout << k << endl; csis << k << endl; IntArray l(1, 4); for(int i = l.low(); i <= l.high(); i++) l[i] = i * 10; l.setName(" l"); cout << l << endl; csis << l << endl; wait(); j = k = l; cout << j << endl; cout << k << endl; cout << l << endl; csis << j << endl; csis << k << endl; csis << l << endl; wait(); } void test9() { cout << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; cout << " IntArray n(1, 5);" << endl; cout << " m == n" << endl << endl; csis << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl; csis << " IntArray n(1, 5);" << endl; csis << " m == n" << endl << endl; IntArray m(3, 7); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(1, 5); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; cout << "Returns " << (m == n ? "True." : "False.") << endl << endl; csis << m << endl; csis << n << endl; csis << "Returns " << (m == n ? "True." : "False.") << endl << endl; wait(); } void test10() { cout << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; cout << " IntArray p(1, 5);" << endl; cout << " o == p" << endl << endl; csis << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl; csis << " IntArray p(1, 5);" << endl; csis << " o == p" << endl << endl; IntArray o(3, 7); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; IntArray p(1, 5); for(int i = p.low(); i <= p.high(); i++) p[i] = i * 10; p.setName(" p"); cout << p << endl; cout << "Returns " << (o == p ? "True." : "False.") << endl << endl; csis << p << endl; csis << "Returns " << (o == p ? "True." : "False.") << endl << endl; wait(); } void test11() { cout << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; cout << " IntArray r(1, 4);" << endl; cout << " q == r;" << endl << endl; csis << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl; csis << " IntArray r(1, 4);" << endl; csis << " q == r;" << endl << endl; IntArray q(1, 3); for(int i = q.low(); i <= q.high(); i++) q[i] = i * 10; q.setName("q"); cout << q << endl; csis << q << endl; IntArray r(1, 4); for(int i = r.low(); i <= r.high(); i++) r[i] = i * 10; r.setName(" r"); cout << r << endl; cout << "Returns " << (q == r ? "True." : "False.") << endl << endl; csis << r << endl; csis << "Returns " << (q == r ? "True." : "False.") << endl << endl; wait(); } void test12() { cout << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; cout << " IntArray t(1, 5);" << endl; cout << " s != t;" << endl << endl; csis << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl; csis << " IntArray t(1, 5);" << endl; csis << " s != t;" << endl << endl; IntArray s(3, 7); for(int i = s.low(); i <= s.high(); i++) s[i] = i * 10; s.setName("s"); cout << s << endl; csis << s << endl; IntArray t(1, 5); for(int i = t.low(); i <= t.high(); i++) t[i] = i * 10; t.setName(" t"); cout << t << endl; csis << t << endl; wait(); s = t; cout << s << endl; cout << t << endl; cout << "Returns " << (s != t ? "True." : "False.") << endl << endl; csis << s << endl; csis << t << endl; csis << "Returns " << (s != t ? "True." : "False.") << endl << endl; wait(); } void test13() { cout << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; cout << " IntArray v(1, 5);" << endl; cout << " u != v;" << endl << endl; csis << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl; csis << " IntArray v(1, 5);" << endl; csis << " u != v;" << endl << endl; IntArray u(3, 7); for(int i = u.low(); i <= u.high(); i++) u[i] = i * 10; u.setName(" u"); cout << u << endl; csis << u << endl; IntArray v(1, 5); for(int i = v.low(); i <= v.high(); i++) v[i] = i * 10; v.setName(" v"); cout << v << endl; cout << "Returns " << (u != v ? "True." : "False.") << endl << endl; csis << v << endl; csis << "Returns " << (u != v ? "True." : "False.") << endl << endl; wait(); } void test14() { cout << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; cout << " IntArray x(1, 4);" << endl; cout << " w != x;" << endl << endl; csis << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl; csis << " IntArray x(1, 4);" << endl; csis << " w != x;" << endl << endl; IntArray w(1, 3); for(int i = w.low(); i <= w.high(); i++) w[i] = i * 10; w.setName(" w"); cout << w << endl; csis << w << endl; IntArray x(1, 4); for(int i = x.low(); i <= x.high(); i++) x[i] = i * 10; x.setName(" x"); cout << x << endl; cout << "Returns " << (w != x ? "True." : "False.") << endl << endl; csis << x << endl; csis << "Returns " << (w != x ? "True." : "False.") << endl << endl; wait(); } void test15() { cout << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; cout << " IntArray b(4, 8);" << endl; cout << " IntArray c = a + b;" << endl << endl; csis << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl; csis << " IntArray b(4, 8);" << endl; csis << " IntArray c = a + b;" << endl << endl; IntArray a(1, 5); for(int i = a.low(); i <= a.high(); i++) a[i] = i * 10; a.setName(" a"); cout << a << endl; csis << a << endl; IntArray b(4, 8); for(int i = b.low(); i <= b.high(); i++) b[i] = i * 10; b.setName(" b"); cout << b << endl; csis << b << endl; wait(); IntArray c = a + b; c.setName(" c"); cout << c << endl; csis << c << endl; wait(); } void test16() { cout << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; cout << " IntArray e(30, 33);" << endl; cout << " d += e;" << endl << endl; csis << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl; csis << " IntArray e(30, 33);" << endl; csis << " d += e;" << endl << endl; IntArray d(10, 13); for(int i = d.low(); i <= d.high(); i++) d[i] = i * 10; d.setName(" d"); cout << d << endl; csis << d << endl; IntArray e(30, 33); for(int i = e.low(); i <= e.high(); i++) e[i] = i * 10; e.setName(" e"); cout << e << endl; csis << e << endl; d += e; cout << d << endl; csis << d << endl; wait(); } void test17() { cout << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; csis << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl; IntArray f(5, 2); for(int i = f.low(); i <= f.high(); i++) f[i] = i * 10; f.setName(" f"); cout << f << endl; csis << f << endl; wait(); } void test18() { cout << "18. Array with index out of range: IntArray g(10);" << endl; cout << " g[10] = 1;" << endl << endl; csis << "18. Array with index out of range: IntArray g(10);" << endl; csis << " g[10] = 1;" << endl << endl; IntArray g(10); for(int i = g.low(); i <= g.high(); i++) g[i] = i * 10; g.setName(" g"); cout << g << endl; csis << g << endl; g[10] = 1; wait(); } void test19() { cout << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; cout << " IntArray n(2, 4);" << endl; cout << " m = n;" << endl << endl; csis << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl; csis << " IntArray n(2, 4);" << endl; csis << " m = n;" << endl << endl; IntArray m(1, 4); for(int i = m.low(); i <= m.high(); i++) m[i] = i * 10; m.setName(" m"); cout << m << endl; csis << m << endl; IntArray n(2, 4); for(int i = n.low(); i <= n.high(); i++) n[i] = i * 10; n.setName(" n"); cout << n << endl; csis << n << endl; wait(); m = n; cout << m << endl; cout << n << endl; csis << m << endl; csis << n << endl; wait(); } void test20() { cout << "20. Array subscript operator: IntArray o(7, 8);" << endl; cout << " o[7] = 25;" << endl; cout << " o[8] = o[7];" << endl << endl; csis << "20. Array subscript operator: IntArray o(7, 8);" << endl; csis << " o[7] = 25;" << endl; csis << " o[8] = o[7];" << endl << endl; IntArray o(7, 8); for(int i = o.low(); i <= o.high(); i++) o[i] = i * 10; o.setName(" o"); cout << o << endl; csis << o << endl; o[7] = 25; o[8] = o[7]; cout << o << endl; csis << o << endl; wait(); } void wait() { char buf; cout << "Press any key to continue." << endl; cin.get(buf); } ———————————————————— #ifndef iadrv_h #define iadrv_h
#include "intarray.h"
int main(); void test1(); void test2(); void test3(); void test4(); void test5(); void test6(); void test7(); void test8(); void test9(); void test10(); void test11(); void test12(); void test13(); void test14(); void test15(); void test16(); void test17(); void test18(); void test19(); void test20(); void wait();
#endif /* iadrv_h */ ———————————————————- #ifndef intarray_h #define intarray_h
#include <iostream> #include <fstream> using namespace std;
class IntArray { private: string arrayName; int lowIndice; //low indice int highIndice; //high indice int elements; //number of elements int size; //size int *dArray; //dynamic array public: //constructors IntArray(); IntArray(int); IntArray(int, int); //destructor having issues when compiling wont do it completely /* ~IntArray() { delete dArray; } */ //set methods void setName(string); //get methods string getName(); //returns name int low(); //returns lowIndice int high(); //returns high indice //operator overloading friend ostream& operator << (ostream&, IntArray&); int& operator[](int); //subscript IntArray operator+(IntArray&); //additon IntArray operator+=(IntArray&); IntArray& operator=(IntArray&); //asignment bool operator==(IntArray&); //comparsion bool operator!=(IntArray&); //comparsion };
#endif /* intarray_h */ ——————————————————- //#include "IntArray.hpp" #include <iostream> #include <string> #include <cstdlib> #include <fstream>
#include "intarray.h"
using namespace std; extern ofstream csis;
IntArray::IntArray() { size = 9; operator[](9); dArray = new int[size]; lowIndice = 0; highIndice = 9; elements = size + 1; }
IntArray::IntArray(int b) { size = b-1; operator[](b-1); dArray = new int[size]; lowIndice = 0; highIndice = b - 1; elements = b; }
IntArray::IntArray(int a, int b) { size = b; dArray = new int[size]; lowIndice = a; highIndice = b; elements = highIndice - lowIndice + 1; if (a > b) { cout << "Run-time Error: Illegal Array Bounds." << endl; cout << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; csis << "Run-time Error: Illgeal array bounds. " << endl; csis << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl; } }
void IntArray::setName(string name){ arrayName = name; }
string IntArray::getName(){ return arrayName; }
int IntArray::low() {; return lowIndice; }
int IntArray::high() { return highIndice; }
ostream& operator<<(ostream& os, IntArray& a) { //displays the array object for (int i = a.low(); i <= a.high(); i++) os << a.getName() << "[" << i << "] = " << a.dArray[i] << " "; return os; }
int& IntArray::operator[](int k){ //if the index of the array is bigger than the size of the array. error will be shown. if (k > size) { cout << "Run-time Error: Illegal Index." << endl; cout << "Dignostic: Index cannot be bigger than size" << endl; csis << "Run-time Error: Illgeal Indez." << endl; csis << "Dignostic: Index cannot be bigger than size" << endl; } return dArray[k]; }
IntArray& IntArray::operator=(IntArray& b){ //if elements do not match up, they cannot be assigned to each other. error will be shown. if (elements != b.elements) { cout << "Runtime error: Length mismatch" << endl; cout << "Diagnostic: Unable to assign, lengths do not match up." << endl; csis << "Run-time Error: Length mismatch." << endl; csis <<"Dignostic: Unable to assign lengths do not match up" << endl; } return *this; }
IntArray IntArray::operator+(IntArray& b) { //object is copied to temp object with its indices. then temp object is added with b object to produce c object. IntArray temp; IntArray c; c.lowIndice = lowIndice; c.highIndice = highIndice; for (int i = lowIndice, k = b.lowIndice; k <= b.highIndice; i++, k++) { temp.dArray[i] = b.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { c.dArray[i] = dArray[i] + temp.dArray[i]; } return c; }
IntArray IntArray::operator+=(IntArray& letter){ //letter object is copied to temp object with its indices. then temp object is added to this object. IntArray temp; for (int i = lowIndice, k = letter.lowIndice; k <= letter.highIndice; i++, k++) { temp.dArray[i] = letter.dArray[k]; } for (int i = lowIndice; i <= highIndice; i++) { dArray[i] = dArray[i] + temp.dArray[i]; } return *this; }
bool IntArray::operator==(IntArray& letter){ if (elements == letter.elements) { return 1; //return true } else { return 0; // return false } if (size == letter.size) { return 1; // return false } else { return 0; // return true } }
bool IntArray::operator!=(IntArray& letter){ if (elements == letter.elements) { return 0; // return false } else { return 1; // return true } if (size == letter.size) { return 0; // return false } else { return 1; // return true } }
Explanation / Answer
The code worked fine for me. Since I am using Visual Studio, I had to include stdafx.h file at two places and it ran correctly.
1. main.cpp
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <fstream>
#include <stdlib.h>
#include "iadrv.h"
#include "intarray.h"
using namespace std;
ofstream csis;
void test1() {
cout << "1. Array declared with single integer: IntArray a(10);" << endl << endl;
csis << "1. Array declared with single integer: IntArray a(10);" << endl << endl;
IntArray a(10);
for (int i = a.low(); i <= a.high(); i++)
a[i] = i * 10;
a.setName(" a");
cout << a << endl;
csis << a << endl;
wait();
}
void test2() {
cout << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl;
csis << "2. Array declared with two integers: IntArray b(-3, 6);" << endl << endl;
IntArray b(-3, 6);
for (int i = b.low(); i <= b.high(); i++)
b[i] = i * 10;
b.setName(" b");
cout << b << endl;
csis << b << endl;
wait();
}
void test3() {
cout << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl;
csis << "3. Array declared with two integers: IntArray c(6, 8);" << endl << endl;
IntArray c(6, 8);
for (int i = c.low(); i <= c.high(); i++)
c[i] = i * 10;
c.setName(" c");
cout << c << endl;
csis << c << endl;
wait();
}
void test4() {
cout << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl;
csis << "4. Array declared with two identical integers: IntArray d(5, 5);" << endl << endl;
IntArray d(5, 5);
for (int i = d.low(); i <= d.high(); i++)
d[i] = i * 10;
d.setName(" d");
cout << d << endl;
csis << d << endl;
wait();
}
void test5() {
cout << "5. Array declared with no integers: IntArray z;" << endl << endl;
csis << "5. Array declared with no integers: IntArray z;" << endl << endl;
IntArray z;
for (int i = z.low(); i <= z.high(); i++)
z[i] = i * 10;
z.setName(" z");
cout << z << endl;
csis << z << endl;
wait();
}
void test6() {
cout << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl;
cout << " Intarray e(c);" << endl << endl;
csis << "6. Array declared with another object of type IntArray: IntArray c(6, 8);" << endl;
csis << " Intarray e(c);" << endl << endl;
IntArray c(6, 8);
for (int i = c.low(); i <= c.high(); i++)
c[i] = i * 10;
c.setName(" c");
cout << c << endl;
csis << c << endl;
IntArray e(c);
e.setName(" e");
cout << e << endl;
csis << e << endl;
wait();
}
void test7() {
cout << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl;
cout << " IntArray g(5, 8);" << endl;
cout << " f = g;" << endl << endl;
csis << "7. Array assigned to another array w/ different indices: IntArray f(1, 4);" << endl;
csis << " IntArray g(5, 8);" << endl;
csis << " f = g;" << endl << endl;
IntArray f(1, 4);
for (int i = f.low(); i <= f.high(); i++)
f[i] = i * 10;
f.setName(" f");
cout << f << endl;
csis << f << endl;
IntArray g(5, 8);
for (int i = g.low(); i <= g.high(); i++)
g[i] = i * 10;
g.setName(" g");
cout << g << endl;
csis << g << endl;
wait();
f = g;
cout << f << endl;
cout << g << endl;
csis << f << endl;
csis << g << endl;
wait();
}
void test8() {
cout << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl;
cout << " IntArray k(6, 9);" << endl;
cout << " IntArray l(1, 4);" << endl;
cout << " j = k = l;" << endl << endl;
csis << "8. Multiple array assignment with different indices: IntArray j(3, 6);" << endl;
csis << " IntArray k(6, 9);" << endl;
csis << " IntArray l(1, 4);" << endl;
csis << " j = k = l;" << endl << endl;
IntArray j(3, 6);
for (int i = j.low(); i <= j.high(); i++)
j[i] = i * 10;
j.setName(" j");
cout << j << endl;
csis << j << endl;
IntArray k(6, 9);
for (int i = k.low(); i <= k.high(); i++)
k[i] = i * 10;
k.setName(" k");
cout << k << endl;
csis << k << endl;
IntArray l(1, 4);
for (int i = l.low(); i <= l.high(); i++)
l[i] = i * 10;
l.setName(" l");
cout << l << endl;
csis << l << endl;
wait();
j = k = l;
cout << j << endl;
cout << k << endl;
cout << l << endl;
csis << j << endl;
csis << k << endl;
csis << l << endl;
wait();
}
void test9() {
cout << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl;
cout << " IntArray n(1, 5);" << endl;
cout << " m == n" << endl << endl;
csis << "9. Overloaded equality operator (identical elements): IntArray m(3, 7);" << endl;
csis << " IntArray n(1, 5);" << endl;
csis << " m == n" << endl << endl;
IntArray m(3, 7);
for (int i = m.low(); i <= m.high(); i++)
m[i] = i * 10;
m.setName(" m");
cout << m << endl;
csis << m << endl;
IntArray n(1, 5);
for (int i = n.low(); i <= n.high(); i++)
n[i] = i * 10;
n.setName(" n");
cout << n << endl;
csis << n << endl;
wait();
m = n;
cout << m << endl;
cout << n << endl;
cout << "Returns " << (m == n ? "True." : "False.") << endl << endl;
csis << m << endl;
csis << n << endl;
csis << "Returns " << (m == n ? "True." : "False.") << endl << endl;
wait();
}
void test10() {
cout << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl;
cout << " IntArray p(1, 5);" << endl;
cout << " o == p" << endl << endl;
csis << "10. Overloaded equality operator (different elements): IntArray o(3, 7);" << endl;
csis << " IntArray p(1, 5);" << endl;
csis << " o == p" << endl << endl;
IntArray o(3, 7);
for (int i = o.low(); i <= o.high(); i++)
o[i] = i * 10;
o.setName(" o");
cout << o << endl;
csis << o << endl;
IntArray p(1, 5);
for (int i = p.low(); i <= p.high(); i++)
p[i] = i * 10;
p.setName(" p");
cout << p << endl;
cout << "Returns " << (o == p ? "True." : "False.") << endl << endl;
csis << p << endl;
csis << "Returns " << (o == p ? "True." : "False.") << endl << endl;
wait();
}
void test11() {
cout << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl;
cout << " IntArray r(1, 4);" << endl;
cout << " q == r;" << endl << endl;
csis << "11. Overloaded equality operator (different size arrays): IntArray q(1, 3);" << endl;
csis << " IntArray r(1, 4);" << endl;
csis << " q == r;" << endl << endl;
IntArray q(1, 3);
for (int i = q.low(); i <= q.high(); i++)
q[i] = i * 10;
q.setName("q");
cout << q << endl;
csis << q << endl;
IntArray r(1, 4);
for (int i = r.low(); i <= r.high(); i++)
r[i] = i * 10;
r.setName(" r");
cout << r << endl;
cout << "Returns " << (q == r ? "True." : "False.") << endl << endl;
csis << r << endl;
csis << "Returns " << (q == r ? "True." : "False.") << endl << endl;
wait();
}
void test12() {
cout << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl;
cout << " IntArray t(1, 5);" << endl;
cout << " s != t;" << endl << endl;
csis << "12. Overloaded inequality operator (identical elements): IntArray s(3, 7);" << endl;
csis << " IntArray t(1, 5);" << endl;
csis << " s != t;" << endl << endl;
IntArray s(3, 7);
for (int i = s.low(); i <= s.high(); i++)
s[i] = i * 10;
s.setName("s");
cout << s << endl;
csis << s << endl;
IntArray t(1, 5);
for (int i = t.low(); i <= t.high(); i++)
t[i] = i * 10;
t.setName(" t");
cout << t << endl;
csis << t << endl;
wait();
s = t;
cout << s << endl;
cout << t << endl;
cout << "Returns " << (s != t ? "True." : "False.") << endl << endl;
csis << s << endl;
csis << t << endl;
csis << "Returns " << (s != t ? "True." : "False.") << endl << endl;
wait();
}
void test13() {
cout << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl;
cout << " IntArray v(1, 5);" << endl;
cout << " u != v;" << endl << endl;
csis << "13. Overloaded inequality operator (different elements): IntArray u(3, 7);" << endl;
csis << " IntArray v(1, 5);" << endl;
csis << " u != v;" << endl << endl;
IntArray u(3, 7);
for (int i = u.low(); i <= u.high(); i++)
u[i] = i * 10;
u.setName(" u");
cout << u << endl;
csis << u << endl;
IntArray v(1, 5);
for (int i = v.low(); i <= v.high(); i++)
v[i] = i * 10;
v.setName(" v");
cout << v << endl;
cout << "Returns " << (u != v ? "True." : "False.") << endl << endl;
csis << v << endl;
csis << "Returns " << (u != v ? "True." : "False.") << endl << endl;
wait();
}
void test14() {
cout << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl;
cout << " IntArray x(1, 4);" << endl;
cout << " w != x;" << endl << endl;
csis << "14. Overloaded inequality operator (different size arrays): IntArray w(1, 3);" << endl;
csis << " IntArray x(1, 4);" << endl;
csis << " w != x;" << endl << endl;
IntArray w(1, 3);
for (int i = w.low(); i <= w.high(); i++)
w[i] = i * 10;
w.setName(" w");
cout << w << endl;
csis << w << endl;
IntArray x(1, 4);
for (int i = x.low(); i <= x.high(); i++)
x[i] = i * 10;
x.setName(" x");
cout << x << endl;
cout << "Returns " << (w != x ? "True." : "False.") << endl << endl;
csis << x << endl;
csis << "Returns " << (w != x ? "True." : "False.") << endl << endl;
wait();
}
void test15() {
cout << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl;
cout << " IntArray b(4, 8);" << endl;
cout << " IntArray c = a + b;" << endl << endl;
csis << "15. Sum of two arrays assigned to third array: IntArray a(1, 5);" << endl;
csis << " IntArray b(4, 8);" << endl;
csis << " IntArray c = a + b;" << endl << endl;
IntArray a(1, 5);
for (int i = a.low(); i <= a.high(); i++)
a[i] = i * 10;
a.setName(" a");
cout << a << endl;
csis << a << endl;
IntArray b(4, 8);
for (int i = b.low(); i <= b.high(); i++)
b[i] = i * 10;
b.setName(" b");
cout << b << endl;
csis << b << endl;
wait();
IntArray c = a + b;
c.setName(" c");
cout << c << endl;
csis << c << endl;
wait();
}
void test16() {
cout << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl;
cout << " IntArray e(30, 33);" << endl;
cout << " d += e;" << endl << endl;
csis << "16. Sum of two arrays assigned to first array: IntArray d(10, 13);" << endl;
csis << " IntArray e(30, 33);" << endl;
csis << " d += e;" << endl << endl;
IntArray d(10, 13);
for (int i = d.low(); i <= d.high(); i++)
d[i] = i * 10;
d.setName(" d");
cout << d << endl;
csis << d << endl;
IntArray e(30, 33);
for (int i = e.low(); i <= e.high(); i++)
e[i] = i * 10;
e.setName(" e");
cout << e << endl;
csis << e << endl;
d += e;
cout << d << endl;
csis << d << endl;
wait();
}
void test17() {
cout << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl;
csis << "17. Array declared with illegal array bounds: IntArray f(5, 2);" << endl << endl;
IntArray f(5, 2);
for (int i = f.low(); i <= f.high(); i++)
f[i] = i * 10;
f.setName(" f");
cout << f << endl;
csis << f << endl;
wait();
}
void test18() {
cout << "18. Array with index out of range: IntArray g(10);" << endl;
cout << " g[10] = 1;" << endl << endl;
csis << "18. Array with index out of range: IntArray g(10);" << endl;
csis << " g[10] = 1;" << endl << endl;
IntArray g(10);
for (int i = g.low(); i <= g.high(); i++)
g[i] = i * 10;
g.setName(" g");
cout << g << endl;
csis << g << endl;
g[10] = 1;
wait();
}
void test19() {
cout << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl;
cout << " IntArray n(2, 4);" << endl;
cout << " m = n;" << endl << endl;
csis << "19. Arrays with length mismatch: IntArray m(1, 4);" << endl;
csis << " IntArray n(2, 4);" << endl;
csis << " m = n;" << endl << endl;
IntArray m(1, 4);
for (int i = m.low(); i <= m.high(); i++)
m[i] = i * 10;
m.setName(" m");
cout << m << endl;
csis << m << endl;
IntArray n(2, 4);
for (int i = n.low(); i <= n.high(); i++)
n[i] = i * 10;
n.setName(" n");
cout << n << endl;
csis << n << endl;
wait();
m = n;
cout << m << endl;
cout << n << endl;
csis << m << endl;
csis << n << endl;
wait();
}
void test20() {
cout << "20. Array subscript operator: IntArray o(7, 8);" << endl;
cout << " o[7] = 25;" << endl;
cout << " o[8] = o[7];" << endl << endl;
csis << "20. Array subscript operator: IntArray o(7, 8);" << endl;
csis << " o[7] = 25;" << endl;
csis << " o[8] = o[7];" << endl << endl;
IntArray o(7, 8);
for (int i = o.low(); i <= o.high(); i++)
o[i] = i * 10;
o.setName(" o");
cout << o << endl;
csis << o << endl;
o[7] = 25;
o[8] = o[7];
cout << o << endl;
csis << o << endl;
wait();
}
void wait() {
char buf;
cout << "Press any key to continue." << endl;
cin.get(buf);
}
int main() {
csis.open("csis.txt");
test1();
test2();
test3();
test4();
test5();
test6();
test7();
test8();
test9();
test10();
test11();
test12();
test13();
test14();
test15();
test16();
test17();
test18();
test19();
test20();
csis.close();
}
2. intarray.cpp
//#include "IntArray.hpp"
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstdlib>
#include <fstream>
#include "intarray.h"
using namespace std;
extern ofstream csis;
IntArray::IntArray() {
size = 9;
operator[](9);
dArray = new int[size];
lowIndice = 0;
highIndice = 9;
elements = size + 1;
}
IntArray::IntArray(int b) {
size = b - 1;
operator[](b - 1);
dArray = new int[size];
lowIndice = 0;
highIndice = b - 1;
elements = b;
}
IntArray::IntArray(int a, int b) {
size = b;
dArray = new int[size];
lowIndice = a;
highIndice = b;
elements = highIndice - lowIndice + 1;
if (a > b) {
cout << "Run-time Error: Illegal Array Bounds." << endl;
cout << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl;
csis << "Run-time Error: Illgeal array bounds. " << endl;
csis << "Diagonstic: 1st indice cannot be bigger than 2nd indice" << endl;
}
}
void IntArray::setName(string name) {
arrayName = name;
}
string IntArray::getName() {
return arrayName;
}
int IntArray::low() {
;
return lowIndice;
}
int IntArray::high() {
return highIndice;
}
ostream& operator<<(ostream& os, IntArray& a) {
//displays the array object
for (int i = a.low(); i <= a.high(); i++)
os << a.getName() << "[" << i << "] = " << a.dArray[i] << " ";
return os;
}
int& IntArray::operator[](int k) {
//if the index of the array is bigger than the size of the array. error will be shown.
if (k > size) {
cout << "Run-time Error: Illegal Index." << endl;
cout << "Dignostic: Index cannot be bigger than size" << endl;
csis << "Run-time Error: Illgeal Indez." << endl;
csis << "Dignostic: Index cannot be bigger than size" << endl;
}
return dArray[k];
}
IntArray& IntArray::operator=(IntArray& b) {
//if elements do not match up, they cannot be assigned to each other. error will be shown.
if (elements != b.elements) {
cout << "Runtime error: Length mismatch" << endl;
cout << "Diagnostic: Unable to assign, lengths do not match up." << endl;
csis << "Run-time Error: Length mismatch." << endl;
csis << "Dignostic: Unable to assign lengths do not match up" << endl;
}
return *this;
}
IntArray IntArray::operator+(IntArray& b) {
//object is copied to temp object with its indices. then temp object is added with b object to produce c object.
IntArray temp;
IntArray c;
c.lowIndice = lowIndice;
c.highIndice = highIndice;
for (int i = lowIndice, k = b.lowIndice; k <= b.highIndice; i++, k++) {
temp.dArray[i] = b.dArray[k];
}
for (int i = lowIndice; i <= highIndice; i++) {
c.dArray[i] = dArray[i] + temp.dArray[i];
}
return c;
}
IntArray IntArray::operator+=(IntArray& letter) {
//letter object is copied to temp object with its indices. then temp object is added to this object.
IntArray temp;
for (int i = lowIndice, k = letter.lowIndice; k <= letter.highIndice; i++, k++) {
temp.dArray[i] = letter.dArray[k];
}
for (int i = lowIndice; i <= highIndice; i++) {
dArray[i] = dArray[i] + temp.dArray[i];
}
return *this;
}
bool IntArray::operator==(IntArray& letter) {
if (elements == letter.elements) {
return 1; //return true
}
else {
return 0; // return false
}
if (size == letter.size) {
return 1; // return false
}
else {
return 0; // return true
}
}
bool IntArray::operator!=(IntArray& letter) {
if (elements == letter.elements) {
return 0; // return false
}
else {
return 1; // return true
}
if (size == letter.size) {
return 0; // return false
}
else {
return 1; // return true
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.