Programming Assignment #1

Programming

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();

}

#write essay #research paper #blog writing #article writing #academic writer #reflective paper #essay pro #types of essays #write my essay #reflective essay #paper writer #essay writing service #essay writer free #essay helper #write my paper #assignment writer #write my essay for me #write an essay for me #uk essay #thesis writer #dissertation writing services #writing a research paper #academic essay #dissertation help #easy essay #do my essay #paper writing service #buy essay #essay writing help #essay service #dissertation writing #online essay writer #write my paper for me #types of essay writing #essay writing website #write my essay for free #reflective report #type my essay #thesis writing services #write paper for me #research paper writing service #essay paper #professional essay writers #write my essay online #essay help online #write my research paper #dissertation writing help #websites that write papers for you for free #write my essay for me cheap #pay someone to write my paper #pay someone to write my research paper #Essaywriting #Academicwriting #Assignmenthelp #Nursingassignment #Nursinghomework #Psychologyassignment #Physicsassignment #Philosophyassignment #Religionassignment #History #Writing #writingtips #Students #universityassignment #onlinewriting #savvyessaywriters #onlineprowriters #assignmentcollection #excelsiorwriters #writinghub #study #exclusivewritings #myassignmentgeek #expertwriters #art #transcription #grammer #college #highschool #StudentsHelpingStudents #studentshirt #StudentShoe #StudentShoes #studentshoponline #studentshopping #studentshouse #StudentShoutout #studentshowcase2017 #StudentsHub #studentsieuczy #StudentsIn #studentsinberlin #studentsinbusiness #StudentsInDubai #studentsininternational