attachment
Assignment #4: CS 603 – Fall 2019 Assignment #4 CS 603 X.Page Fall 2019 Programming Assignment 4 Programming Project Pig Latin Translator: Talk in a secret language worth 25 points For this project you’ll write a program that will ask the user to enter a phrase to translate into Pig Latin. If you are not familiar with this word game, according to Wikipedia: Pig Latin is a language game in which words in English are altered. The objective is to conceal the meaning of the words from others not familiar with the rules. The reference to Latin is a deliberate misnomer, as it is simply a form of jargon, used only for its English connotations as a strange and foreign-sounding language. There are many versio ns of this game. The one we will use fo llows these rules: S t e p 1 : • I f a w o rd s t a rt s w it h a co nso na nt , a l l l e t t e r s b e f o re t he f i r s t vo w e l i n tha t w o r d a re mo ve d t o t he e nd . • I f a w o r d s t a rt s w it h a vo w e l , a l l l e t t e r s a re l e f t i n t he i r o r i g i na l o rd e r . S t e p 2 : • T a ke t he w o r d f o r me d i n s t ep o ne a nd a d d “a y” t o t he e nd ( us e L OWE R C ASE “a y” as s ho w n he re and i n t he e xa m p le s) Specifically, your program will behave as follows: • Prompt user for a phrase containing at least one word • Display the resulting phrase translated into Pig Latin based on the rules outlined above Two sample interactions below illustrate how the program is supposed to run (user input in bold): Please enter a phrase: White snow flakes Your phrase translated to Pig Latin: iteWhay owsnay akesflay Here is another interaction: Please enter a phrase: “ oRAngE, snoW-FLAKES!? ” Your phrase translated to Pig Latin: oRAngEay oWsnay AKESFLay And another interaction: Please enter a phrase: rainBoW Your phrase translated to Pig Latin: ainBoWray Assignment #4: CS 603 – Fall 2019 These examples illustrate requirements about how the program needs to behave. To receive full credit, your program should meet the requirements above and follow these rules: 1. There may be white space and common punctuation symbols, but the resulting Pig Latin phrase should extract only the letters that make up the words. There may be any number and combination of the following symbols that separate/precede/follow each word: • comma , • period . • dash - (dash between 2 words IS NOT a compound word) • double quote “ • single quote ‘ • open parenthesis ( • close parenthesis ) • question mark ? • exclamation ! 2. Display the Pig Latin phrase with the case of each letter preserved, even though they may have changed order. So wHiTe would still have lowercase w, uppercase H, lowercase i, etc. even though the order of the letters has changed and there is “ay” appended to the word. 3. Have exactly one space between the words in the output and no space before or after the phrase. For this assignment, you can make the following important simplifying assumptions: 1. the user will enter a phrase that contains at least one word (based on the above rules), 2. the only symbols in the phrase will be the ones mentioned above and the letters that make up the words (no numbers or other symbols). Make sure your program runs on the sample input shown above, and also test your program on additional phrases that exercise the rules above. That said, your program is expected to only work on input in which the above conditions are met. Grading. The grading schema is as follows • 2 points for correctly accepting the input (i.e. the text and the phrase), • 3 points for displaying the words in the correct order • 3 point for handling words starting with a consonant • 3 point for handling words starting with a vowel • 4 points for leaving the case of the letters unchanged • 4 points for displaying only a single white space between words and no spaces before/after phrase • 4 points for handling non-white-space symbols and extra whitespace • 2 points for good programming style, as defined in the previous assignment. Hints and useful programming tricks for tricky cases: • To avoid having to enter text every time you test your program, at the first stage of developing your program, hardcode the text by assigning it to a variable directly in the code. Later on, when you’ve tested the program on different text, you can update it to read the text from the user and test it again. • Think about the high-level patterns in this assignment and about how you can capture this in your String methods. For example, you should be able to use the same piece of code to translate a word regardless of whether it starts with a consonant. • Study the example interactions carefully – they will reinforce rules that may not be as salient just by reading the requirements. Good luck and Happy Programming! (produced on October 24, 2019 by Xinru Page) Programming Project