مجموعه پروژههای برنامهنویسی C
یک مجموعه از پروژههای برنامهنویسی C که برای مبتدیان طراحی شدهاند تا مفاهیم مختلف برنامهنویسی را از الگوریتمهای پایه تا برنامهنویسی شبکه یاد بگیرند و تمرین کنند. هر پروژه مستقل بوده و شامل مستندات و سیستم ساخت مخصوص به خود است.
مرور کلی پروژهها
۱. پیادهسازی SHA-512
یک پیادهسازی از تابع هش رمزنگاری که موارد زیر را نشان میدهد:- دستکاری بیتها
- الگوریتمهای پیچیده
- مدیریت حافظه
- عملیات ورودی/خروجی فایل
۲. سرور HTTP
یک پیادهسازی ساده از سرور HTTP که موارد زیر را پوشش میدهد:- برنامهنویسی سوکت
- مبانی پروتکل HTTP
- سرویسدهی فایل
- ارتباطات شبکهای
۳. سرور-کلاینت UDP
یک سیستم ارتباطی ساده مبتنی بر UDP که آموزش میدهد:- برنامهنویسی سوکت UDP
- معماری کلاینت-سرور
- پروتکلهای شبکهای
- تبادل پیام
۴. اسکنر پورت
ابزاری برای تشخیص شبکه که موارد زیر را نشان میدهد:- برنامهنویسی سوکت TCP
- تکنیکهای اسکن شبکه
- مدیریت خطا
- تجزیه آرگومانهای خط فرمان
۵. پیادهسازی Ping
ابزار ping سفارشی که موارد زیر را پوشش میدهد:- پروتکل ICMP
- برنامهنویسی سوکت خام
- تشخیص مشکلات شبکه
- اندازهگیری زمان
۶. دوز (Tic-Tac-Toe)
پیادهسازی بازی کلاسیک که موارد زیر را آموزش میدهد:- سرور بازی چندنفره
- برنامهنویسی سوکت
- منطق بازی
- مدیریت ورودی کاربر
۷. سیستم چت
یک برنامه چت بلادرنگ که موارد زیر را نشان میدهد:- برنامهنویسی سوکت TCP
- چندریسمانی (Multi-threading)
- ارتباط بلادرنگ
- معماری کلاینت-سرور
۸. تجزیهگر واژگانی
یک جزء ساده از فرانتاند کامپایلر که موارد زیر را نشان میدهد:- توکنیزاسیون کد منبع
- تکنیکهای تجزیه
- اصول طراحی کامپایلر
- پردازش رشتهها
۹. کامپایلر حسابی
یک کامپایلر ساده که عبارات ریاضی را به عنوان ورودی میگیرد و کدی شبیه اسمبلی تولید میکند:- تجزیهواژگانی (توکنیزاسیون)
- تجزیه و ارزیابی عبارات
- تولید کد اسمبلی
- مبانی ساخت کامپایلر
10. بازی شهابسنگ
یک بازی مبتنی بر ترمینال که در آن شما یک سفینه را برای اجتناب از شهابسنگهای سقوطکننده کنترل میکنید:- مدیریت وضعیت بازی
- مدیریت ورودی کاربر
- گرافیک مبتنی بر ترمینال
- مکانیکهای بازی به صورت بلادرنگ
- تشخیص برخورد ساده
شروع به کار
هر پروژه در این مخزن به صورت مستقل طراحی شده و شامل موارد زیر است:
- کد منبع
- فایل Makefile یا پیکربندی CMake
- فایل README با دستورالعملهای ساخت و استفاده
- جزئیات پیادهسازی
- به دایرکتوری پروژه بروید
- فایل README.md پروژه را بخوانید
- دستورالعملهای ساخت را دنبال کنید
- برنامه را طبق توضیحات اجرا کنید
پیشنیازها
- کامپایلر GCC (برای پروژههای C)
- کامپایلر G++ (برای پروژههای ++C)
- ابزار Make
- CMake (برای پروژههای C/C++)
- آشنایی پایه با برنامهنویسی C/C++
- برای پروژههای شبکه: آشنایی با مفاهیم پایه شبکه
کتاب پیشنهادی
برای شروع برنامهنویسی C، این کتاب جامع را پیشنهاد میکنم: زبان برنامهنویسی C - منبعی ضروری برای یادگیری اصول و بهترین شیوههای برنامهنویسی C.
مسیر یادگیری
این پروژهها به ترتیب افزایش پیچیدگی مرتب شدهاند:
- با بازی دوز برای مفاهیم پایه برنامهنویسی شروع کنید
- به پیادهسازی الگوریتم SHA-512 بروید
- سرور-کلاینت UDP را برای مفاهیم ابتدایی شبکه امتحان کنید
- به سرور HTTP و سیستم چت برای مفاهیم پیچیدهتر شبکه پیشرفت کنید
- در نهایت اسکنر پورت و پینگ را برای مفاهیم پیشرفته شبکه بررسی کنید
مشارکت
آزادانه میتوانید:
- گزارش اشکال بدهید
- پیشنهاد بهبود دهید
- ویژگیهای جدید اضافه کنید
- پروژههای جدید ایجاد کنید
- مستندات را بهبود دهید
مجوز
این پروژه متنباز است و برای اهداف آموزشی در دسترس میباشد.
نکته
برخی پروژههای مرتبط با شبکه (اسکنر پورت، پینگ) به دلیل استفاده از سوکتهای خام به دسترسی ریشه/مدیر نیاز دارند. همواره این ابزارها را مسئولانه و فقط در شبکههایی که اجازه آزمایش دارید، استفاده کنید.
--- Tranlated By Open Ai Tx | Last indexed: 2025-07-22 ---
