COMSATS University Islamabad Sahiwal Campus Course Title: Algorithms and Data Structures Lab Instructor: Semester: Mr. Ali Usman Time Allowed: 150 Minutes Batch: Student’s Name: Course Code: CSC211 Program Name: BS(CS) Section: Date: Maximum Marks: Reg. No. CUI/ Credit Hours: 4 08-05-2021 30 /SWL Important Instructions / Guidelines: 1. Copied papers will be marked as zero 2. paper submitted after assigned time will not be accepted 3. Paper must include (Name, Roll-no#) otherwise paper will not be accepted. You are building a system for a Housing Society, such as Bahria Town. You are supposed to design a very simple system that allows them to keep a record of how many blocks, sectors, streets, and houses the society has. Your system also generates unique names for blocks and sectors, and unique numbers of streets and houses. You must design the class structure yourself. 5 marks in this lab are for good class structure and good decisions regarding System Structure. A society has many blocks (A Link List), each block has many sectors (A link List), each sector has many streets (A link List), and each street has many houses (A link List). The society has a name, each block has a name (an alphabet), each sector has a name (an alphabet), each street has a number, and each house also has a unique house number. Note: Society is a HEAD NODE. All Other Node Types can have inherited from Node of type Society. So all nodes can point parent or child nodes types in any arbitrary order. When your program starts: • • • • • It asks the user the name of the Society as well as the City in which it is located. Your program should be able to handle input that has more than one words. Then, it asks the user how many blocks does this society has. Let’s say the user says 3. The 3 blocks are named Block A, Block B, and Block C automatically by your system. While creating each Block, you ask the user how many sectors exist in each block. Let’s say that while creating Block A, the user says that this block has 2 sectors. Your system will automatically name these sectors Sector A and Sector B. While creating each Sector, the system asks the user how many streets the sector has. Let’s say that while creating the Sector A, the user says that it has 3 streets. Your system will automatically name these streets Street 1, Street 2, and Street 3. While creating a street, the system asks the user how many houses there are in the street. Let’s say the user says 10 houses for Street 1, your system will automatically name these houses House 1, House 2, …, House 10. If the user adds 5 houses to Street 2, these houses will be named House 11, House 12, …, House 15. No two houses in the society can have the same number. No two streets in the society can have the same number. No two sectors can have the same alphabet (you can assume that the user won’t ask for more than 26 sectors in total). No two blocks will have the same alphabet (assume total blocks < 26). Once the input is taken and the society has been created, display the society. For example, look at this display: This display shows that this society has three blocks: Block A, Block B, and Block C. • • • Block A has 2 sectors named Sector A and Sector B. Sector A has 2 streets: Street 1 and Street 2. Street 1 has 5 houses, whereas Street 2 has 10 houses. Sector B has one street: Street 3 which has 3 houses. Block B has one sector, one street, and one house. The same goes for Block C. Marks will be deducted if your output is messy and not properly indented. The main function should only include the following code: int main() { Society society; society.display(); return 0; } The line Society society; creates the society and all of its sub-structures and takes all the input required. The line society.display(); displays the society as shown in the screenshot above.