Lab 3 Extra
- Write a class in C++ that has the following definition:
class Math
{
public:
static int Add(int,int);
static int Add(int,int,int);
static int Add(double,double);
static int Add(double,double,double);
static int Mul(int,int);
static int Mul(int,int,int);
static int Mul(double,double);
static int Mul(double,double,double);
static int Add(int count,...); // sums up a list of integers
static char* Add(const char *, const char *);
};
Organize the code in the following way:
- a header file called
Math.h
- a cpp file called
Math.cpp
that contains the source code for class Math - a main file called
main.cpp
that contains the main function and has an example on how to use Math. The example must include using all methods from the class. - for the variadic method use pointers or va_start / va_end macros.
Add(const char *, const char *)
will allocate memory that can add the two existing string. If one of the strings is nullptr, this function will return nullptr;
- Implement the methods of the class so the following code works:
canvas.h
class Canvas {
public:
// contructor will call the clear method
Canvas(int lines, int columns);
// set the character at the position x and y to value
void set_pixel(int x, int y, char value);
// tuples of x, y, value
void set_pixels(int count, ...);
void clear();
void print() const;
};
main.cpp
int main() {
Canvas canvas(10, 50);
canvas.set_pixels(4, 4, 25, 124, 3, 33, 124, 2, 24, 95, 4, 3, 95);
canvas.set_pixels(3, 7, 2, 95, 4, 21, 124, 5, 16, 95);
canvas.set_pixels(3, 4, 41, 124, 7, 1, 124, 5, 8, 92);
canvas.set_pixels(3, 1, 31, 40, 2, 3, 95, 2, 41, 124);
canvas.set_pixels(5, 2, 16, 95, 5, 35, 92, 6, 3, 95, 2, 11, 95, 5, 3, 95);
canvas.set_pixels(5, 2, 38, 95, 4, 9, 40, 3, 41, 124, 2, 37, 95, 2, 25, 124);
canvas.set_pixels(5, 5, 27, 124, 2, 27, 124, 4, 0, 124, 3, 35, 47, 2, 18, 95);
canvas.set_pixels(4, 4, 13, 124, 4, 37, 95, 4, 16, 40, 3, 6, 124);
canvas.set_pixels(4, 7, 32, 47, 4, 20, 124, 5, 11, 95, 5, 42, 95);
canvas.set_pixels(4, 5, 15, 92, 4, 34, 124, 4, 45, 41, 5, 24, 95);
canvas.set_pixels(3, 4, 2, 40, 7, 3, 95, 2, 44, 95);
canvas.set_pixels(5, 6, 30, 95, 5, 45, 95, 4, 31, 124, 4, 7, 124, 3, 43, 39);
canvas.set_pixels(3, 5, 17, 95, 1, 27, 124, 2, 5, 95);
canvas.set_pixels(5, 3, 44, 95, 3, 19, 92, 5, 23, 95, 3, 8, 47, 2, 10, 95);
canvas.set_pixels(4, 6, 6, 124, 5, 19, 47, 3, 24, 95, 3, 27, 124);
canvas.set_pixels(5, 3, 10, 95, 4, 44, 95, 2, 9, 95, 0, 32, 95, 5, 2, 95);
canvas.set_pixels(4, 6, 2, 95, 7, 31, 95, 1, 25, 124, 2, 36, 95);
canvas.set_pixels(5, 3, 46, 92, 5, 25, 44, 1, 43, 124, 5, 46, 47, 3, 15, 47);
canvas.set_pixels(3, 4, 17, 95, 2, 23, 95, 3, 39, 92);
canvas.set_pixels(3, 4, 47, 124, 2, 45, 95, 3, 37, 95);
canvas.set_pixels(5, 5, 44, 95, 2, 2, 95, 5, 10, 95, 5, 9, 95, 4, 43, 124);
canvas.set_pixels(3, 4, 38, 41, 2, 17, 95, 0, 26, 95);
canvas.set_pixels(4, 4, 18, 41, 7, 5, 47, 5, 41, 124, 5, 33, 124);
canvas.set_pixels(4, 5, 12, 47, 5, 22, 92, 6, 33, 124, 5, 31, 124);
canvas.set_pixels(5, 4, 40, 124, 3, 3, 95, 4, 4, 124, 6, 31, 47, 3, 4, 96);
canvas.set_pixels(3, 0, 42, 95, 5, 18, 95, 4, 27, 124);
canvas.set_pixels(5, 3, 12, 92, 2, 32, 95, 5, 37, 95, 5, 26, 95, 5, 39, 47);
canvas.set_pixels(4, 3, 25, 96, 4, 14, 124, 4, 33, 124, 3, 1, 47);
canvas.set_pixels(5, 5, 36, 95, 7, 30, 95, 6, 4, 47, 4, 24, 95, 1, 32, 95);
canvas.set_pixels(3, 3, 22, 47, 4, 23, 40, 5, 6, 124);
canvas.set_pixels(3, 1, 33, 41, 1, 41, 124, 7, 29, 124);
canvas.set_pixels(4, 4, 6, 124, 5, 38, 95, 3, 31, 124, 7, 4, 95);
canvas.set_pixels(3, 4, 11, 41, 4, 10, 95, 5, 1, 92);
canvas.set_pixels(4, 2, 43, 124, 3, 17, 95, 5, 4, 44, 4, 36, 40);
canvas.set_pixels(1, 5, 43, 46);
canvas.print();
}