User Tools

Site Tools


guides:programstyle:comments

This is an old revision of the document!


Comments and Documentation

This guide provides general guidelines for the use of comments and documentation. Directions given by your instructor supersede these instructions.

The purpose of comments and documentation is to allow readers of the program to understand what is happening. This could be the original programmer, someone who has taken over maintenance of the code, or even a casual reader of the code. Documentation generally falls into two categories, comments and self documenting code.

Self Documenting Code

Self documenting code is achieved in a number of ways. The most apparent is appropriate selection of identifiers. This is supported by proper use of white space and indentation as well as the general structure of the code. Many of the guidelines in other sections of this document describe conventions which help programmers provide self documenting code.

Use of Comments

Comments at the Beginning of a File

All files should begin with identification information. This should answer the questions who created this file and why. While style may vary from programmer to programmer, a general guideline is to use a block comment at the top of the file providing the following information

  • Programmer Name
    • List any collaborators
  • Class and Section
  • Date
  • Assignment identification information
    • Program Name
    • Program Number
  • A narrative describing the contents of the file
  • Special notes
    • Additional features
    • Items not implemented
/*
    Program 2, Mad Libs
    Programmer: Dan Bennett
        Collaborators: I had extensive help from John Hoggard, Doug Puharic and Amanda Porter
    Class: CSCI 130
    Date: September 2020
    Short Description:  This program simulates a Mad Lib game.
 
    Narrative:
        This program will simulate a Mad Lib game.  The user is first prompted for a number of words or 
        phrases.  The program will then incorporate these phrases into a hard coded story.
 
    Special Notes:
        * The user is only able to supply a single word for each prompt.  If they type more than one word,
          that will be ignored with cin.ignore()
*/

Comments Before Functions

Functions should be proceeded by a block comment which describes at minimum

  • A narrative describing the purpose of the function
  • The input and output to the function
    • Please note, this is a description of the parameters
    • Input represents values passed into the function
    • Output represents values returned or passed out of the funciton
    • Input/Output represents values that are passed in, but may be changed
  • Pre/post conditions for the function
  • Special notes if required
    • Explain any special algorithms
    • Source of the function
/*
    Function: GetWord
 
    This function is responsible for interacting with the user to get a word that matches the given
    description.  The function will ignore any extra input on the same line as the word.
 
    Input: 
        description: a string which describes the word required
                    example: "a noun"
    Output: 
         word: the word the user has provided
 
    Notes: This function uses cin.ignore to ignore all input after the first word.
           A word is described as any collection of non-white space characters.
 
    Preconditions: none
    Post conditions: at least one word has been read from the input stream
                    any input after the first word, up to 1000 characters will be ignored.

Comment Placement in Code

Single line comments should be placed before sections of code which need explanation.

guides/programstyle/comments.1597749158.txt.gz · Last modified: 2022/08/02 11:59 (external edit)