Question
canvas.h file #ifndef CANVAS_H #define CANVAS_H #include using namespace std; // you'll manipulate ASCII art images // consisting of a rectangular grid of chararacter pixels.
canvas.h file #ifndef CANVAS_H #define CANVAS_H
#include
using namespace std;
// you'll manipulate ASCII art images // consisting of a rectangular grid of chararacter pixels. class Canvas { public: // Allocates a canvas of the given width and height 5 that // consists entirely of ' ' (space) chars. If the width is 0, // the canvas is empty (pointer is NULL and _width is 0) Canvas(int width);
// Allocates a canvas with width 5 and height 5 that looks like: // ### #### #### #### // # # # # # # # // ##### or #### or # or # # // # # # # # # # // # # #### #### #### // // depending upon which character ('A', 'B', 'C', or 'D') is // given as a parameter. If some other character is given, // allocates a canvas of ' ' chars with width 5 and height 5. Canvas(char x);
// Returns the width of the canvas. int width();
// Returns the entire canvas as a single string, consisting of each row // of the canvas, followed by the newline character (' '). // If the canvas is empty, returns an empty string. string to_string(); // Replaces every instance in the canvas of old_char with new_char. // For instance, if old_char is '#' and new char is '@', then: // // ### @@@ // # # @ @ // ##### becomes @@@@@ // # # @ @ // # # @ @ // void replace(char old_char, char new_char);
// Destructor. Deallocates all of the memory allocated by the canvas. ~Canvas();
private: // A canvas is represented as a 2D char array, i.e. // an array of pointers to char (sub)arrays. // Each subarray corresponds to a COLUMN of the image. char** C; int _width; };
#endif
Create a ++ program implementing a class that represents ASClI art" images and operations on them, respresented as two-dimensional char arrays allocated on the heap (using the new keyword). Create a new C++ source file named canvas.cpp that implements the Canvas class, so that canvas.cpp and the provided files compile into a program that runs with no failed tests. Submit the source file canvas.cpp The main.cpp and canvas.h are provided, these files are not to be edited only used to impement canvas.cpp file. / / Test replace( ) C5.replace('\#', '@'); test(C5. width ()==5); test (C5.to_string ()== string ("@@@@ ") + "@@ " +"@@@@n" + "@@ " + "@@@@ "); C5.replace( ', '-'); test ( C5.width ()==5); test (C5.to_string ()== string ("@@@@- n ") + "@---@ " +"@@@@- " + "@---@ " + "@@@@- "); C5.replace( '-','@'); test( C5.width ()==5); test (C5.to_string ()== string ("@@@@@ " ) + "@@@@@ " + "@@@@@n" + "@@@@@ " +"@@@@@ "); C5.replace('@','\$'); test (C5.width ()==5); test(C5.to_string ()== string ("$$$ ) + "\$\$\$\$\$ " +"$$$ + "\$\$\$\$\$ " +"$$ ) C6.replace( ', '*'); test (C6.width ()==5); test(C6.to_string ()== string ("#### ") + "\#**** In + "\#**** In + "\#**** I +"#### ); C7.replace('\#', '*''); test(C7 width ()==5); test(C7.to_string ()== string ( ) +" " + " n +" " +"(n); C8. replace('\#', ' '); test(C8.width ( ) ==5; test(C8.to_string ()== string ( ) +" +" +"n +n); cout "Assignment complete."Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started