0% found this document useful (0 votes)
2 views

CPP Assignment3

Cpp Assignment3

Uploaded by

yashubgoel43
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

CPP Assignment3

Cpp Assignment3

Uploaded by

yashubgoel43
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Calendar for multiple congregations(C++ Assignment-2)

Course Name: EGC 211, Programming 2A(C++)


Student Name: Yashub Goel
Student ID: IMT2023117

1 Sept 2023

This design document outlines the Object-Oriented Design (OOD) methodology applied to the Congregation
Event Management System. The system is designed to handle multiple large-scale congregations such as games,
concerts, conferences, and conventions. The requirements include the ability to manage multiple congregations,
venues, and events while ensuring data consistency and validation.

1 Key Entities and Relationships


1. The design is centered around the following key entities:
2. Congregation: Represents large-scale events like games, conferences, etc.

3. Venue: Represents locations where events take place.


4. Event: Represents individual activities within a congregation.
5. Reservation: Represents the booking of a venue by a congregation.

6. Calendar: Manages the scheduling of events at a venue.

2 class Definitions:
Congregation

• Attributes:
• name: string

• type: string
• startDate: Date
• endDate: Date

• Methods:
• addEvent(Event)

• deleteEvent(Event)
• reserveVenue(Venue)
• freeVenue(Venue)

Venue

• Attributes:

International Institute of Information Technology, Bangalore Page 1



• name: string
• location: Address
• capacity: int
• calendar: Calendar

• Methods:
• addEvent(Event)
• deleteEvent(Event)
• showEvents(Date)

Event

• Attributes:
• name: string
• date: Date
• startTime: Time
• endTime: Time

• Methods:
• schedule()
• cancel()

Reservation

• Attributes:
• congregation: Congregation
• venue: Venue
• startDate: Date
• endDate: Date

• Methods:
• reserve()
• free()

Calendar

• Attributes:
• events: list¡Event¿

• Methods:
• addEvent(Event)
• deleteEvent(Event)
• showEvents(Date)

International Institute of Information Technology, Bangalore Page 2


3 Relationships:
1. Congregation-Reservation: A congregation can have multiple reservations, but each reservation is associ-
ated with one congregation.

2. Venue-Reservation: A venue can be reserved by multiple congregations, but each reservation is tied to one
venue.
3. Venue-Event: A venue can host multiple events, each associated with a specific congregation.
4. Calendar-Event: A calendar maintains a list of events for a venue.

4 Design Considerations:
• Modularity: The system is designed using a modular approach, where each class is responsible for a
specific part of the functionality. This ensures that the system is easy to maintain and extend.

• Encapsulation: Each class encapsulates its attributes and provides methods to manipulate them, ensuring
data integrity and preventing unauthorized access.
• Validation: The system includes validation mechanisms for dates, times, and reservation constraints to
ensure that all inputs are consistent and valid.
• Flexibility: The design allows for future extensions, such as adding new types of congregations or events
without significant changes to the existing codebase.

5 Conclusion:
The design presented here meets the requirements for managing multiple congregations, venues, and events. The
use of object-oriented principles ensures that the system is robust, flexible, and maintainable. The accompanying
UML diagram visually represents the relationships between the entities, providing a clear overview of the
system’s architecture.

International Institute of Information Technology, Bangalore Page 3

You might also like