Uploaded by stock hack

S-2 (Data Structures)

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