(Latest Revision: 08/31/00)

EXAMPLE LEVEL TWO PROGRAM

/*

   THIS IS AN EXAMPLE OF HOW a *second level* PROGRAM SUBMISSION
   SHOULD LOOK.  IT ILLUSTRATES CORRECT CODING STYLE, CODING
   FORMAT, NAMING CONVENTIONS, AND DOCUMENTATION.
   
 */

/* PROGRAM Stars */

/*

Name:          Gordon Goodguy
User Name:     goodge
Course:        CS 2500, Computer Programming II, Section 003
Instructor:    John Sarraille
Date:          November 31, 2001

INPUT:

The user of this program inputs a 'y' for yes or a 'n' for no.

OUTPUT:

This program prints a little message and then repeatedly asks
the user if he wants to see a pattern.  When the user answers
in the affirmative, it prints the pattern and asks the question
again.  When the user answers with 'n', the program stops.

PRECONDITIONS and POSTCONDITIONS: None.

*/

#include <iostream.h>

/*
    FUNCTION NAME: PrintMessage ;
    INPUT: none.
    OUTPUT: a message to the user of this program.
    PRECONDITIONS:  output set to start on a new line.
    POSTCONDITIONS: output set to start on a new line.
    CALLERS: the main program
    CALLEES: none.
*/
void PrintMessage()
{
   cout << endl ;  
   cout << "F. Scott Fitzgerald wrote a story about a diamond"  << endl ;
   cout << "as big as the Ritz Hotel in New York.  I hope you"  << endl ;
   cout << "like the little diamond that this program writes,"  << endl ;
   cout << "even though it is not a real one, and certainly not" << endl ;
   cout << "anywhere near as large as the Ritz Hotel."  << endl ;
   cout <<  endl ;  
} ;

/*
   FUNCTION NAME MakeStarRow ;
   INPUT: the number of stars to be made (this is the parameter amountMP).
   OUTPUT: a row of asterisks centered in a field of 75 characters.
   PRECONDITIONS: output set to start on a new line.
   POSTCONDITIONS: output set to start on a new line.
   CALLERS: MakePattern
   CALLEES: none
*/
void MakeStarRow(int amountMP)
{
    /* stub action */
    cout << "Here are " << amountMP << " stars." << endl ;
}

/*
    FUNCTION NAME: MakePattern ;
    INPUT:
    the width of the pattern to be made.  It is the number of
    characters across the middle of the diamond shape.
    OUTPUT:
    a diamond pattern of asterisks on the computer screen or
    standard output.
    PRECONDITIONS: output set to start on a new line.
    POSTCONDITIONS: output set to start on a new line.
    CALLERS: the main program
    CALLEES: none
*/
void MakePattern(int widthMP)
{
   int amount ;
   
   for (amount=1; amount<=widthMP; amount++) MakeStarRow(amount) ;
   for (amount=widthMP-1; amount>=1; amount--) MakeStarRow(amount) ;
}
   
main ()
{
    char response ;

    PrintMessage() ;
    do
      {
         cout << "Would you like to see a pattern?  " ;
         cout << "Answer y or n: " ;
         cin >> response ;
         if (response == 'y') MakePattern(15) ;
      }
    while (response != 'n') ;
}