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...

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.





May 18, 2022
SOLUTION.PDF

Get Answer To This Question

Submit New Assignment

Copy and Paste Your Assignment Here