Assignment 21
Due Thursday, June 21 at 9:20am on Canvas
Quiz 7 Answer Key
Assignment 21.1: More Barnyard Animals (10 pts) - In the previous version of this assignment (20.3 from last night's homework) we wrote a program to read in numbers from a file and save them in 5 separate integer variables.
- Now, we will alter the above assignment so that it uses arrays.
- From
the previous version of your program, remove the 5 integer variables
that you declared at the top of main, and instead, declare an integer
array of length 5.
const int SIZE1 = 5;
int numAnimals[SIZE1];
- Now, alter your 5 fin statements to store values in the array instead -- each number at one index of the array
- Next, at the top of main, declare a string array named animals, with a corresponding constant variable named SIZE2, assigned the value of 5.
- Store the following values in the string array -- one at each index:
"sheep"
"donkeys"
"goats"
"geese"
"cats"
- We are now going to write the contents of our two arrays to the output file.
- Below the statement fout << "Animals at our farm" << endl; replace the subsequent 5 fout statements with a for loop.
- Use this for loop to print out the contents of two arrays to the output file.
- Hint, use one of the array's SIZE variables in the test condition of your for loop.
- See the notes from Tuesday's class for an example of how to print an array using a for loop, or see your in-class activity 21.3.
- Submit your animals.cpp program to Canvas when you are finished
Assignment 21.2: Number of Numbers (10 pts) - For this assignment you will be working with arrays.
- Open a new C++ file called nums.cpp
- 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.cpp to Canvas when you are finished.
Assignment 21.3: 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 Stacey Cahill O 4082123333 Mohammed Abbas M 4083134444 Kumari Chakrabarti F 4086667777 Shakil Smith M 4082123333 Jung Ahrin F 4089257788 Pedro Martinez M 4086162323 Ally Gu
O 4089256776
- 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 Mx. Stacey Cahill 408-212-3333 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 Mx. Ally Gu
408-925-6776 - 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.
- Finally, whenever the file contains an O below the customer name, the contacts.txt file should have the word Mx. 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 function with the following signature:
void formatPhone(string& phone); //Takes an unformatted 10-digit phone number as a string //Alters the string to be formatted like so XXX-XXX-XXXX - Additionally, you must use a while loop to read in the customer information.
- Copy and paste the starter code into a new C++ file called contacts.cpp
#include <iostream> //add two more libraries here for file I/O using namespace std;
void formatPhone(string& phone); //Takes an unformatted 10-digit phone number as a string //Formats the string in the format XXX-XXX-XXXX
int main() { string name, gender, phone; //declare your input file stream variable here //open the customer.txt file //check for failure //decare your output file stream variable here //open contacts.txt file //check for failure while () { //Will you need fin >> or getline() inside the while loop test to read in the name? fin >> gender; //one more line here to read in the phone number //if, else if and else statements here //function call to formatPhone here to alter the phone number
//call fin.ignore() or fin >> ws to avoid problem when fin before a getline
} //close your input and output file streams return 0; }
- When your code is providing the correct output in the contacts.txt file, upload your contacts.cpp file to Canvas
|
|