 JsrVote.java--documentation as of July 10, 2000.

  Assumptions:  the following conditions are assumed to exist, JsrVote has
  limited error checking, it just assumes these states.  The program has 
  one parameter (refered to as p1).  Input files are "&p1.i.txt" (for example:
  if &p1 = "share95", then init file is "share95i.txt", and vote file
  is "share95v.txt".  The vote "backup" file will be "share95v.$$$". 
  These files are included as guides for configuration.   

  1)  "&p1.i.txt" exists and is well formed (see share95i.txt for example).
      In particular # races, and # candidates is critical!!!!!

  2)  Race title lines are in format "##  title" (## is max votes this race).

  3)  Candidate  lines are in format "(k) Name" (k is shortcut key).

  4)  "&p1.v.txt" is assumed to always exist.
      first line is assumed to be titles (for Excel).
      first action (ALWAYS) is to rename "&p1.v.txt" to "&p1.v.$$$"
      then program reads "&p1.v.$$$", copying to "&p1.v.txt",
      building vote count (batch and total) arrays.

  5)  after initial run, contents of "&p1.i.txt" must NOT be changed, except:
      title line, maximum batches (used for array size calculation), and
      batch size may be changed.

  6)  each ballot voted is immediately written to "&p1.v.txt", so recovery
      is always to last ballot voted.  Ballot # is part of data.
      Recovery can be to any point by simply deleting the unwanted ballots
      from the "&p1.v.txt" file.  You could recover to the beginning point 
      of the last run by deleting the "&p1.v.txt" file and renaming the
      "&p1.v.$$$" (backup) file to "&p1.v.txt".  

You can get the JRE from http://java.sun.com/products/jdk/1.2/jre/index.html

It's about a 6 megabyte download.  After you download it, you run it.  The
default directory is probably jre1_2_2.

Two files are attached.  JsrVote.jar is the "java library" file (like a
dll).   It should have all the classes necessary to run.   

JsrVote.zip contains the other files to run.   You should unzip it into the
same directory with the JAR.  Then read the JsrVote.txt (documentation) file.

JsrVote.txt documents the required files.  Of course the best "documentaion"
is the sample ...i.txt and ...v.txt files. 

JsrVoteJar.bat serves only to document the classes that are part of the jar.
 
JsrVote95.bat is a bat file to exec the program using the share95i.txt and
share95v.txt files.  The only files required to run are the JsrVote95.bat,
share95i.txt and share95v.txt files.  For the real election, the share95v.txt
file should have only one line (the candidate names).  

You will probably have to set %jdkdir% to jre1_2_2 (the directory
where jre install puts java.exe).

You may have to change the =print lines in share95i.txt.  If you use a
network printer replace the LPT1 with the network name
"\\printserver\printlpt1"  or whatever.   If yours is a laserjet change to
"ascii" to "hplj", for a desk jet change to "hpdj".   Otherwise try "ascii".
I have only built in support for printers I use.  Most laser jet printers
honor the HP command set.

If you use a hp laser jet you can change the lines per page from 60 to 72.

The ballots per batch number can be changed thruout the day (set to a small
number for more batches, thus a more discrete plot). 

However the # races and candidate information MUST remain fixed.   

The batch size now is only used for reporting purposes.   

For example you could change the batch size to 25 to spread the "plot" program out.   
JsrVote now supports multiple races, and has a GUI (Graphics 2D) plot, as well
as old fashioned plot logic that can be printed on a standard line printer 
(shades of COBOL and MVS!) that looks just fine.

The sharei95v.txt file is the cumulative vote file.   The first line is the
only line required to run.   The sample version has been "populated" with votes
from a different (non SHARE) election.   

You might try to run the reports first.   If you don't want to print, or don't have a
printer supported by my print logic, then you can just run the report
without printing, then open the share95r.txt file with WordPad and print
from there (I find Lucida Console at 8 points prints great).   Each time you
run a report, the share95r.txt file gets replaced.    You might want to look
at the share95r.txt file before you load the program (exec JsrRep95.txt).  
It is a plot of the sample share95v.txt file.

The three reports are accessible from the pull down "Report" menu, and Print
On/Off is a checkbox there as well, with a default of no print.

All voting can be done with the mouse, or by just typing the # in (#).   The
program assumes that the candidate lines are in format (#) Candidate name.
The # can be any character, and it could be changed during a run.
Only the things that affect the array size that can't be changed.
Even the candidate names could be changed as well.  However, a change
to the number of candidates would invalidate the current vote file.  
For example: the current "sample" vote file was taken from an election that
had 10 candidates, and only one race.  Convienently the next share election
also had ten candidates.  All I had to do was modify the share95i.txt file
to add the race lines (and change line one of the share95v.txt file), and
I had my sample vote data that indicates real voting patterns.  

Good Luck.  If you can make it work then I know I have my jar file set up
completely.

Thanks for testing it.   I hope you like the new interface.
