dynamically allocated LINKED LIST,

profileTopsolutions
 (Not rated)
 (Not rated)
Chat

You will be modifying the program you wrote for programming assignment #4.

The program will store the realty listings data as a dynamically allocated LINKED LIST, instead of an array of
records.

The program will allow the realtors to both maintain and use the listings data.

1. Again, begin the program by asking whether to use existing information:

If the user chooses to use existing data, ask the user for the filename of the data file.

Modify what happens when you verify that the given file exists. If the file does not exist,
let the user choose whether to enter another filename or go to the action menu.

(NOTE: You will need to add the line:
filestreamVar.clear();
to clear the filestream error before trying another file)

Continue to check each file entered by the user, until one exists, or the user chooses to go to
the action menu.

If the name of an existing file is entered, load the data from the file into a dynamically
allocated linked list.

The file data lines are still formatted as:
111111 229700 0 80501-2345 Jones Realty
345678 176900 1 80513-2918 Metro Brokers

NOTE: There is no longer a specific size restriction on the number of listings that can be
entered, so the program will no longer keep track of the number of listings stored.
Instead when you try to allocate memory for each new node, you must validate that
memory was allocated, before using it.

2. After listing records have been read from a data file into the linked list (or the user chooses to proceed
to the action menu without reading records from an existing file), display an action menu of choices, as
follows:

Display All listings to the screen (same as lab #4, but updated to use the linked list)

If the list is empty, simply display a message stating there are no listings are stored.
Otherwise, display all listing data, one listing per line (with column headers).

Sample output lines:
Asking Listing
MLS# Price Status Zip Code Realtor
------ ------- --------- ---------- ------------
111111 229700 Available 80501-2345 Jones Realty
345678 176900 Contract 80513-2918 Metro Brokers


Add listing(s) (same as lab #4, but updated to use the linked list)

i. Create a new node to store the data for the new listing.
Validate that memory was allocated, before using it.

ii. Error check all data entered (use same specifications as lab #4) and store the data in the
new listing node.

iii. Insert the new listing node into the linked list (top or bottom – your choice).

iv. Loop until the user chooses to exit, or memory can no longer be allocated.


Remove a listing (same as lab #4, but updated to use the linked list)

If the list is empty, simply display a message stating there are no listings to delete.

Otherwise:
i. Display MLS# of all listings, as choices for user
ii. Read the MLS# of the listing to delete.
iii. Verify the format of the entered MLS# is valid before using it to search (6-digits)
• Loop until an MLS# with a valid format is entered.
iv. Search for the specified MLS#
• If the MLS# given is not found in the list, display an error message.
• If found, delete the node (and de-allocate the memory) and display a message
confirming that the listing has been deleted


Change asking prices (NEW function)

Each line of a data file, CHANGES.TXT, contains an MLS number and a dollar amount.

Sample CHANGES.TXT data line:
111111 25000
222222 10000

Match MLS numbers in the CHANGES.TXT file to the MLS numbers of listings in the
linked list, using the method described below:

If the list is empty, simply display a message stating there are no listings to match

Otherwise:

i. Verify that a CHANGES.TXT data file exists. If not, just issue an error message and
return to the menu.

ii. Read one line of data from the CHANGES.TXT file and attempt to match the MLS# in
to an MLS# in the listings linked list.

If a match is found
a) Reduce the asking price of the listing by the amount in the CHANGES.TXT file
b) Display the MLS# and the new asking price

iii. Loop, reading one line of data from CHANGES.TXT and trying to match the MLS#,
until all lines have been read. Be sure to start over again at the top of the linked list each
time you loop.

NOTE: Some data lines may not match any listing MLS#, and some listings may have
multiple reductions in the CHANGES.TXT file.

Sample output lines:
MLS number New Asking Price
---------- ----------------
111111 204700
333333 125900
111111 200700

iv. If there are NO matches to any items in the CHANGES.TXT file, issue a message saying
that no price reductions were made, before returning to the menu.


e. Exit the program (modified function)

    • 10 years ago
    complete solution

    Purchase the answer to view it

    blurred-text
    • attachment
      realtors_linkedlist_cpp.zip