Computers and Technology
write a complete program to do the following: the main program calls a method to read in (from an input file) a set of people's three-digit id numbers and their donations to a charity (hint: use parallel arrays). then the main program calls a method to sort the id numbers into descending order, being sure to carry along the corresponding donations. the main program then calls a method to print the sorted lists in tabular form, giving both id numbers and donations. here are the details: (a) the main program calls a method to read in the data from a file. the main program declars two arrays idnumbers and donations and pass these 2 array to the method to fill in. the file consists of sets of data, each of which contains a person's three-digit integer id number and a donation in dollars and cents. (e.g., 456 200.00 or 123 302.34). the file is read until end-of-file is reached. the method returns how many sets of data were read in. the main program calls the return value donorcount. (b) the main program calls a separate printing method passing the two original arrays idnumbers and donations as parameters. the method prints the original set of data in the form of a neat table and sends the output to an output file. when the arrays print, there should be an overall heading, plus headings for the columns of id numbers and donations. (c)then the main program sends the array of donation to a method which is going to find out the highest, and the lowest donation. this method opens the same file as in part (b) and writes how many donations are above, below, and exactly equal to the average. (d) then the main program sends the array of id numbers, the array of donations, and the size donorcount to a sorting method. this method sorts the id numbers into numerical order using a selectionsort. be sure to maintain the match-up of id numbers and donations. for example, 456 should always be associated with 200.00, no matter where 456 moves in numerical order; similarly, 123 should stay with 302.34. then the sorting method prints two highest donations, and two lowest donations. when the sorting method finishes and returns control to the main program, the main program calls the printing method to write the sorted table once again in the same output file as in part (b). your arrays should have room for up to 50 entries. to test the program, have a set of data with at least 15 to 20 values in each array. make sure that your original order in not close to numerical order for either array or that the two numerical orders are not close to each othe