String Project

Order Description


The project described below is from the American Computer Science League which was used in one of their early competitions.  The project demands careful reading and understanding of the task at hand.  It also brings together a great many skills we have developed since the beginning of the course.   Among these are :  reading from an external data file, using loops, using conditional branching, designing our own methods and using the String class.  Be advised that you will need to develop a careful design before you begin this project.  You also may need to review earlier material on reading from an external data file.  A data file will be provided for test purposes. 


Problem  Definition :  The vowels on planet ACSL are naturally enough, the letters  A, C, S, and L.  All other letters are considered to be consonants.  There are two tasks associated with each word :  forming the plural and adding a suffix.  Your program is to form the plural of words and attach suffixes according to the following rules :



If the word …

to form the plural…

to add a suffix that starts with consonant…

to add a suffix that starts with a vowel...

Ends in a single consonant

Add  “GH”

Add the suffix

Add the suffix

Ends in a single vowel

Drop the final vowel and add ‘G’

Add the first letter of the suffix and then add the suffix

Drop the first letter of the suffix and add the rest of the suffix

Ends in 2 or more consonants or 2 or more vowels

Double the last letter, then add ‘H’

Drop the leftmost letter of the final sequence of either vowels or consonants, then add the suffix

Add the first letter of the suffix, then add the suffix



Sample Data :                                                            Sample Output :

            XQAC ZVM                                                  Original String :  XQAC ZVM

            PDAE AV                                                                  Plural :  XQACCH

            SNIC SY                                                                    Suffix :  XQCZVM

                                                                                    Original String :  PDAE AV

                                                                                                Plural :  PDAEGH

                                                                                                Suffix :  PDAEAV

                                                                                    Original String :  SNIC SY

                                                                                                Plural :  SNIG

                                                                                                Suffix :  SNICY