Assignment 20
Due Wednesday, December 6 at 9:20am on Canvas


Assignment 20.1 Social Security Numbers (10 pts)

  • Write a program that reads in a series of numbers, as Strings, from a file and converts them to valid social security numbers.
  • The numbers are contained in file is called numbers.txt.
  • This program must use a loop to read in each number from the file and store it temporarily as a String variable
  • As it reads in each number, it should convert the number to a valid SSN in the format XXX-XX-XXXX by calling a method named formatSSN.
  • Here is the information about this method:
    • The method is named formatSSN
    • It take in a String variable parameter
    • It alters the String to be a properly formatted social security number, in the format XXX-XX-XXXX
    • This function must use the substring method to format the numbers
    • It returns a formatted social security number.
  • The program will use a loop to read in each number and then call the formatSSN method on each of the Strings from the file.
  • After each String is converted to a formatted social security number, write it out to a file called socials.txt
  • Copy and paste the starter code below into a new file called SSN.java
/**
* @author
* CIS 36a
*/

import java.util.Scanner;

public class SSN {
    /**
     * converts a String to a formatted social security number
     * @param number the unformatted String of digits
     * @return a String formatted as a valid SSN XXX-XX-XXXX
     */
    public static String formatSSN(String number){
        return "";
    }
    

    public static void main(String[] args) {
        //write the program logic here
        String number;
        while (????) {
            //fill in loop body here
        }

    }

}


  • Copy and paste the below data into a file called numbers.txt:

555666777
333444555
111888494
333222567
123444555
888999000
111666434
222456333
111222999
456889939

  • Below is the output that your program should give inside of the socials.txt file
555-66-6777
333-44-4555
111-88-8494
333-22-2567
123-44-4555
888-99-9000
111-66-6434
222-45-6333
111-22-2999
456-88-9939
Once you have the correct output inside of the socials.txt file, submit your SSN.java file to Canvas



Assignment 20.2: Customer Data (10 pts)

  • Assume you work for a company that tracks customer information, including name, gender and phone numbers
  • Your company has a file called customers.txt which contains the following information:

James Brown
M
4085678432
Leanna Perez
F
4087654433
Xing Li
M
4083214555
Mohammed Abbas
M
4083134444
Kumari Chakrabarti
F
4086667777
Shakil Smith
M
4082123333
Jung Ahrin
F
4089257788
Pedro Martinez
M
4086162323
  • Your task is to read in the data from the above file using a loop, format the data, and write it into a new file called contacts.txt
  • When you are finished, contacts.txt should contain the following information:

Mr. James Brown
408-567-8432
Ms. Leanna Perez
408-765-4433
Mr. Xing Li
408-321-4555
Mr. Mohammed Abbas
408-313-4444
Ms. Kumari Chakrabarti
408-666-7777
Mr. Shakil Smith
408-212-3333
Ms. Jung Ahrin
408-925-7788
Mr. Pedro Martinez
408-616-2323
  • In other words, whenever the customers.txt file contains an M below the customer name, the contacts.txt file should have the word Mr. before the name.
  • And, whenever the customers.txt file contains an F below the customer name, the contacts.txt file should have the word Ms. before the name.
  • In addition, the unformatted phone numbers in customers.txt must be formatted as XXX-XXX-XXXX inside of contacts.txt.
  • To format the phone numbers, you must write a method with the following signature:
    /**
    * Takes an unformatted 10-digit phone number as a String
    * Alters the String to be formatted like as a phone number
    * @param phone the unformatted phone number
    * @return the formatted phone number as XXX-XXX-XXXX
    */
public static String formatPhone(String phone){
    return "";
}
  • Additionally, you must use a while loop to read in the customer information.
  • Write your program in a file called Contacts.java
  • When your code is providing the correct output in the contacts.txt file, upload your Contacts.java file to Canvas


Assignment 20.3: Number of Numbers (10 pts)

  • For this assignment you will be working with arrays.
  • Open a new Java project called Nums
  • Prompt a user to enter in the size of the array (the number of numbers).
  • Next, using a for loop, prompt the user to enter that many numbers, and store each one in your array until your array is at full capacity.
  • Using the same, or a second, for loop, sum the numbers and report their sum to the user.
  • Also, multiply the numbers together and report their product to the user.
  • The sum and the product should be printed to one decimal value only.
  • Your program should work identically to the sample output below:

Enter the number of numbers: 4
Enter 4 numbers:

Number 1: 3.2
Number 2: 6.7
Number 3: 2.9
Number 4: 4.6

The sum of the numbers is: 17.4
And the product is: 286.0


  • Another run of the program might give the following output:

Enter the number of numbers: 8
Enter 8 numbers:

Number 1: 2.1
Number 2: -5.6
Number 3: 9.0
Number 4: 8.7
Number 5: -2.2
Number 6: 8.2
Number 7: 9.5
Number 8: 1.4

The sum of the numbers is: 31.1
And the product is: 220931.3

  • Upload Nums.java to Canvas when you are finished.