Website Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit8916a9bd1b6673be6d8d857b8efb9378c9c8585d (patch)
Author
 Angeld55 <angel_dimitriev@abv.bg>
2021-03-05 15:05:49 +0200
Committer
 Angeld55 <angel_dimitriev@abv.bg>
2021-03-05 15:05:49 +0200
Filesee2214a78edeeb2dbb169ef955793c71609d62e6
Object-oriented_programming_FMI-8916a9bd1b6673be6d8d857b8efb9378c9c8585d.tar
Object-oriented_programming_FMI-8916a9bd1b6673be6d8d857b8efb9378c9c8585d.tar.gz
Object-oriented_programming_FMI-8916a9bd1b6673be6d8d857b8efb9378c9c8585d.zip
Parenta666b87cad0968ad76c36cd654dae5c4da0a05f9 (diff)
sem2
1 files changed, 99 insertions, 37 deletions
-rw-r--r--Sem. 02/README.md136
diff --git a/Sem. 02/README.md b/Sem. 02/README.md
index b59d8ac..d1bd441 100644
--- a/Sem. 02/README.md
+++ b/Sem. 02/README.md
@@ -1,52 +1,114 @@
-## Сруктури
-Структурите в C++ се използват за групиране на елементи. Елементите, наричани още членове, могат да бъдат от различен тип и с различна дължина.
+## Текстови файлове
+Видове потоци:
+ - Потоци за вход (istream)
+ - Потоци за изход (ostream)
- struct Box
- {
- int height;
- int weight;
- }
+##### Пример за работа с поток за вход (cin)
+ ```c++
+#include <iostream>
+using namespace std;
+int main()
+{
+ int a, b;
+ cin >> a >> b;
+}
+ ```
+ Четем от стандартния вход.
-### Деклариране на обекти от новия тип
+##### Пример за работа с поток за изход (cout)
+ ```c++
+#include <iostream>
+using namespace std;
- Box b; //default values to height and weight
-
- Box b2 = {3, 4} // height = 3, weight = 3;
-
- Box b3;
- b3.height = 13;
- b3.weight = 14;
+int main()
+{
+ int a = 10;
+ int b = 12;
+ int c = a + b;
+ cout << a << " + " << b << " = " << c << endl;
+}
+ ```
-### Подаване във функции
-Ако няма да променяме обекта го подаваме по **константна референция.**
+### Работа с поток за вход от файл (ifstream)
+Пример за четене от файл!
+ ```c++
+#include <iostream>
+#include <fstream>
+using namespace std;
+
+int main()
+{
+ ifstream file("myFile.txt");
+
+ if (!file.is_open())
+ {
+ cout << "Error!" << endl;
+ return -1;
+ }
+ int a, b;
- void calculcateArea(const Box& b)
- {
- return b.height * b.weight;
- }
- Може и само по **референция**, но тогава промените ще се отразят върху подадения аргумент.
+ file >> a >> b;
+
+ file.close();
+}
+```
+### Работа с поток за изход към файл (ifstream)
+ ```c++
+#include <iostream>
+#include <fstream>
+
+using namespace std;
- void readBox(Box& b)
- {
- cin >> b.height >> b.weight;
- }
-.Може и да го подаваме по **копие**.
+int main()
+{
+ ofstream file("myFile.txt");
- Box revertBox(Box b)
- {
- int temp = b.height;
- b.height = b.weight;
- b.weight = temp;
-
- return b;
+ if (!file.is_open())
+ {
+ cout << "Error!" << endl;
+ return -1;
}
-**Задача**:
-Вход: Въвежда се цяло число **N** и после **N** тригъгълника в равнината, определени от 3 точки ( 6 координати).
+ int a = 3;
+ int b = 10;
+
+ file << a << " " << b << " " << a + b << endl;
+
+ file.close();
+}
+ ```
+**Задача 1**:
+
+Напишете програма, която отпечатва собствения си код.
+
+**Задача 2**:
+
+Напишете програма, която чете comma-separated values (**CSV**) файл със студенти **със следните 4 полета**: Първо име, Фамилно име, Имейл, Факултетен номер.
+**Примерен файл:** (students.csv).
+
+**Домашна работа**:
+
+ 1. Допълните примера от семинара да чете факултетните номера на студентите.
+2. Направете функция, която след зареждане на файла, да отпечатва на **стандартния изход** информация за студента при подаден **факултетен номер**.
+3. Напишете функция, която приема editFirstNamе, която **по подаден факултетен номер и низ**, да променя първото име на студента с дадения факултетен номер първото име с подадения низ.
+4. Променете функцията **saveStudentsToFile** за да запазва студентите в същия формат (**CSV**). Т.е. при повторно пускане на програмата да може да прочете новият генериран файл.
+
+
+Да се реализира прост интерфейс, с който да се извикват фунцкиите през конзолата:
+Пример (входът от потребителя започва с '>')
-Отпечатайте тригълниците **сортирани по лицата им.** \ No newline at end of file
+ ```
+>open students.csv
+>print 80000
+Name = Stefan Velkov, Email: stefan@yahoo.com, FN: 80000
+>edit 8000 Krum
+>print 80000
+Name = Krum Velkov, Email: stefan@yahoo.com, FN: 80000
+>save
+file students.csv successfully saved!
+``` \ No newline at end of file