Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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.

image text in transcribed

image text in transcribed

image text in transcribed

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Modern Database Management

Authors: Jeffrey A. Hoffer Fred R. McFadden

4th Edition

0805360476, 978-0805360479

More Books

Students also viewed these Databases questions