Website Summary Files Commits Branches @commit @diff @stats
path: root / src
diff options
context:
space:
mode:
Commit4da4dc9f7658a25eb90647a49514680976d5c382 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-07 12:13:01 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-07 12:13:01 +0300
Filesfb407976f369c281cc850243de1f1f6b2be867ae /src
FMI-OOP-P1_TicketSystem-4da4dc9f7658a25eb90647a49514680976d5c382.tar
FMI-OOP-P1_TicketSystem-4da4dc9f7658a25eb90647a49514680976d5c382.tar.gz
FMI-OOP-P1_TicketSystem-4da4dc9f7658a25eb90647a49514680976d5c382.zip
Parentbc40623884434af1a16c4d84765fdb8719d74dff (diff)
Autocommit at 07.05.2022 @ 12:13
4 files changed, 13 insertions, 9 deletions
-rw-r--r--src/Generic/String/String.h3
-rw-r--r--src/Services/EventService.cpp14
-rw-r--r--src/Services/EventService.h2
-rw-r--r--src/UserInterface/VenueConsoleUI.cpp3
diff --git a/src/Generic/String/String.h b/src/Generic/String/String.h
index 9ef6795..5c5231d 100644
--- a/src/Generic/String/String.h
+++ b/src/Generic/String/String.h
@@ -9,10 +9,13 @@ class String {
void copyFrom(const String& other);
public:
+ String(unsigned length);
String(const char* str);
const char* get_cstr() const;
unsigned get_length() const;
+ char& operator[](unsigned index);
+
String();
String(const String& other);
String& operator=(const String& other);
diff --git a/src/Services/EventService.cpp b/src/Services/EventService.cpp
index 58b355f..ac3129d 100644
--- a/src/Services/EventService.cpp
+++ b/src/Services/EventService.cpp
@@ -135,8 +135,8 @@ StatusCode EventService::buyTicket(const char* name, const Date& date, const Tic
return Success;
}
-void EventService::createSeatingString(const char* name, const Date& date, unsigned* seatsPerRow, char* out) {
- delete[] out;
+void EventService::createSeatingString(const char* name, const Date& date, unsigned* seatsPerRow, char** out) {
+ delete[] *out;
unsigned eInd = indexOfEvent(name, date);
if (eInd == events.get_count()) {
@@ -146,18 +146,18 @@ void EventService::createSeatingString(const char* name, const Date& date, unsig
unsigned rowCount = events[eInd].get_hall().get_rows(), seatsCount = events[eInd].get_hall().get_seatsPerRow();
*seatsPerRow = seatsCount;
- out = new char[rowCount * seatsCount + 1];
+ *out = new char[rowCount * seatsCount + 1];
for (unsigned acc = 0, row = 1; row <= rowCount; row++) {
for (unsigned seat = 1; seat <= seatsCount; seat++, acc++) {
if (events[eInd].get_tickets().contain(Ticket(row, seat)))
- out[acc] = 'B';
+ *out[acc] = 'B';
else if (events[eInd].get_reservations().contain(Ticket(row, seat)))
- out[acc] = 'R';
+ *out[acc] = 'R';
else
- out[acc] = ' ';
+ *out[acc] = ' ';
}
}
- out[seatsCount * rowCount] = '\0';
+ *out[seatsCount * rowCount] = '\0';
}
diff --git a/src/Services/EventService.h b/src/Services/EventService.h
index c4dbf0c..7fc0830 100644
--- a/src/Services/EventService.h
+++ b/src/Services/EventService.h
@@ -34,7 +34,7 @@ public:
StatusCode buyTicket(const char* name, const Date& date, unsigned row, unsigned seat);
StatusCode buyTicket(const char* name, const Date& date, const Ticket& ticket);
- void createSeatingString(const char* name, const Date& date, unsigned* seatsPerRow, char* out);
+ void createSeatingString(const char* name, const Date& date, unsigned* seatsPerRow, char** out);
void queryMostVisited();
void queryInsufficientlyVisited();
diff --git a/src/UserInterface/VenueConsoleUI.cpp b/src/UserInterface/VenueConsoleUI.cpp
index cd73dc5..b5d74ae 100644
--- a/src/UserInterface/VenueConsoleUI.cpp
+++ b/src/UserInterface/VenueConsoleUI.cpp
@@ -47,13 +47,14 @@ void command_freeSeats() {
unsigned seatsPerRow = 0;
char* seating = nullptr;
- es->createSeatingString(name, date, &seatsPerRow, seating);
+ es->createSeatingString(name, date, &seatsPerRow, &seating);
if (seating == nullptr) {
handleStatusCode(E_EventDoesNotExist, ticketManagementMenu);
return;
}
table(1, seatsPerRow, seating);
+ delete[] seating;
char tmp;
inputLineBox("[Press enter to continue]", &tmp, 1);