In this post lab, we want to create a program that draws a diamond or a triangle with a size that the user selects using a specific character that will be entered at the keyboard. Here are two examples:
A triangle of size 4, using *:
*
***
*****
*******
A diamond of size 4, using *:
*
***
*****
*******
*****
***
*
What do we need for this program?
Problem definition
We first need to clearly define the problem, the inputs and the outputs.
Inputs:
1) a choice to draw one of the two shapes or to
quit the program,
2) a character choice which will be used for drawing
the selected shape, and
3) the size of the shape
Output:
One of these will be the output:
1) a triangle,
2) a diamond,
3) quit
Analysis of the problem
We need to break down the tasks that this program is supposed to complete.
The main tasks are:
1) ask for the input data
2) for both triangle and diamond, first display
a triangle of requested size, and then if the choice is a diamond, add
the bottom part
3) displays the shape
To write this program, we will assume that we have the following functions:
1) void instructions( )
// This function describes
the program and how it works
2) int menu( )
// This function will
return a choice to the main ; 1) draw triangle, 2) draw diamond, and 3)
quit
3) void draw_shape(int choice)
// This function calls
on appropriate function to detect the input value and, depending on the choice, to draw a shape.
4)
void intput(int& size, char& c)
//
This function will ask users to select a character that will be used to draw the
shape and the size of the shape.
6) void draw_triangle(int size, char c)
// This function draws
a triangle of size size using character c
7) void draw_diamond(int size, char c)
// This function first
calls draw_triangle, then add_bottom to draw the diamond
8) void draw_bottom(int size, char c)
// This function actually
draws an upside down triangle of size size-1 as the bottom of the diamond
Now that we have defined the functions, it is time to design the algorithm for the program. However, we can write a draft main part of the program.
int main ( )
{
int choice;
instructions( );
choice = menu( );
if(choice != 1 && choice != 2)
{
cout << "You requested
to quit, bye \n";
return 0;
}
draw_shape(choice);
return 0;
}
Algorithm Design
The following diagram (structure chart) summarizes the algorithm design
for this program. The direction of each arrow is the same as the
direction in which the data flow.
Complete the program that draws a triangle or a diamond similar as shown below. Call the program
postlab6.cpp. All function
definitions and the algorithm have been
given above. Input the size of the triangle or diamond from the user.
Output examples:
A triangle of size 4 using * should appear as:
*
***
*****
*******
A diamond of size 4, using * should appear as:
*
***
*****
*******
*****
***
*
Practice Challenge (5 extra points): Add two more options to the choice selection of the program. The two new options will produce triangles similar to the one shown below:
Upside down triangle of size 4, using *:
*******
*****
***
*
A side-way triangle of size 4, using *:
*
**
***
****
***
**
*
Instructions to return your lab to the teacher: (5 points penalty if instructions are not followed appropriately)
Congratulations! You have completed another Lab of CS I !! :-))