Programming Assignment #1

Programming Assignment #1

Important Design Requirement:

Your design must be based on Modularity and “Separation of Concerns”.

The Stack and Queue Data Structure implementations must be based on “Information Hiding” and “Encapsulation”.

The Application Code (e.g. Rat In Maze, Wire Router, Image Component Labeling, …) know about the Data Structures only through their Interfaces (APIs).

Remember that interfaces represent behavior, while classes represent implementation.

Related Resources:

You do not have to use the following C++ code. In fact, it is probably better to develop your own code by adapting the given code, rather than using it “as is”, because this code has a long chain of dependencies (#include files). So, please use at your own discretion, the given code is only intended to help you get started with ideas, not with code.

starting code is here:

/*

* Image Component Labeling

* Project 1

* < Your Name >

* < Date >

*

* Purpose and usage of this application

* . . .

* . . .

*

*/

// . . .

// . . .

// . . .

// global variables

/*

* pixel should be redesigned as an object, instead of int, with two

fields,

* as described in the Assignment Specification document

*/

int **pixel;

int size; // number of rows and columns in the image

// functions

void welcome()

{

// Optional code goes here

}

void inputImage()

{// Input the image.

cout << “Enter image size” << endl;

cin >> size;

// create and input the pixel array

make2dArray(pixel, size + 2, size + 2);

cout << “Enter the pixel array in row-major order” << endl;

/*

* Either ask user for input grid or generate random numbers (zeros

and ones)

*/

for (int i = 1; i <= size; i++)

for (int j = 1; j <= size; j++)

cin >> pixel[i][j];

}

void labelComponents()

{// Label the components.

// initialize offsets

position offset[4];

offset[0].row = 0; offset[0].col = 1; // right

offset[1].row = 1; offset[1].col = 0; // down

offset[2].row = 0; offset[2].col = -1; // left

offset[3].row = -1; offset[3].col = 0; // up

// initialize wall of 0 pixels

for (int i = 0; i <= size + 1; i++)

{

// Your code goes here

}

int numOfNbrs = 4; // neighbors of a pixel position

// scan all pixels labeling components

arrayQueue<position> q;

position here, nbr;

int id = 1; // component id

for (int r = 1; r <= size; r++) // row r of image

for (int c = 1; c <= size; c++) // column c of image

if (pixel[r][c] == 1)

{

/*

* New image Component

*

* Your code goes here

*/

} // end of if, for c, and for r

}

void outputImage()

{// Output labeled image.

cout << “The labeled image is” << endl;

for (int i = 1; i <= size; i++)

{

for (int j = 1; j <= size; j++)

cout << pixel[i][j] << ” “;

cout << endl;

}

}

void main()

{

welcome();

inputImage();

labelComponents();

outputImage();

}

"You need a similar assignment done from scratch? Our qualified writers will help you with a guaranteed AI-free & plagiarism-free A+ quality paper, Confidentiality, Timely delivery & Livechat/phone Support.


Discount Code: CIPD30



Click ORDER NOW..

order custom paper