You are on page 1of 5

Assignment

71
(300 Points)

PART I

Question 1

In this question, you will read words from a file and place them into an array of type
string.
1- Make a data text file “words.txt” – that contains one word on each line. Use at
least 20 words.
2- Now write a program that reads the words in the file into an array of strings
(a repeated word should not be inserted into the array – your program
should not allow that and you should make sure your data file has duplicate
words to test this functionality). Make your array size enough to hold 1000
words. To read the words into the array, you should make a function that
takes a string array, a data size integer (dsize) by reference and an ifstream –
please look at the example we did in class.
3- Declare your array and file streams in main and call the function that reads
the data into the array.
4- Write a printArray function that takes a string array, the dsize and an
ostream object so that you could print to the console or to an output file.
5- Print your array from main by calling the printArray function – once to the
console and once to a file “wordsoutput.txt”.
6- Use the selectionSort Algorithm that we covered in class to sort the array.
7- Repeat #5 and make sure the array is sorted.
8- Find the maximum string and the minimum string in the array (remember
arrays are compared based on the ASCII value).
9- Write a function that takes a string and converts every character of it to
uppercase. Now call that function from a function that you pass the array and
dsize to, to uppercase all words in the array (convert all words in the array to
uppercase letter) and call that from main passing your array to that function.
Print the array.

Question 2

A. In this question, you will read two data files that include integers into two
different arrays – the same way we did in class (but we are doing to arrays
here). Duplicates are ok.

1- After you read the data into the array (use one function that takes an int
array and a dsize by reference just like we did in class, and call that from
main to fill both arrays).


1 All numbers in this assignment should be formatted to 2 decimal points.
2- Include a printArray function so that you could print the two arrays. Use
array size 1000.
3- Use a sort algorithm to sort both arrays.
4- Now write a compareOrder function that takes two arrays and their data
sizes. If the data size is the same and every element in the first array is equal
to element in the same corresponding position in the second array (both
sorted) – then the arrays are equal (return 0). If the very first element that is
different is larger in one array than the other array then the first array is
larger (return 1) otherwise (return -1). If the dsizes are different, the longer
array is larger (return 1 if array1 is larger than array 2 and -1 otherwise).
5- Call the compareOrder function from main passing your two arrays and their
corresponding dsizes and give appropriate messages. (Please see Hint -
required).
6- Now write a compareSum to compare the two arrays based on the sum of
their elements – follow the same theme of returning 0,1 or -1 – and call from
main with appropriate messaging (please see Hint - required).

B. Make a new program. Copy all your code and it change it so that it uses a
vector instead of an array. You don’t have to use a preset size for the vector.

Hint: Instead of calling compareOrder and CompareSum and including logic code for
messaging in main (ugly), write a void wrapper function compare that would take a
compare type, the arrays and their dsizes and will call the appropriate compare
function with the arrays and the dsizes and produce the appropriate messaging).


Part II

Your task is to read a file that consists of credit card accounts, calculate interest
charges, update the balance and write the information to a new file.

Tasks
A. Open a text file and type at least ten records (each full record of an account
should be on a separate line) 2 . Each record will consist of the following items
separated by spaces:

1- Credit Card (16 digits – no dashes or spaces – you should consider these as
characters because you will not do any arithmetic operations on credit card
numbers). You should use a string variable for credit card number.
2- First Name.
3- Last Name.
4- Interest Rate (between 11.4% and 24.9%)


2 Please don’t use TextEdit on the Mac to create your text data. Download Sublime

and use that as your text editor – otherwise, you may have problems.
5- Balance from Previous statement.
6- Current charges.

Save the file as “balances.txt”3.

B. Now write a C++ program that would read each record, calculate the interest
charges on the previous balance for the current period (one month), add the current
charges, calculate the new balance and write out the same record format with the
newly calculated balance (and 0 current charges of course). Name the file
“newbalance.txt”. You should use a function that returns a double to make the
calculation of the new balance. Your function should take parameters of (interest
rate, previous balance, and current charges) and return new balance. Please don’t
forget to divide the interest rate by 12 to get the monthly rate.

C. Run your program. Paste your code into a word document, take screen shots (no
phone pictures) of the output. Please upload the word document along with your
“balance.txt” and “newbalance.txt” files to BB.

Part III

1- Write a struct or a class PersonType which will have


firstName, lastName, eID (as an int), salary, and title

2- Write a struct or a class CompanyType that will have an cID,
Name, City, State and Employee as an array of PersonType –
let us limit our exercise to companies of size 1000 or less –
and the number of employees as members.

3- Hide all variables for EmployeeType and CompanyType –
except the array in CompamyType.

4- Write parameterized constructors for each struct/class – a
person can be instantiated by all its attributes except salary
and title. A company can be instantiated by ID, name and
current number of employees (start with 0 at the time of
instantiation).

5- Write appropriate getters and setters for each. To return a
list of the employees of the company, you obviously can’t
return an array. But if you use a vector you could. Ignore that
particular getter – and I will do that part with you on

3 Please make sure your cursor is at the end of the last record not at the beginning of

a new line.
Thursday.


6- Add a void method hire to CompanyType that takes as
parameter a PersonType, salary, title. The method should
add an employee to the array of employees of that company,
and set the salary and title of that Person.
7- Add a method to Employee called giveRaise with a
percentage.

8- In main() –

a. Make a data file that includes employees, and another
one that includes companies, load them in, and
Instantiate a the Companies and Persons – making
sure that an employee works for an existing company
in the company file – if an employee works for a
company that does not exist in the company file, you
need to add the company – your logic should be able
to do this.
b. Declare a an array or a vector of CompanyType and
add all companies to the array or vector.
c. Loop through companies and print each company
followed by the employees working in the company.
d. Print the avg salary per company.
e. Print the total avg salary across companies.
f. Assume each company will give a raise that ranges
between 3%-5%. Assign such a raise to each company
randomly and then give its employees a raise, and
redo parts d and e.
g. Sort all employees of all companies by salary
h. Sort all companies by the avg of their salaries.
i. Write a method or methods to have an employee
move from one company to another.









Submission

1- Submit your cpp files pasted in a word document. Paste the code not an
image.
2- Submit the data files you used separately as files not pasted in the word
document.
3- Include a screenshot of every output for each case. No screenshots =
ZERO. You must paste the screenshot with the appropriate question in
the word document – I will not accept image files. You need to follow
instructions of how to submit.
4- For Question 2 of Part I, please make different sets of two data files to
test your code for all cases.

You might also like