************************* 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 -----------------------------------------------------------------------------