************************* 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/DOS 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.

If you have obtained this code from UUNET, the headings under the column 
"FILENAME" represent the names of subdirectories.  All files listed under the
"filename" are included in a subdirectory of that name.


Keywords: C C++ Dialog Spin Conversation Switch Compression Matching

The code listings for the April 1994 issue of The C Users Journal
include source for Stephen Welstead's scrolling list dialog boxes,
Keith Bugg's spin controls for Windows, Russ Suereth's conversation
processor expanded for time, John Ross's record-oriented data compression
algorithm, and Thomas Phillips's approximate string matching algorithm.

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

The following files are included in the disk:

FILENAME		AUTHOR-NAME	TITLE			       PAGE
(Zip archive/
subdirectory name)
-------------------------------------------------------------------------------
plauger 		P.J. Plauger	Standard C:Introduction		10
					to Iostreams


    ios 	 - listing 1, Class ios    

saks 		 	Dan Saks	Stepping Up to C++:		99
					Compilation Firewalls, Part 1     

    xr.cpp	 - listing 1, The main module for the cross-reference
                              program
    xrt.h        - listing 2, The xrt class definition
    xrt.cpp      - listing 3, The xrt member function definitions
    lns1a.h      - listing 4, Class definition for lns using a single
                              pointer
    lns1a.cpp    - listing 5, Member function definitions for lns using
                              a single pointer
    lns1b.h      - listing 6, Class definition for lns using a pair of
                              pointers
    lns1b1.cpp	 - listing 7, Member function definitions for lns using
                              a pair of pointers
    xrt.mak      - listing 8, Makefile for the cross reference program
    lns2.h	 - listing 9, The Cheshire Cat class definition for lns
    lns2a.cpp    - listing 10, The Cheshire Cat implementation for lns
                               using a single pointer
    lns1b2.cpp	 - listing 11, The Cheshire Cat implementation for lns
                               using a pair of pointers

allison			Chuck Allison	Code Capsules:Visibility in C	91

    scope1.c	 - listing 1, Illustrates local scope
    scope2.c	 - listing 2, Illustrates function and file scope
    lifetime.c	 - listing 3, Illustrates static storage duration
    recurse.c	 - listing 4, Illustrates recursion and storage
                              duration
    linkage1.c   - listing 5, Links with linkage2.c
    linkage2.c	 - listing 6, Links with linkage1.c
    namspace.c	 - listing 7, Illustrates namespaces
    
welstead		Stephen T.	Scrolling List Dialog for 	51				
			Welstead	Scientific Applications

    ui.h	 - listing 1, Header file for user interface
    uisetvar.cpp - listing 2, Constants, types and variables for user
                              interface
    uidatobj.cpp - listing 3, Defines basic data objects
    uidialgs.cpp - listing 4, General dialog boxes
    uilstobj.cpp - listing 5, Defines the tlist_box class
    uilstdlg.cpp - listing 6, General list box dialog class
    uisetcol.cpp - listing 7, Example of a typical function assigning
                              setup structure to a TDataCollection

bugg			Keith Bugg	Creating Spin Controls for	39
					Windows

    spin.c	 - listing 1, A demo program that implements spin
                              controls
    spin.rc	 - listing 2, Resource file for spin control program
    spin.def	 - listing 3, Module definition file for spin control
                              program

suereth			Russell Suereth	Expanding a Conversation	19
					Processor for Time

    
    timeexp.c	 - listing 1, The expansion code for time
    natural.h    - not listed, Header file for expansion code and for
                               natural.c
    natural.c    - not listed, Complete Code listing for Conversation
                               Processor
ross			John W. Ross	Record-Oriented Data		83
					Compression

    hufftree.h	 - listing 1, Defines Huffman encoding tree structure
    bldtree.c    - listing 2, A program that reads a file and
                              generates a Huffman encoding tree based
                              on the character frequencies in that file
    compress.c   - listing 3, Functions that compress a data record
			      using Huffman encoding
    decomp.c	 - listing 4, A function to decompress a data record
			      compressed with Huffman encoding
    compdemo.c   - listing 5, A program to illustrate the use of the
                              data compression functions
    decdemo.c    - listing 6, A program to illustrate the use of the
			      data decompression function

weisfeld		Matt Weisfeld	An Alternative to Large		67
					Switch Statements

    internal.h	 - listing 1, Definitions for internal application
    internal.rc  - listing 2, Resource file for internal
    ugly.c	 - listing 3, Example of an unwieldy switch statement
    proto.h	 - listing 4, Prototypes for internal functions example
    funcs.h	 - listing 5, Map table to internal function
    internal.c   - listing 6, Demonstrates use of internal functions
			      instead of a switch statement
    funcs.c	 - listing 7, Internal functions to replace switch
			      statement
    
phillips		Thomas Phillips	Approximate String Matching	77

    freqmtch.c	 - listing 1, Definition of function freq_match and
			      test program

letters			Letters to 	We Have Mail			118
			Editor
    round.c	 - listing 1, A rounding algorithm that could stand
			      improvement
    selftest.c	 - listing 2, Eliminates special-case checksum handling
			      in bootstrap self test code.

janzen			Thomas Janzen	C++ Classes for Fuzzy Systems,
					from the November 1993 issue, p. 55

    janzen.fzy	 - not listed, Update source for fuzzy classes listed
			       in November article

gage			Philip Gage	A New Algorithm for Data
					Compression from the February
					1994 issue, p. 23

    compress.c	 - not listed, The compression program from the article,
 			       (unchanged from article)
    expand2.c    - not listed, The expansion program from the article,
			       revised to fix a bug

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

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

-----------------------------------------------------------------------------
                           R&D Publications, Inc.
                        1601 W. 23rd St. Suite 200
                            Lawrence, KS 66046
                              (913) 841-1631
-----------------------------------------------------------------------------

