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

CPP Assignment3

Cpp Assignment3

Uploaded by

yashubgoel43
Copyright
© © All Rights Reserved
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
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