Website Summary Files Commits Branches @commit @diff @stats
path: root / README.md
blob: af78b8351488e5ebd556f09922be28a01b20f018 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# FMI-OOP-P1_TicketSystem
TicketSystem: Project 1 from module OOP in FMI Uni-Sofia

## Initial structure

![FMI-OOP-P1_TicketSystem Class Diagram](https://user-images.githubusercontent.com/46843671/165101458-e5799051-6459-49c4-b2c2-24f785ada0d1.png)

<details>
  <summary>Diagram source</summary>

```
#title: FMI-OOP-P1_TicketSystem Class Diagram
#background: #fdf6e3
#bendSize: 0
#fillArrows: true
#lineWidth: 2

#.groupsfe: title=italic fill=#b2ee97
#.groupv: title=italic fill=#97c8ee
#.groupsc: title=italic

[<groupsfe> System for events
	[Ticket|
    	unsigned row
    	unsigned seat
	]

	[Reservation|
		char\[6\] password
    	unsigned row
    	unsigned seat
    	String note
	]

	[Event|
    	List<Ticket> _tickets
	    List<Reservation> _reservations|
		Date date
	    String name
    	Hall* hall|
	    reserveTicket()
    	cancelReservation()
    	buyTicket()
	]
	[Ticket]<--[Event]
	[Reservation]<--[Event]

	[EventSystem|
		createEvent()
    	cancelEvent()
	    reserveTicket(char*, Date, unsigned, unsigned)
    	cancelReservation()
    	buyTicket()
    	queryFreeSeats(Event)
    	queryReservations(Event)
    	queryBoughtTickets(Date, Date, Hall)
    	queryMostVisited()
    	queryInsufficientlyVisited()
	]
	[Event]<--[EventSystem]
]

[<groupv> Venue
	[Hall|
		int number
	    unsigned rowCount
    	unsigned seatsPerRow
	]

	[Venue|
		List<Hall> halls
    	EventSystem es
	]
	[Hall]<--[Venue]
]
[System for events]<--[Venue]

[<groupsc> Standard Classes
	[List<T>|
		T _elements*
    	unsigned _count
    	unsigned _length|
    	add(T elem)
    	operator\[\](unsigned index)
    	Rule of 4
    	Move semantics
    	Operators
	]

	[Date|
		unsigned _day
    	unsigned _month
	    int _year
    	unsigned _hour
    	unsigned _minute
	]

	[String|
		char* _str
	    unsigned _length
    	unsigned _count|
    	Rule of 4
	    Move semantics
    	Operators
	]

	[Command|
		String name
    	void (*exec)()
	]

	[Menu|
		List<Command> _commands|
    	navigate()
	]
	[Command]<--[Menu]

	[UserInterface|
		List<Menu> _menus|
	    start()
	]
	[Menu]<--[UserInterface]
    
    [List<T>]-/-[String]
    [String]-/-[Date]
]
```
</details>