Website Summary Files Commits Branches @commit @diff @stats
path: root / Week01 / Exercise03 / main.cpp
diff options
context:
space:
mode:
Commitfcf38e62e8160f2c9901bdfd33760afed28beb8d (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-02-22 19:18:46 +0200
Committer
 Syndamia <kamen@syndamia.com>
2026-02-22 19:18:46 +0200
Files838fd5897d88700491a389cdf6837e35da3347ae /Week01/Exercise03/main.cpp
oop-2025-solutions-fcf38e62e8160f2c9901bdfd33760afed28beb8d.tar
oop-2025-solutions-fcf38e62e8160f2c9901bdfd33760afed28beb8d.tar.gz
oop-2025-solutions-fcf38e62e8160f2c9901bdfd33760afed28beb8d.zip
Parentc365ede952f852c6e8feb92fc3a0766186f989f1 (diff)
feat(Week01): Add solutions
1 files changed, 40 insertions, 0 deletions
-rw-r--r--Week01/Exercise03/main.cpp40
diff --git a/Week01/Exercise03/main.cpp b/Week01/Exercise03/main.cpp
new file mode 100644
index 0000000..beea1f5
--- /dev/null
+++ b/Week01/Exercise03/main.cpp
@@ -0,0 +1,40 @@
+#include <iostream>
+#include "ioHelpers.h"
+#include "stringHelpers.h"
+
+int main() {
+ // Нямаме ограничение на броя студенти, затова просто ще сложим максимума
+ // да е най-голямата стойност за 32-битов signed integer: 2^31 - 1
+ // По-коректно е да се ползват специални константи, които пазят максималната
+ // стойност на отделните типове данни, защото на стар компютър, int може да
+ // не е 32 бита.
+ unsigned numStudents = readInteger("Number of students: ", 0, 2147483647);
+
+ double* grades = new double[numStudents];
+ char** names = new char*[numStudents];
+
+ for (unsigned i = 0; i < numStudents; ++i) {
+ char* firstName = readString("First name: ");
+ char* lastName = readString("Last name: ");
+
+ names[i] = concatStrings(firstName, lastName, " ");
+
+ deleteString(firstName);
+ deleteString(lastName);
+
+ double grade = readDouble("Grade: ", 2.0, 6.0);
+
+ grades[i] = grade;
+ }
+
+ for (unsigned i = 0; i < numStudents; ++i) {
+ std::cout << names[i] << " has grade " << grades[i] << std::endl;
+ }
+
+ delete[] grades;
+ for (unsigned i = 0; i < numStudents; ++i)
+ deleteString(names[i]);
+ delete[] names;
+
+ return 0;
+}