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

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. 

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

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)
Powered by