Website Summary Files Commits Branches @commit @diff @stats
path: root / Week01 / Exercise03 / main.cpp
diff options
context:
space:
mode:
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;
+}