1. (was #3 on h/w 1) Write a program to produce computer-generated poetry. You should have (small) stores of nouns, verbs, adjectives, adverbs and punctuation. Math.random() yields a random double between 0 and 1, so use this to choose which 'store' to use next, and to choose which thing to print from each store. Use it also to control the lengths of each line. You might also like to arrange thigs so that, for example, if you've just printed a noun, you increase the probability that you next print a verb or some punctuation. Experiment with this until you have something you like. 2. (was #5 on h/w 1) Write a text-copy program which reads text in line by line from one file and writes it out to a different file. Ask the user for the file names (be _very_ careful with this!!). Include a 'flag' which allows the program to output to the screen the number of characters (non-blank), 'words' (things separated by blanks or punctuation), and lines in the copied file. Modify your program so that it can read in the two file names as command line arguments. 3. Write a program to calculate income tax (in an unspecified country) according to the following rules: - A tax allowance is given according to marital status; a single person is allowed $3000, a married person $5000. - The pension contribution is 6% of the gross salary. Taxable income is the sum of the single/married allowance and the pension contribution, subtracted fom the gross annual salary. Incom tax is based upon taxable income, and is levied at the following rates: band 0: the first $5000 of taxable income attracts tax at 0% band 1: for the part between $5000 and $20000 the rate is 20% band 2: for the part between $20000 and $30000 the rate is 30% band 3: for the part between $30000 and $40000 the rate is 40% band 4: for the part above $40000 the rate is 50% Devise a class PersonTax which contains a constructor to input the name of a person, their gross annual salary, and their marital status. The class should have methods to return the tax allowance, pension contribution, taxable income, income tax payable, and net salary for that person. Your program should be able to calculate and display the tax data for several people, the output being nicely formatted to the screen. You program should also be able to provide the choice either to read in data interrogatively from the keyboard or to read in the data from a file (asking for the name of the file) -- the information in the file will be formatted with one line per person, with the data separated by spaces, in the order: last-name first-name gross-annual-salary marital-status. 4. Create a class VeryLargeInteger which contains the following methods: public class VeryLargeInteger { // ------------- appropriate data fields ---------------------- // ------------- constructors --------------------------------- public VeryLargeInteger(String value); public VeryLargeInteger(); // constructor initialising to zero // ------------- instance methods ----------------------------- public VeryLargeInteger addTo(VeryLargeInteger b); public VeryLargeInteger subtract(VeryLargeInteger b); public VeryLargeInteger multiplyBy(VeryLargeInteger b); public VeryLargeInteger divideBy(VeryLargeInteger b); public boolean equals(VeryLargeInteger b); public boolean isGreaterThan(VeryLargeInteger b); public boolean isNotZero(VeryLargeInteger b); public void displayNumber(); } Write an interactive program which uses this class to allow the user to add, multiply, etc., VeryLargeIntegers from the keyboard.