كورس C++ المتقدم – الحلقة العاشرة: مشروع احترافي كامل (Real Project)
#برمجة
مقدمة
مرحباً بك في الحلقة العاشرة والأخيرة من المستوى المتقدم في C++.
في الحلقات السابقة تعلمنا:
- Templates
- Exception Handling
- Smart Pointers
- Lambda
- Multithreading
- File Handling + Serialization
- STL المتقدم
- OOP + Design Patterns
- Modern C++
واليوم سنجمع كل هذه المهارات في مشروع واحد حقيقي:
مشروع: نظام إدارة مكتبة (Library Management System)
فكرة المشروع
نقوم بإنشاء نظام يقوم بـ:
✔ إضافة كتب
✔ عرض الكتب
✔ البحث عن كتاب
✔ حذف كتاب
✔ حفظ البيانات في ملف
✔ تحميل البيانات عند التشغيل
الأدوات المستخدمة
- OOP
- STL (vector)
- File Handling
- Smart logic
- Modern C++
تصميم الكلاس الأساسي
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
class Book
{
public:
int id;
string title;
string author;
void display()
{
cout << id << " - " << title << " - " << author << endl;
}
};
كلاس المكتبة
class Library
{
private:
vector<Book> books;
public:
إضافة كتاب
void addBook(Book b)
{
books.push_back(b);
}
عرض الكتب
void showBooks()
{
for(auto &b : books)
{
b.display();
}
}
البحث عن كتاب
void searchBook(int id)
{
for(auto &b : books)
{
if(b.id == id)
{
cout << "Found: ";
b.display();
return;
}
}
cout << "Book not found" << endl;
}
حذف كتاب
void deleteBook(int id)
{
for(auto it = books.begin(); it != books.end(); it++)
{
if(it->id == id)
{
books.erase(it);
cout << "Book deleted" << endl;
return;
}
}
cout << "Book not found" << endl;
}
حفظ البيانات في ملف
void saveToFile()
{
ofstream file("library.txt");
for(auto &b : books)
{
file << b.id << endl;
file << b.title << endl;
file << b.author << endl;
}
file.close();
}
تحميل البيانات من ملف
void loadFromFile()
{
ifstream file("library.txt");
books.clear();
while(true)
{
Book b;
file >> b.id;
file.ignore();
if(file.eof()) break;
getline(file, b.title);
getline(file, b.author);
books.push_back(b);
}
file.close();
}
};
البرنامج الرئيسي
int main()
{
Library lib;
lib.loadFromFile();
إضافة كتب
Book b1;
b1.id = 1;
b1.title = "C++ Basics";
b1.author = "Ahmed";
Book b2;
b2.id = 2;
b2.title = "Data Structures";
b2.author = "Ali";
lib.addBook(b1);
lib.addBook(b2);
عرض الكتب
cout << "All Books:\n";
lib.showBooks();
البحث
cout << "\nSearch:\n";
lib.searchBook(1);
حذف كتاب
cout << "\nDelete:\n";
lib.deleteBook(2);
حفظ البيانات
lib.saveToFile();
return 0;
}
شكل النظام
ID - Title - Author
1 - C++ Basics - Ahmed
2 - Data Structures - Ali
ماذا تعلمنا في المشروع؟
✔ OOP حقيقي
✔ استخدام vector
✔ التعامل مع الملفات
✔ البحث والحذف
✔ تصميم نظام كامل
تحسينات احترافية (لو أردت تطويره)
يمكنك إضافة:
🔥 Smart Pointers
🔥 Login System
🔥 GUI
🔥 Database بدل الملفات
🔥 Multithreading للبحث
🔥 Lambda للفلاتر
أين يستخدم هذا النوع من المشاريع؟
✔ أنظمة المكتبات
✔ برامج المدارس
✔ أنظمة الشركات
✔ تطبيقات الإدارة
✔ مشاريع التخرج
أخطاء شائعة
❌ نسيان file.close
❌ عدم تنظيف vector
❌ أخطاء في قراءة الملفات
❌ عدم التحقق من eof
تمرين 1
أضف خاصية تعديل كتاب.
تمرين 2
أضف بحث باسم الكتاب.
تمرين 3
أضف عدد الكتب في المكتبة.
تمرين 4
اجعل النظام Menu تفاعلي.
تمرين 5
أضف تسجيل مستخدمين (Admin / User).
نهاية الكورس المتقدم 🎉
لقد وصلت إلى مستوى احترافي في C++.
ماذا أصبحت الآن؟
✔ تستطيع بناء أنظمة حقيقية
✔ تفهم STL و OOP و Modern C++
✔ تستطيع العمل على مشاريع متقدمة
✔ جاهز للتطبيقات والشركات

تعليقات
إرسال تعليق