Kolekcja Projektów w C
Kolekcja projektów w języku C, zaprojektowana dla początkujących, aby uczyć się i ćwiczyć różne koncepcje programistyczne, od podstawowych algorytmów po programowanie sieciowe. Każdy projekt jest samodzielny i zawiera własną dokumentację oraz system budowania.
Przegląd Projektów
1. Implementacja SHA-512
Implementacja kryptograficznej funkcji skrótu, która demonstruje:- Manipulację bitami
- Złożone algorytmy
- Zarządzanie pamięcią
- Operacje wejścia/wyjścia na plikach
2. Serwer HTTP
Podstawowa implementacja serwera HTTP, obejmująca:- Programowanie gniazd (socketów)
- Podstawy protokołu HTTP
- Serwowanie plików
- Komunikację sieciową
3. Serwer-Klient UDP
Prosty system komunikacji oparty na UDP, uczący:- Programowania gniazd UDP
- Architektury klient-serwer
- Protokołów sieciowych
- Wymiany komunikatów
4. Skaner Portów
Narzędzie diagnostyczne sieci, które demonstruje:- Programowanie gniazd TCP
- Techniki skanowania sieci
- Obsługę błędów
- Parsowanie argumentów wiersza poleceń
5. Implementacja Ping
Niestandardowy program ping, obejmujący:- Protokół ICMP
- Programowanie surowych gniazd
- Diagnostykę sieciową
- Pomiar czasu
6. Kółko-krzyżyk
Klasyczna implementacja gry ucząca:- Serwera gry wieloosobowej
- Programowania gniazd
- Logiki gry
- Obsługi wejścia użytkownika
7. System Czatowy
Aplikacja czatu w czasie rzeczywistym, która demonstruje:- Programowanie gniazd TCP
- Programowanie wielowątkowe
- Komunikację w czasie rzeczywistym
- Architektura klient-serwer
8. Analizator Leksykalny
Prosty komponent front-end kompilatora, który demonstruje:- Tokenizację kodu źródłowego
- Techniki parsowania
- Zasady projektowania kompilatorów
- Manipulację łańcuchami znaków
9. Kompilator Arytmetyczny
Prosty kompilator, który przyjmuje wyrażenia arytmetyczne jako wejście i generuje kod podobny do asemblera:- Analiza leksykalna (tokenizacja)
- Parsowanie i ewaluacja wyrażeń
- Generowanie kodu asemblerowego
- Podstawy konstrukcji kompilatorów
10. Gra Asteroida
Gra terminalowa, w której kontrolujesz statek, aby unikać spadających asteroid:- Zarządzanie stanem gry
- Obsługa wejścia użytkownika
- Grafika oparta na terminalu
- Mechanika rozgrywki w czasie rzeczywistym
- Prosta detekcja kolizji
Pierwsze kroki
Każdy projekt w tym repozytorium jest samodzielny i zawiera:
- Kod źródłowy
- Plik Makefile lub konfigurację CMake
- README z instrukcjami budowy i użytkowania
- Szczegóły implementacji
- Przejdź do katalogu projektu
- Przeczytaj plik README.md projektu
- Postępuj zgodnie z instrukcjami budowy
- Uruchom program zgodnie z opisem
Wymagania wstępne
- Kompilator GCC (dla projektów w C)
- Kompilator G++ (dla projektów w C++)
- Narzędzie Make
- CMake (dla projektów w C/C++)
- Podstawowa znajomość programowania w C/C++
- Dla projektów sieciowych: znajomość podstawowych pojęć sieciowych
Polecana książka
Aby rozpocząć naukę programowania w C, polecam tę kompleksową książkę: The C Programming Language - Niezbędne źródło do nauki podstaw programowania w C i najlepszych praktyk.
Ścieżka nauki
Projekty są uporządkowane według rosnącej złożoności:
- Zacznij od Kółko-krzyżyk, aby poznać podstawy programowania
- Przejdź do SHA-512, aby nauczyć się implementacji algorytmów
- Wypróbuj UDP Server-Client, by poznać podstawy sieci
- Przejdź do HTTP Server i Systemu Czatowego, aby zgłębić bardziej złożone zagadnienia sieciowe
- Na końcu odkryj Skaner Portów i Ping, by poznać zaawansowane koncepcje sieciowe
Współtworzenie
Zachęcam do:
- Zgłaszania błędów
- Proponowania ulepszeń
- Dodawania nowych funkcji
- Tworzenia nowych projektów
- Ulepszania dokumentacji
Licencja
Projekt jest open source i dostępny do celów edukacyjnych.
Uwaga
Niektóre projekty związane z siecią (Skaner Portów, Ping) wymagają uprawnień administratora/root do działania ze względu na użycie surowych gniazd. Zawsze używaj tych narzędzi odpowiedzialnie i tylko w sieciach, na których masz pozwolenie na testowanie.
--- Tranlated By Open Ai Tx | Last indexed: 2025-07-22 ---
