Fortgeschrittene Konzepte Unit 2 von 2 Theorie + Übungen Dauer: ~45 Min.
Ömer
Ömer sagt:

Das ist es! Die letzte Unit des gesamten Kurses. Du hast von Hello World bis zu structs alles gelernt. Jetzt ist es Zeit, alles in einem echten Projekt zusammenzuführen. Ich bin stolz auf dich! 🎓

Alle Konzepte kombinieren Strukturiertes Design Vollständiges Programm Kurs-Abschluss 🎓

🎯 Das Abschlussprojekt: Kontaktverwaltung

Du schreibst eine kleine Kontaktverwaltung – ein Mini-Adressbuch. Das Projekt nutzt structs, Arrays, Funktionen, Schleifen, Ein-/Ausgabe und Strings aus allen 7 Kapiteln:

kontaktverwaltung.cC
#include <stdio.h>
#include <string.h>

#define MAX_KONTAKTE 10

typedef struct {
    char name[40];
    char telefon[20];
    int  alter;
} Kontakt;

/* Funktion: Kontakt anzeigen */
void zeige(Kontakt k) {
    printf("%-20s | Tel: %-15s | Alter: %d\n",
           k.name, k.telefon, k.alter);
}

/* Funktion: Suche nach Name */
int suche(Kontakt k[], int n, char *name) {
    for (int i=0; i<n; i++)
        if (strcmp(k[i].name, name) == 0) return i;
    return -1;   // nicht gefunden
}

int main() {
    Kontakt buch[MAX_KONTAKTE] = {
        {"Oemer",  "0664-123456", 17},
        {"Anna",   "0699-654321", 16},
        {"Max",    "0650-112233", 18}
    };
    int anzahl = 3;

    /* Alle anzeigen */
    printf("=== Adressbuch (%d Kontakte) ===\n", anzahl);
    for (int i=0; i<anzahl; i++) zeige(buch[i]);

    /* Suche */
    int idx = suche(buch, anzahl, "Anna");
    if (idx != -1)
        printf("Gefunden: "), zeige(buch[idx]);

    return 0;
}
🎓
Kurs abgeschlossen!
Du hast alle 30 Units von „Ömer erklärt C" erfolgreich durchgearbeitet!
✅ Kapitel 1 – Einstieg & Grundlagen ✅ Kapitel 2 – Operatoren & Entscheidungen ✅ Kapitel 3 – Schleifen & Wiederholungen ✅ Kapitel 4 – Funktionen & Strukturierung ✅ Kapitel 5 – Arrays & Strings ✅ Kapitel 6 – Zeiger & Speicher ✅ Kapitel 7 – Fortgeschrittene Konzepte
Du bist bereit für echte C-Projekte!Glückwunsch – du kannst jetzt C programmieren! 🚀

✏️ Abschlussübungen

Aufgabe 1

Programm erweitern

Erweitere das Kontaktverwaltungsprogramm um:

Nutze do-while für das Menü, switch-case für die Auswahl, structs für die Kontakte und Funktionen für jede Aufgabe!
Aufgabe 2 – Freies Projekt

Wähle ein eigenes Mini-Projekt

Wähle eines der folgenden Projekte und setze es vollständig um:

Aufgabe 3 – Geführtes Projekt

Zahlenraten mit High-Score

Ein vollständiges Spiel als Gerüst – fülle die markierten Stellen aus und bringe das Programm zum Laufen. Es kombiniert alles aus dem Kurs: Structs, Funktionen, Schleifen, Arrays und Zufallszahlen:

#include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX_VERSUCHE 7 #define MAX_RUNDEN 3 typedef struct { int runde; int versuche; int gewonnen; } Ergebnis; int spiele_runde(int runde) { srand(time(NULL) + runde); /* Zufallsseed */ int gesucht = rand() % 100 + 1; /* 1 bis 100 */ int eingabe, versuche = 0; printf("\n--- Runde %d ---\n", runde); printf("Ich denke an eine Zahl von 1 bis 100. Du hast %d Versuche!\n", MAX_VERSUCHE); do { printf("Versuch %d: ", versuche + 1); scanf("%d", &eingabe); versuche++; if (eingabe < gesucht) printf("Zu klein!\n"); else if (eingabe > gesucht) printf("Zu gross!\n"); else { printf("Richtig in %d Versuchen!\n", versuche); return versuche; /* gewonnen */ } } while (versuche < MAX_VERSUCHE); printf("Verloren! Die Zahl war %d.\n", gesucht); return 0; /* verloren */ } int main() { Ergebnis ergebnisse[MAX_RUNDEN]; int gewonnene_runden = 0; printf("=== ZAHLENRATEN – %d Runden ===\n", MAX_RUNDEN); for (int i = 0; i < MAX_RUNDEN; i++) { int v = spiele_runde(i + 1); ergebnisse[i].runde = i + 1; ergebnisse[i].versuche = v; ergebnisse[i].gewonnen = (v > 0); if (v > 0) gewonnene_runden++; } /* Auswertung */ printf("\n=== AUSWERTUNG ===\n"); for (int i = 0; i < MAX_RUNDEN; i++) { if (ergebnisse[i].gewonnen) printf("Runde %d: gewonnen in %d Versuchen\n", ergebnisse[i].runde, ergebnisse[i].versuche); else printf("Runde %d: verloren\n", ergebnisse[i].runde); } printf("Ergebnis: %d von %d Runden gewonnen\n", gewonnene_runden, MAX_RUNDEN); return 0; }
rand() % 100 + 1 ergibt eine Zufallszahl von 1 bis 100. srand(time(NULL)) sorgt dafür, dass jedes Mal andere Zahlen kommen. Das ist dein erstes vollständiges C-Spiel!