Add Final Project README

This commit is contained in:
2026-04-15 00:18:36 +02:00
parent 229973910d
commit 46fd5ce627

View File

@@ -0,0 +1,163 @@
# 🎯 Final-Projekt: Todo-App
*Vollständige CRUD-Anwendung in C und C++*
---
## 📋 Projektübersicht
Dieses Final-Projekt implementiert eine vollständige **Todo-Liste** als Kommandozeilen-Anwendung mit:
-**C-Version:** Manuelle Speicherverwaltung, structs, Datei-I/O
-**C++-Version:** Klassen, STL, moderne C++17 Features
---
## 🗂️ Dateien
```
final_project/
├── todo_c/
│ ├── todo.c # C-Implementierung
│ ├── todo.h # Header (optional)
│ └── todos.dat # Datenbank (automatisch erstellt)
└── todo_cpp/
├── todo.cpp # C++-Implementierung
└── todos_cpp.txt # Datenbank (automatisch erstellt)
```
---
## 🚀 Schnellstart
### C-Version kompilieren:
```bash
cd todo_c
gcc -o todo todo.c -Wall -Wextra -std=c99
./todo
```
### C++-Version kompilieren:
```bash
cd todo_cpp
g++ -o todo todo.cpp -Wall -Wextra -std=c++17
./todo
```
---
## ✨ Features
| Feature | C | C++ |
|---------|---|---|
| Todo hinzufügen | ✅ | ✅ |
| Todos anzeigen | ✅ | ✅ |
| Todo abschließen | ✅ | ✅ |
| Todo löschen | ✅ | ✅ |
| Speichern/Laden | ✅ (Binär) | ✅ (Text) |
| Todo bearbeiten | ❌ | ✅ |
| Nach Status filtern | ❌ | ✅ |
| Suchen | ❌ | ✅ |
| ID-Management | Manuell | Automatisch |
---
## 🎓 Lernziele
### C-Version üben:
- Structs und Arrays
- Datei-I/O mit fread/fwrite
- Manuelle Speicherverwaltung
- Pointer-Arithmetik
- String-Handling
### C++-Version üben:
- Klassen und Objekte
- STL (vector, string, algorithm)
- Stream-I/O (fstream, sstream)
- Lambda-Funktionen
- Move-Semantik
---
## 📝 Beispiel-Session (C++)
```
📝 Willkommen zur Todo-App (C++)!
=== TODO-APP (C++ Edition) ===
1. Todo hinzufügen
2. Alle Todos anzeigen
...
Wahl: 1
Titel: Einkaufen gehen
Beschreibung: Milch, Brot, Eier
✓ Todo hinzugefügt!
Wahl: 1
Titel: C++ lernen
Beschreibung: Module 7 durcharbeiten
✓ Todo hinzugefügt!
Wahl: 2
=== DEINE TODOS ===
#1 [ ] Einkaufen gehen
Milch, Brot, Eier
#2 [ ] C++ lernen
Module 7 durcharbeiten
Wahl: 5
Todo-ID: 1
✓ Todo #1 abgeschlossen!
Wahl: 9
✓ 2 Todos gespeichert!
Wahl: 0
Speichern vor Beenden? (j/n): n
Auf Wiedersehen!
```
---
## 🔧 Erweiterungsmöglichkeiten
### Einfach:
- [ ] Kategorien/Tags hinzufügen
- [ ] Prioritäten (Hoch/Mittel/Niedrig)
- [ ] Fälligkeitsdatum
### Mittel:
- [ ] Mehrere Listen (Projekte)
- [ ] Export zu CSV/JSON
- [ ] Undo-Funktion
### Fortgeschritten:
- [ ] Netzwerksynchronisation
- [ ] GUI mit ncurses (C) oder Qt (C++)
- [ ] REST-API-Version
---
## 🏆 Challenge
**Vergleiche C und C++ Version:**
1. Zähle die Code-Zeilen
2. Vergleiche die Fehlerbehandlung
3. Welche Version ist einfacher zu erweitern?
4. Wo spart C++ Code durch STL?
---
## 📚 Zugehörige Kursmodule
- **Modul 1:** Memory-Management (malloc vs new)
- **Modul 5:** Datenstrukturen (Array vs vector)
- **Modul 7:** OOP (struct vs class)
- **Modul 8:** Modularisierung
---
**Viel Erfolg beim Programmieren! 🚀**