************************* MASTER CODE ***************************************

The name of the first file in this disk's directory identifies the volume,
issue number and revision of the disk. The format of this filename is:

    !CDmvvii.rrr

where

    ! = the '!' character
    m =   C for C Users Journal, W for Windows Developer's Journal
    vv =  volume
    ii =  issue
    rrr = revision (001 for initial release, 002 for next update, etc.)

The file UPDATE.DOC contains information about any additions or
corrections to material on the disk since the original magazine
publication.

If you have obtained this code from a floppy diskette or from CompuServe, the 
headings under the column "FILENAME" represent the names of .ZIP files.  All 
files listed under the filename are archived in the .ZIP file.

Keywords: Sep96 C C+ STL Timing Java Portable Screen Floating-Point

The code listings for the September 1996 issue of C/C++ Users Journal
include source code for Linda Kasparek's article on processing variant
records with STL, Greg Messer's C++ chronograph class, Anil Hemrajani's
article on combining C with Java, and Evan Manning's article on
maintaining precision in floating-point summations.  Also included are
source listings from P.J. Plauger's column, Standard C/C++, and Dan
Saks' column, C++ Theory and Practice.

*************************  FILE DESCRIPTION **********************************

The following files are included in the disk:

FILENAME		AUTHOR-NAME	TITLE			       PAGE
(Zip archive/
subdirectory name)
-------------------------------------------------------------------------------

plauger			P.J. Plauger	Introduction to <algorithm>

    max.cpp	 - listing 1, Template function max
    max_elem.cpp - listing 2, Template function max_element
    compare.cpp	 - listing 3, Comparison template functions
    search.cpp	 - listing 4, Searching template functions
    transfrm.cpp - listing 5, Transforming template functions
    unique.cpp	 - listing 6, Unique template functions
    rearrang.cpp - listing 7, Rearranging template functions

kasparek		Linda Kasparek	Processing Variant Records
					with STL

    variant.cpp	 - listing 1, Variant record struct and switch statement
			      used to populate it
    globals.h	 - listing 2, Defines key and value classes and variant
			      record struct
    file.h	 - listing 3, Defines the File class
    file.cpp	 - listing 4, Implements file processing
    mapdef.cpp	 - listing 5, Creation of Key/Value pairs
    drive.cpp	 - listing 6, Test driver program
    out.txt	 - shown with listing 6 in magazine, output of test
		 	      driver program
    fields.txt	 - table 1,   Field identifiers
    data.txt	 - figure 1,  Data file containing variant records


manning			Evan Manning	Floating-Point Summation

    f_add.c	 - listing 1, Simple summation
    fx_add.c	 - listing 2, Extended precision method
    fs_add.c	 - listing 3, Sorted summation
    compare.c	 - listing 4, Simple comparison
    compare2.c	 - listing 5, Tie-breaking comparison
    fp_add.c	 - listing 6, Pairwise summation
    fk_add.c	 - listing 7, Kahan summation
    test.c	 - listing 8, Tests performance of summation methods
    fkx_add.c	 - not listed, Extended precision Kahan summation

messer			Greg Messer	A C++ Chronograph Class

    getcmt.cpp	 - listing 1, Timing execution of an entire program
			      NOTE: includes definition for function
			      getcmt(), which was shown as listing 2 in
                              article
    chrono.h	 - listing 3, The Chronograph class
    chrono.cpp	 - not listed, A member function of chronograph class

hemrajan		Anil Hemrajani	The Java and C Connection

    princ.jav	 - listing 1, Sample Java program
    princimp.c	 - listing 2, C functions for Java class
    access.jav	 - listing 3, Demonstrates Java object access
    access.c	 - listing 4, Access to Java environment from C
    stub.c	 - listing 5, Stub file generated from Java class    


saks			Dan Saks	C++ Theory and Practice:
					Abstract Declarators, Part 3

    declprse.cpp - listing 1, The declarator parsing function
    grammar1.txt - table 1, A simplified grammar for C++ object and
                            function declarations
    ebnf.txt	 - table 2, A summary of EBNF operators
    grammar2.txt - table 3, A grammar for parameter-declaration using
			    left-recursion
    grammar3.txt - table 4, A grammar for parameter-declaration, where
			    direct-declarator and
			    abstract-direct-declarator use iteration
    grammar4.txt - table 5, A grammar fro parameter-declaration, with
			    declarator and abstract-declarator as one
			    set of productions
    scanner.h    - not listed, Complete source for scanner header file
    scanner.cpp  - not listed, Complete source for scanner implementation
    decl.cpp     - not listed, Complete source for declaration parser

*******************************************************************************

If you have questions regarding to the disk, please call or write us.

-----------------------------------------------------------------------------
			   Miller Freeman Inc.
			1601 W. 23rd St. Suite 200
			    Lawrence, KS 66046
	              1-800-444-4881 or 913-841-1631
-----------------------------------------------------------------------------

