السلام عليكم
اريد مساعدتكم في كيفية انشاء قائمة بلغة السي ++ وكل التفاصيل تجدوها في الملف المرفق
ارجوووكم اعطوني ولو البدايه ولكم مني خالص الشكر لاتتاخروا عليا في الرد لانه اقترب موعد التسليم
السلام عليكم
اريد مساعدتكم في كيفية انشاء قائمة بلغة السي ++ وكل التفاصيل تجدوها في الملف المرفق
ارجوووكم اعطوني ولو البدايه ولكم مني خالص الشكر لاتتاخروا عليا في الرد لانه اقترب موعد التسليم
الملف المرفق يطلب فيه عمل شجرة Tree وليس قائمة List ، ان كان المطلوب هو قائمة فيمكنني مساعدتك ، اما ان كان شجرة فليس عندي خلفية عن هدا النوع AVL Tree
السلام عليكم
ياريت ياخي الكريم تساعدني في انشاء القائمة وسابحت عن حل في كيفية انشاء الشجرة .انتظر مساعدتك ولك مني خالص الشكر
برنامج مفكرة التليفون باستخدام القائمةlinked list
فكرة البرنامج ببساطة هي تكوين قائمة داخل داكرة الكمبيوتر ثم عمل اضافه، تعديل، بحث، ترتيب الخ، ثم حفظ الناتج في ملف موجود على hard disk كل وحدة Node من القائمة هي عبارة عن مجموعة بيانات الشخص، مثل الاسم، رقم التليفون والبريد الالكتروني وغيره.
1- القوائم linked list
هي عبارة عن سلسلة من الحلقات nodes مرتبطة بشكل عشوائي في الداكرة عن طريق مؤشرpointers ، ويوجد في كل حلقة مؤشر يشير للعنصر التالي
ولكي تستوعب القوائم يجب ان تكون ملم بالمفاهيم الاساسية لاستخدام المؤشرات. وكود القائمة يكون على النحو التالي
class LINKED_LIST
{
NODE *head;
int size;
public:
LINKED_LIST();
~LINKED_LIST();
void InsertFromFront(void);
void InsertFromFrontAuto(void);
void nsertFromFront(int id,const char* name,const char* tel,const char* e_mail,const char* addr);
void DeleteFromFront(void);
void DisplayNode(NODE* nd);
void SaveToDisk(void);
void LoadFromDisk(void);
NODE* GetNode(int pos);
NODE* LINKED_LIST::GetNode(int pos,int offset);
NODE* GetNode(string str);
void ListAll(void);
void Delete(int pos);
};- الوحدة او العنصر Node
تعبر كل وحدة عن شخص، فلكل وحدة رقم ID هو رقم الشخص ثم اسمه ثم رقم تليفونه وهكدا. وفي نهايتها يوجد مؤشر للوحدة التالية او العنصر التالي. ان كان العنصر التالي ب NULL فمعنى هدا انك تشير الى نهاية القائمة والكود الخاص بالوحدة يكون على الشكل التالي :
class NODE
{
public:
int ID;
const char* name;
const char* str_tel_number;
const char* e_mail;
const char* address;
NODE *next;
};ملحوظة يمكن استعمال struct بدلا من class وكلاهما يعطي نفس النتيجة.
- اضافة عنصر من الامام
ويتم بجعل ال head هي قيمة العنصر المضاف، وجعل العنصر المضاف يشير الى العنصر الاول ( الرأس سابقا head )
temp->next=head; head=temp;
- الحدف من الامام (عدرا حرف الدال لا يعمل عندي)
والفكرة ببساطة هي، اختبار ان كان العنصر الرأس head ب NULL ، فان كان كدلك فان القائمة فارغة، ولا يمكن الحدف من دالة فارغة، وان كان لا يساوي NULL فهده هي فرصتنا لحدف العنصر الامامي head واستبدال قيمته بقيمة المؤشر للعنصر التالي ، انظر الكود التالي
if(head != NULL)
{
head=head->next;
size--;
cout << "One record has beed removed successfully\n";
}
else
{
cout << "Your list is empty\n";
}- البحث عن عنصر باستخدام ال ID
في كل عملية بحث يتم التجول او المرور بكل عنصر ( زيارة كل عنصر في القائمة ) حتى نعثر على العنصر المطلوب ، وكما هو موضح بالكود التالي
while(temp != NULL)
{
person_id=temp->ID;
if(person_id==pos)
{
return temp;
}
else
{
temp=temp->next;
}
}فاننا نمر بكل عنصر حتى نجد العنصر NULL وهو نهاية القائمة ، وفي كل مرة ننتقل الى العنصر التالي باستخدام temp = temp-> next .
يمكن استيعاب الدوال الاخرى بسهولة ، وان وجدت صعوبة قم باخباري لأشرحها. الملف بالمرفات به المبرنامج كاملاTelephoneSystem (console).rar
تم تعديل هذه المشاركة بواسطة OsamaHosamEldeen في 14 يناير 2010 في 17:15
OsamaHosamEldeen كتب:الحدف من الامام (عدرا حرف الدال لا يعمل عندي)
اهلا اخي الغالي
يبدو ان اعدادات لوحة المفاتيح خاطئة
في حالتك حرف الذال هو المفاتيح التالي لمفتاح BackSpace " -> " اي المفتاح الذي عليه اشارة " \ "
او اضبط لوحة المفاتيح لـ عربي 101
تحياتي
while( "اسلام" )
{
cout >> "الموت لبني صهيون" >> endl;
}
return "فلسطين";شكرا على ردك أخي الغالي، ولكن الحرف لا يعمل بالفعل - بصفة دائمة، أحيانا يعمل واحيانا كثيره لا يعمل، والاعدادات صحيحة كما قلت انت، والمشكلة ظهرت في جهازي المحمول مند فترة، عندما توقف زر Ctrl الايسر، وتبعه بعد عدة ايام حرف الدال ، ليس الدال ولكن الدال في كدلك، وهو الخاص بعلامة Destructor( تخيل مدى صعوبة فقدانه كمبرمج سي بلس بلس:) )، ومع دلك فأنا احاول التحايل على عدم وجوده بنسخة او تبديل الكلمة باللغة العربية بكلمة اخرى تحمل نفس المعنى وليس فيها دال،
ارجو ان لا يتخد مشرف المنتدى كلامي كدريعة لنقل الموضوع الى مكان اخر بحجة اننا تطرقنا للكلام عن هاردوير :wink:
تم تعديل هذه المشاركة بواسطة OsamaHosamEldeen في 14 يناير 2010 في 20:12
السلام عليكم
بارك الله فيك اخي الكريم على مساعدتك في فكرة البرنامج واي صعوبات تواجهي ساخبرك ولك مني خالص الشكرز وبارك الله لك في علمكز
السلام عليكم
اريد منكم كيفية عمل قائمة مكونة من بحت وحدف و اضافة باستخدام AVL tree بلغة السي بلس بلس
ارجووكم محتاجة اعرف على AVL tree . وبارك الله فيكم ولكم مني خالص الشكر
وينكم مافيش اي مساعدة. ياريت حتى لو بمرجع استفيد منه. ولكم مني خالص الشكر