الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دروس في برمجة قواعد البيانات بالفيجوال سي ++

بدأه البارودي في 27 مايو 2005 · 30 رد · 9,936 مشاهدة · في المواضيع و الدروس القيّمة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اخي واختي العضو ...... بعد التحيه

اقدم لكم اليوم مجموعة من الدروس المتقدمة و التي تتحدث عن موضوع هام جدا ومتقدم الا وهو برمجة قواعد البيانات باستخدام الفيجوال سي ++

و ارجو من الله ان اقدم اليكم المنفعه واكون عند حسن ظنكم

عزيزي القارئ العربي قبل أن ابدأ في الدخول مباشرة إلي الشرح أحب أن أوضح إليك بعض الأشياء ....

أولا : بالنسبة إلي المرجع الرئيسي للشرح هو كتاب:

Sams Teach Yourself Database Programming with Visual C++ 6 in 21 Days

ثانيا: بالنسبة إلي لمن هذا الكتاب فانه إلي كل قارئ عربي يريد أن يزداد علما و لكن تحديدا هذا الكتاب صمم لتعليم برمجة قواعد البيانات للمستوي المتوسط في تطوير نوافذ إل C++ . وإذا كنت تعرف شئ حول برمجة نوافذ إل C++ وتريد أن توسع مهاراتك لتحتوي برمجة قواعد البيانات .. فان هذا الكتاب هو ما تريد .........

#2

• مقدمة

مطورين نوافذ إل C++ يمتلكون معرفة ثمينة بالبرمجة الموجهة للكائنات في بيئة النوافذ . علي أية حال , الكثير من مبرمجي إل C++ يفتقرون المعرفة بتقنيات قواعد البيانات.

تطبيقات النوافذ المكتوبة في إل C++ ولها قاعدة بيانات قوية كمؤسستها يمكن أن تؤدي إلي مفاخر مدهشة.

بوصول الهندسة المعمارية متعددة الصف , إل C++ أخذت دور رئيسي كلغة ممتازة لبناء الخادم Server و مكونات برامج الصف المتوسطة.

كتابة برامج متعددة الصف كثيرا ما تتضمن استخدام إل C++ مع تقنيات قواعد البيانات.

امتلاك المعرفة بال C++ لوحده غير كافي في اغلب الأحيان لهذه التطبيقات الحديثة. أنت تحتاج إلي معرفة برمجة قواعد البيانات بال C++ إذا كانت مهاراتك ستصبح في مقدمة تطوير برامج النوافذ.

هذا الكتاب مبني علي معرفتك ببرمجة النوافذ في إل C++ بتعليمك خبرة قواعد البيانات بطريقة ما بأنك , كمطور C++ , يمكنك أن تستغله حقا.

هنا خلاصة بسيطة علي ما الذي ستتعلمه :

• كيف ستختار تقنيات قواعد البيانات الأكثر ملائمة لكل تطبيقاتك .

• تقييمات وصول الملف المباشر , إدارات السجل البسيط , قواعد بيانات ISAM, خادمات قواعد البيانات العلاقية , وكائنات قواعد البيانات.

• قواعد بيانات إل APIs ,محتوية علي إل ADO , OLEDB ,ODBC ,و إل DAO , وكيفية استخدامهم في تطبيقات إل C++.

• مبادئ وتقنيات تصميم قواعد البيانات العلاقية.

• برمجة قواعد البيانات العلاقية وال SQL .

• برمجة أدوات إل COM للبناء و استخدام مكونات البرامج.

• تطوير تطبيقات متعدد الصف , محتوية علي التطوير علي الانترنت , وكيفية بناء واستخدام مكونات

برنامج Microsoft Transaction Server (MTS) في إلC++ .

• كيف تأخذ الفائدة الكاملة من خادمات قواعد البيانات العلاقية مثل SQL server أو إل Oracle .

• كيفية خلط قواعد البيانات العلاقية بالبرمجة الموجهة للكائنات.

ما الذي ستحتاجه لاستخدام هذا الكتاب :

ستحتاج ....

Microsoft visual C++ 6 Enterprise Edition .

إذا كان غير متوافر استخدم .......

Microsoft visual C++ 6 Professional Edition .

وأيضا........

Microsoft Transaction Server (MTS).

Or

Microsoft Personal Web Server (PWS).

Internet Information Server (IIS).

Internet Explorer version 6 (IE6).

Windows NT Or Windows XP

و الآن هيا بنا نبدأ..................

تم تعديل هذه المشاركة بواسطة البارودي في 27 مايو 2005 في 04:58

#3

• الفصل الأول:

-(" اختيار تقنيات قواعد البيانات الصحيحة ")-

إن تخزين البيانات هو دور أساسي لكثير من تطبيقات البرامج .

عمليا كل تطبيقات إل C++ لها الحاجة للاستمرار, أو تخزين , البيانات من نوع ما.

العديد من التطبيقات تحتاج أيضا لاسترجاع البيانات بكفاءة. تحتاج هذه التطبيقات نموذجيا إلي البحث خلال البيانات لاسترجاع معلومات معينة .

هذه الحاجة إلي للبحث عن و استرجاع البيانات تعني أن التطبيق يجب أن يستخدم قاعدة بيانات.

تشكيلة تقنيات قواعد البيانات متوفرة لدي مبرمجين إل C++ .

اليوم أنت ستكتشف تقنيات قواعد البيانات و تكتسب المعرفة التي تحتاجها لاختيار التقنيات الملائمة لتطبيقاتك.

اليوم سنتعلم :

• كيفية اختيار تقنيات قواعد البيانات الملائمة لتطبيقات إل Visual C++ .

• صعوبات محاولة اختراع نظام قاعدة بيانات خاص.

• تقنيات قواعد البيانات المختلفة , محتويا علي تخزينات تركيبات إل OLE , إدارة السجلات (كذلك مثل Btrieve ), قواعد بيانات سطح المكتب ( كذلك مثل FoxPro و إل Access ) , كائنات قواعد البيانات , خادمات قواعد البيانات العلاقية ( مثل إل SQL Server و إل Oracle ).

• كيف تستغل إجادة تقنيات قواعد البيانات لجعل جهود تطويرك أكثر إنتاجا ونجاحا.

بالإضافة إلي تغطية كل هذه المواضيع , ستري كيفية كتابة الاكواد لتطبيق كل تقنيات قواعد البيانات المختلفة المتوفرة لمبرمجي إل C++ .

#4

• اختيار تقنيات قواعد البيانات الملائمة لتطبيقاتك في إل Visual C++

اختيار التقنيات الصحيحة لقواعد البيانات تعني إيجاد التقنية التي تملأ متطلبات تطبيقات.

بدون معرفة قابلية تقنيات قواعد البيانات المختلفة , يمكنك بسهولة اختيار واحد خاطئ لتطبيقاتك المعينة.

في الأقسام التالية ستتعلم قابلية كل تقنية من تقنيات قواعد البيانات.

عندما تختار تقنيات قواعد بياناتك , فأنت تحتاج أن تضع في الاعتبار أهمية بيانات تطبيقك بعناية . سيكون من السهل أن تعتقد أن البيانات تحتاج أن تستخدمها فقط من خلال تطبيقك.

علي أية حال , لو أنت كتبت تطبيقك علي أساس هذا الاعتقاد الذي يدور في عقلك , فانك ستنهي إنشاء تطبيقك الذي سيكون في حيز مغلق , قاعدة بيانات امتلاكي و التي أيضا لا احد يمكنه استخدامها أو فهمها.

ربما قد تفكر بصورة مغلقة , قاعدة بيانات امتلاكي مناسبة لتطبيقك لان تطبيقك هو الوحيد الذي يريد الوصول إلي البيانات.

لا تقلل من تقدير قيمة البيانات و الحاجة إلي الوصول إلي البيانات خلال أكثر من فقط تطبيقك.

لاحظ : لو كانت بياناتك مهمة بالنسبة إليك , فمن المحتمل أنها تكون مهمة لشخص آخر, والذي يريد أن يصل إلي البيانات خلال أكثر من فقط تطبيقك.

حتى لو كنت متأكد إن الآخرين لا يريدون الوصول إلي بياناتك إلا من خلال تطبيقك , ماذا عن تطبيقات مستقبلية من تطبيقاتك ؟ ماذا لو كان تطبيقك عبارة عن نوافذ قابلة للتنفيذ , وأنت تريد أن تنتج نسخة جديدة منها و الذي يجري من ورائها خادم ويب Web Server و تزود المعلومات إلي المستخدمين من خلال متصفحات الويب Web Browsers ؟

بسبب طبيعة أدوات تطوير مواقع الويب , قاعدة بيانات غير ملكيه مفتوحة يمكن أن تمكنك لأداء هذا التحويل في وقت اقل بكثير من حيز مغلق , قاعدة بيانات امتلكيه .

في النهاية , إذا أنت قررت كتابة تطبيق و الذي له قاعدة بيانات في حيز مغلق , أنت ستقلل من متوسط العمر المتوقع لتطبيقك الخاص في النهاية.

التطبيق الذي له قاعدة بيانات في حيز مفتوح يمكن الوصول إليها بسهولة , ويمكنها أن تتصل بقواعد البيانات الأخرى و التطبيقات الأخرى سيكون آجلا أو عاجلا سيحلون محلك .

الآن أنت ستمر بعملية اختيار تقنيات قواعد البيانات لتطبيق خيالي .

أنت ستفحص كل تقنيات قواعد البيانات و تري ماذا يملك كل واحد لكي يعرضه .

خلال هذه العملية , أنت ستتعلم قابلية ( وتقييد ) كل تقنية من تقنيات قواعد البيانات و كيف تختار التقنية الأكثر ملائمة لتطبيقك .

أفضل طريقة لكي تتعلم اختيار قواعد البيانات عن طريق استخدام مثال و تضعه علي كل تقنية .

هيا بنا نقول إن وظيفتك هي كتابة تطبيق لشركة و التي تبيع منتجاتها خلال إعلان تليفزيوني .

تعلن الشركة عن المنتج وليكن مثلا آلة تقطيع خضار , مبخرة الخيزران و 8 اسطوانات تعليمية لأحد اللغات , وهكذا , و تعرضهم من اجل اقل مستوي , بسعر منخفض 19.95 دولار .

و في كل وقت عرض الإعلان التليفزيوني , خطوط الشركة إل 800 مصاب بالتكدس من اتصالات المشتريين .

الموظفين في قسم التسويق يأخذون هذه الاتصالات و لهم تطبيق يعمل علي الحاسب الشخصي لهم .

هم يستخدمون تطبيق لإدخال كل طلب حتى المنتج يمكن شحنه و أموال المشتريين يمكن جمعها .

هذا يبدوا سهلا بما فيه الكفاية . يحتاج تطبيقك لتقديم نافذة والتي فيها البائع يمكن أن يدخل الطلب , وبعد ذلك تطبيقك يجب أن يكتب المعلومات الخاصة بالطلب إلي ملف حفظ البيانات . هذا يبدوا أن يقول , انه سيكون سهلا إنشاء قاعدة بياناتك الخاصة .

#6

وعليكم السلام ورحمة الله وبركاته ::

وجزاك الله الف خير .. الموضوع رائع . وعندي الكتاب لكن مافهمت منه شي .. نفهم منك ان شاء الله .

اقتباس
للمستوي المتوسط في تطوير نوافذ إل C++ . وإذا كنت تعرف شئ حول برمجة نوافذ إل C++ وتريد أن توسع مهاراتك لتحتوي برمجة قواعد البيانات .. فان هذا الكتاب هو ما تريد .........

من اراد تعلم برمجة النوافذ باستخدام API فاني اقوم

حاليا باضافة الدروس تباعا لعلها تفيد >>>> دعاية لموضوعي :lol:

اتمنى ان تواصل ولاتنقطع .. مشكور

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#7

اظن انه من المناسب ان يساعد فى الترجمه

ولا يقتصر المجهود على شخص وبما انك يا شمرى

تكلمت فاننى ادعوك مع نفسى للمساعده فى الترجمه

والشرح حتى وان تعا\ملنا بالقواميس مع الكتاب

ماريك ياشمرى

اعرف ان هذا احراج لك وعفوا انا قصدت ذلك

تصميم كافة انواع المواقع البرامج بافضل الاسعار

aaasamy7@hotmail.com

الاسكندريه -مصر

ت:5749981

#9

اخى البارودى بقولك اى رايك يا باشا لو بدل من الترجمه الحرفيه نجعل من الكتاب موضوع للمناقشه الاخ شمرى بيقولك

انا عندى الكتاب ومفهمتش حاجه

معنى كدا ان الترجمه الحرفيه ستحقق الغرض للبعض دون الاخ

اما لو خلينا الكتاب موضوع للمناقشه هانستفيد كلنا بجميع مستوياتنا

حلو يا ريس دى مجرد فكره

وبالنسبه للا خوه الى عاوزين ينزله الكتاب

دى وصله لموضوع وضعه البارودى لتنزيل الكتاب

/index.ph...اب+قواعد+بيانات

الاول اقرؤا الفصل الاول ch1 وبعدين نناقشه لان الصوبع على ما اظن من هنا

تصميم كافة انواع المواقع البرامج بافضل الاسعار

aaasamy7@hotmail.com

الاسكندريه -مصر

ت:5749981

#10

اولا اخي ارحب بيك

ثانيا : انا لا اعتمد علي الترجمة الحرفية علي قد ما باكتب اللي انا فهمته و هذا ما اتبعه من اسلوب في الترجمه

يعني علي ما باقدر باحاول اوصل المعلومه

ثانيا لو وضعنا الكتاب للمناقشة اظن ان ما في حد هيناقش لان فيه اعضاء كتير بتكسل تفتح كتاب وتبتدي تقرا منه رغم جبال الكتب اللي موضوعه علي اجهزتهم الشخصيه ( ربنا يزيد ويبارك ده مش حسد و لا قر و الدليل انا واحد من اللي عندهم تلال كتب )

و فكرة اني بابتدي في قراءة الكتب و اشرحها . انا شايف انها الانسب

و حتي لا اطيل عليكم

انا هكمل دلوقتي

اشوفكم بعد تكملة الشرح

#11

و الان هيا بنا نكمل ما بداناه

بعد ان تحدثنا عن تقنيات قواعد البيانات و بعد هذا الكلام الطويل اللي اعتقد من وجهة نظري انه كلام مهم

ساتحدث اليوم عن ...........

• بناء قاعدة بياناتك الخاصة في إل C++

مبرمج إل C++ عادتا بيكون واثق من قدراته لكتابة البرامج .

مع ذلك , إذا أنت قدرت أن تتقن لغة قوية ومعقدة مثل إل C++ , يمكنك وبلا شك أن تكتب أي أدوات برامج أنت تحتجها , متضمنا نظام قاعدة بيانات خاصة بك .

علي أية حال , بسبب نضج إيجاد تقنيات قواعد البيانات , فان كتابة قاعدة بياناتك الخاصة نادرا ما يكون جهد منتج .

بالرغم من أن مهندس كهربائي ربما يمكنه بناء هاتفه الخلوي الخاص , فعل ذلك يؤدي إلي القليل من الإحساس العملي .

الهواتف الخلوية (المحمولة) الحالية وفيرة ورخيصة و تلتزم بالمعايير والمواصفات التي التي تمكنها من الاتصال بالشبكات الخلوية و الهواتف الخلوية الاخري .

علي نفس النمط , مبرمج إل C++ يمكنه أن يبني نظام قاعدة بيانات خاص بيه , لكن عمل ذلك يؤدي إلي القليل من الإحساس العملي .

قواعد البيانات الحالية وفيرة ورخيصة و تلتزم بالمعايير التي تمكنها من الاتصال بشبكات الحاسوب و التطبيقات الاخري.

أنت يجب أن تركز علي بناء تطبيقك , وليس علي بناء قاعدة بياناته.

الكود التالي يعرض ما هو المطلوب لتخزين بيانات التركيبات في ملف علي القرص الصلب لإنشاء قاعدة بيانات أولية .

لإنشاء هذا التطبيق قم بتشغيل إل Visual C++ وقم بإنشاء مشروع جديد Win32 console application .

يمكنك أن تسمي المشروع أي اسم أنت تريده . يمكنك أن تسميه مثلا CPPDb سيكون ملائم .

أنشئ ملف المصدر ( الكود ) في المشروع ربما يسمي main.cpp و ادخل الاكواد التالية :

// CPPDb Programe

#include<fstream.h>

struct date
{
	int imonth,iday,iyear;
};

struct product
{
	int iPartNumber;
    char szName[80];
    double dPrice;
};

struct Customer
{
    int iID;
    char szName[50];
    char szAddress[50];
    char szCity[20];
    char szState[20];
    char szZip[9];
};

void main()
{
	date dt = { 6, 10, 92 };

	product prod = {122, "Vegamatic", 19.95};

	Customer cust = {15, "Seymore Hoskins", "300 Oak St","Boring",
  
  "Oregon", "97203"};

	ofstream datafile( "data.dat",ios::binary);

	datafile.write( (char *) &dt, sizeof dt);

	datafile.write( (char *) ∏, sizeof prod );

	datafile.write( (char *) &cust, sizeof cust );

}

وهذا ملف مرفق بالبرنامج.........

CPPDb.zip

تم تعديل هذه المشاركة بواسطة البارودي في 31 مايو 2005 في 02:45

#12

لاحظ اثنين من الأشياء حول هذا الكود.

الأول , ستري أن بيانات التركيبات قد تم تعريفها في الأول .

التركيبات استخدمت لكتابة البيانات إلي الملف علي نحو المتوقع , في النمط . الروتينيات الأخرى في التطبيق يمكنها أن تستخدم هذه التراكيب أيضا لقراءة البيانات من الملف وفهمه .

ابن التطبيق . أنت لن تستلم أي أخطاء أو تحذيرات .

عندما تقوم بتشغيل التطبيق , فانه يقوم بإنشاء ملف اسمه data.dat في نفس مسار تطبيقك ويقوم بحفظ البيانات في الملف .

لو قمت بفتح الملف data.dat عن طريق ملف Notepad.exe ستري البيانات في الملف .

#13

و هنا ساكتفي و اتوقف قليلا

وذلك لان هناك اقتراح كنت عايز اعرضه عليكم

ايه رايكم نقوم بتطبيق مثال علي بناء قاعدة بيانات اوليه يكون تخزين بياناتها في ملف تيكست

و كل واحد يقوم بعمل المثال ويعرضه في مشاركه

اظن ان بهذا الاسلوب سنستفيد جميعا

ملحوظة : ساكمل شرح بقية الدروس بعد ما اشوف مشاركاتكم و الامثلة اللي هتتعمل

و اتمني لكم التوفيق

#14

شرح المثال

//*تضمين ملف الهيدر الذى سيتم استعمال ادوال التى فيه

#include <fstream.h>

//* بناء تركيبه بعنوان

//date

//تعريف متغيرات رقميه داخلها ترمز

//لليوم والشهر والسنه

struct Date

{

//*تعريف متغيرات ثلاثه على اساس انها ارقام

int iMonth, iDay, iYear;

};

//بناء تركيبه بعنوان

//Product

//لتعريف خصائص السجل

//Product

struct Product

{

int iPartNumber;

char szName[80];

double dPrice;

};

//هنا يتم بناء تركيبه بعنوان

//Customer

//لوضع خصائص السجل

//Customer

//الذى سيتم فيه تخزين بيانات الزبائن

//كالرمز -الاسم-العنوان - المدينه-الولايه-رقم النداء

struct Customer

{

int iID;

char szName[50];

char szAddress[50];

char szCity[20];

char szState[20];

char szZip[9];

};

void main()

{

//استعمال التركيبه

//Date

//{السنه- اليوم- الشهر}

//ينبغى ملاحظه لو تم وضع اليوم بحروف مثلا فسيصد الكومبيلر خطأ

//حيث انه تم تعرف متغير اليوم فى التركيبه

//Date

//بانه رقم

Date dt = { 6, 10, 92 };

//بنفس الطريقه يتم استعمال

//Product

//بتحميل السجل جميع المواصفات التى تم ذكرها فى التركيب

//Product

//الى متغير بعنوان

//prod

Product prod = {122, "Vegamatic", 19.95};

//لو فهمت كلامى عن التراكيب السابقه فنفس الكلام ينططبق على التركيب

//Customer

Customer cust = {15, "Seymore Hoskins", "300 Oak St",

"Boring", "Oregon", "97203"};

//فتح ملف فى نفس الدليل الخاص بالبرنامج بعنوان

//data.dat

ofstream datafile( "data.dat" , ios::binary );

//كتابه محتوى السجل

//Date

//من خلال المتغير الذى يحمل قيمته وخصائصه

//dt

datafile.write( (char *) &dt, sizeof dt );

//نفس الشىء للمتغير

//prod

datafile.write( (char *) ∏, sizeof prod );

//نفس الشىء للمتغير

//cust

datafile.write( (char *) &cust, sizeof cust );

}

تصميم كافة انواع المواقع البرامج بافضل الاسعار

aaasamy7@hotmail.com

الاسكندريه -مصر

ت:5749981

#16

عمل رائع منكم ..

كنت اتمنى التفاعل لكن الوقت... :(

نتمنى من الاعضاء اللي ماعندهم اختبارات او اشغال التفاعل والا يكونوا في المدرجات فقط .. انزلوا في الساحة ..:) جميل منك اخي بارودي هذا الاقتراح ... فهذا هو الطريق الصحيح للتعلم ..

ونشكر ssssamy3 على تفاعله ..

تم تعديل هذه المشاركة بواسطة الشـمري في 6 يونيو 2005 في 10:03

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#18

جزاكم الله الف خير .. كان الله في عونكم

أشهد أن لا إله إلا الله ***************** وأشهد أن محمد عبده ورسوله

#19

مشكور أخي

#20

اخي البارودي .. اريد تطبيق الواجب :)

تقول

اقتباس
ايه رايكم نقوم بتطبيق مثال علي بناء قاعدة بيانات اوليه يكون تخزين بياناتها في ملف تيكست

و كل واحد يقوم بعمل المثال ويعرضه في مشاركه

هل تريدان يكون مثال شبيه بالسابق .. او مثال معين .. او اي شي المهم تركيب وتخزن بياناته بملف نصي ..

اتمنى تستمر..

لاننا الان فاضين .. B)

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#21

اخي الشمري

انا طلبت اي مثال لقاعدة بيانات بس يكون فيها اضافة بيانات و عرض هذه البيانات ........ذلك مبدئيا

لحين اقوم بتكملة ترجمة بقية الجزء واعرضه

و انا بنفسي ساقوم بعرض المثال الذي اقوم بعمله بس بعد ما انتهي منه

#22
الشـمري كتب:
اتمنى  تستمر..

لاننا الان فاضين ..  B)

اكمل اخي وسانضم ان شاء الله بعد اسبوع وذلك بسبب الامتحانات

موقعي :- www.gamesdevteam.com

#23

سويت بريمج .. يوضح المطلوب ..لكن ما كنت اريده كذا .. كنت اريد ادخال بيانات ومن ثم كتابتها الى ملف و القراءة منه .. لكن.. تكاسلت :(

على العموم المثال بالمرفقات وان شاء الله لابد اني اطوره .. لانه سهل ..

database.zip

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#24

اليكم المثال الذي قمت بعمله

#include<iostream.h>
#include<conio.h>
#include<windows.h>
#include<fstream.h>
#include<process.h>

int i;



//*******************************************************************
void gotoxy(int x, int y) 
{ 
   COORD coord; 
   coord.X = x; 
   coord.Y = y; 
   SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); 
} 
//******************************************************************

void clrscr() 
{  
   COORD coordScreen = { 0, 0 }; 
   DWORD cCharsWritten; 
   CONSOLE_SCREEN_BUFFER_INFO csbi;  
   DWORD dwConSize; 
   HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 
   GetConsoleScreenBufferInfo(hConsole, &csbi); 
   dwConSize = csbi.dwSize.X * csbi.dwSize.Y; 
   FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize, coordScreen, &cCharsWritten); 
   GetConsoleScreenBufferInfo(hConsole, &csbi); 
   FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten); 
   SetConsoleCursorPosition(hConsole, coordScreen); 
}
//**********************************************************************
void textbackcolor(int color) 
{ 
        
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), 
    color  <<4); 
}
//**********************************************************************
void textcolor(int color) 
{ 

         SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), 
    color); 

}
//**************************************************
void loading(int x1,int y1,int x2,int y2)
  {
   int i;
   gotoxy(x1,y1);
   putch(177);
   for(i=x1+1;i<x2;i++)
    putch(177);
   putch(177);
   for(i=y1+1;i<y2;i++)
    {gotoxy(x1,i);
     putch(177);
     gotoxy(x2,i);
     putch(177);
    }
   gotoxy(x1,y2);
   putch(177);
   for(i=x1+1;i<x2;i++)
    putch(177);
   putch(177);

  }
//********************************************************************
void load()
{
	int w=1,q=80,r=24;
  clrscr();
    textbackcolor(10);

  for(int i=1;i<10;i++)
  {
  loading(w,i,q,r);
  w++;
  q--;
  r--;
  }
  cout<<"\n\t\t\n";
  textbackcolor(10);
  gotoxy(12,11);
  
  cout<<"\t\t\t\20\20\20 Loading completed \20\20\20  \n";
  cout<<"\t\t\t press enter to continue.\n";
  gotoxy(12,13);

    textbackcolor(1);
  for(int m=0;m<57000000;m++)
    {if(m%1000000==0){cputs(" ");}}
  textbackcolor(10);
  clrscr();
  cout<<"\n\t\t\t";
  cout<<endl;
  getche();
  cout<<"\a\a\a\a\a\a\a\a\a\a\a";


}
//********************************************************************

void display()
{

	textbackcolor(19);
	clrscr();

	cout<<"\n\n\n\n\n";
	cout<<"\t\t\t\t     \n";
	cout<<"\t\t\t\t    \n";
	cout<<"\t*******************************************************************\n";
	cout<<"\t*******************************************************************\n";

	cout<<"\t**                   \" WELCOME TO MY PROJECT \"                   **\n";

	cout<<"\t**                     \"  Student Database \"                     **\n";

	cout<<"\t**                  * Press ENTER to Continue *                  **\n";
	cout<<"\t*******************************************************************\n";
	cout<<"\t*******************************************************************\n";

	cout<<"\n\t\t\t\t\t\t";


	gotoxy(15,15);
    char sav[]= "\20\20\20******** LOADING ************************\20";
	int i=0;
   
	for(int m=0;m<35000000;m++){if(m%1000000==0){cout<<sav;i++;}}

	cout<<endl;




}
//******************************************************************
void tabel()
{

	loading(2,2,77,23);

  

}


//******************************************************************
struct student
{
	int student_id[100];
	char student_name[250][100];
	char student_address[250][100];

	int telephone[100];
	char student_email[250][100];

  
};
//*****************************************************************
struct age
	{
  int date[100];
  
	};
//*******************************************************************
struct object
{
	int object_id[100];
	char object_name[250][100];
	int object_net[100];
};


//*******************************************************************
int main()
{


	display();
	clrscr();
	textbackcolor(19);
	clrscr();

	load();
	clrscr();
	textcolor(23);
	clrscr();
	tabel();

gotoxy(20,6);
	char wel[250]="\20\20\20  WELCOME TO THE STUDENT DATABASE  \21\21\21";
cout<<wel;
cout<<endl;
gotoxy(20,8);
char mad[250]="\20\20\20  MADE BY :>>>>>";
cout<<mad;
cout<<endl;
gotoxy(20,10);
char mos[250]="* MOSTAFA MAHMOUD SAMY EL BARODY *";
cout<<mos;
cout<<endl;
gotoxy(20,12);
char loc[250]="* THE LOCATION IS EGYPT-EL FAYOUM *";
cout<<loc;
cout<<endl;
gotoxy(20,14);
char em[250]="* EMAIL ADDRESS : MOSTAFAELBARODY@HOTMAIL.COM *";
cout<<em;
cout<<endl;
gotoxy(20,18);
char next[250]="* TO CONTINUE PRESS ENTER *";
cout<<next;
cout<<endl;
	getche();
	cout<<"\a";


select:
clrscr();
	textcolor(23);
	clrscr();
	tabel();
	gotoxy(20,6);
	char welc[250]="\20\20\20  WELCOME TO THE STUDENT DATABASE  \21\21\21";
cout<<welc;
cout<<endl;

gotoxy(20,8);
	char sel[250]="** TO DO WHAT YOU WANT SELECT :>>";
cout<<sel;
cout<<endl;

gotoxy(20,10);
	char add[250]="* 1- ADD to add data.";
cout<<add;
cout<<endl;
gotoxy(20,12);
	char ser[250]="* 2- SERCHE to serche about data.";
cout<<ser;
cout<<endl;
gotoxy(20,14);
	char abo[250]="* 3- ABOUT to read about programe.";
cout<<abo;
cout<<endl;
gotoxy(20,16);
	char ext[250]="* 4- EXIT to EXIT PROGRAME.";
cout<<ext;
cout<<endl;
gotoxy(20,19);
	char ent[250]="* ENTER YOUR SELECT HERE : ";
cout<<ent;char ch;cin>>ch;
cout<<"\a";

if(ch!='1' && ch!='2' && ch!='3' && ch!='4')
{
	textcolor(20);
	clrscr();
	loading(20,5,57,15);
	gotoxy(22,7);
	char err[250]="\a* ERROR *";
cout<<err;
cout<<endl;
gotoxy(22,9);
char error[250]="* YOU MUST SELECT FROM \'1\' TO \'4\' ";
cout<<error;
cout<<endl;
gotoxy(23,11);
char eror[250]="try again !!.";
cout<<eror;
cout<<endl;
getch();
goto select;

}
switch (ch)
{
case '1':
	{
addtype:
  clrscr();
	textcolor(23);
	clrscr();
	tabel();
	gotoxy(20,6);
	char welc[250]="\20\20\20  WELCOME TO THE STUDENT DATABASE  \21\21\21";
cout<<welc;
cout<<endl;

gotoxy(20,8);
	char sel[250]="** TO DO WHAT YOU WANT SELECT :>>";
cout<<sel;
cout<<endl;

gotoxy(20,10);
	char add[250]="* 1- ADD to add student data.";
cout<<add;
cout<<endl;
gotoxy(20,12);
	char ser[250]="* 2- ADD to add subject data.";
cout<<ser;
cout<<endl;
gotoxy(20,14);
	char abo[250]="* 3- RETURN to return to main page.";
cout<<abo;
cout<<endl;
gotoxy(20,19);
	char ent[250]="* ENTER YOUR SELECT HERE : ";
cout<<ent;char cm;cin>>cm;
cout<<"\a";
if(cm!='1' && cm!='2' && cm!='3' )
{
	textcolor(20);
	clrscr();
	loading(20,5,57,15);
	gotoxy(22,7);
	char err[250]="\a* ERROR *";
cout<<err;
cout<<endl;
gotoxy(22,9);
char error[250]="* YOU MUST SELECT FROM \'1\' TO \'3\' ";
cout<<error;
cout<<endl;
gotoxy(23,11);
char eror[250]="try again !!.";
cout<<eror;
cout<<endl;
getch();
goto addtype;

}
switch (cm)
{
case '1':
	{
  goto addstudent;
  break;
	}
case '2':

	{
  goto addsubject;
     break;
	}
case '3':
	{
  goto select;
  break;
	}
}

//**

//*
addstudent:
  char ck;
  
  for(int i=1;i<=100;i++)
 	 {	
  do
  {
	ofstream svfile("stordata.txt",ios::app); 
    ifstream rdfile("stordata.txt",ios::nocreate);
  
student student;
age age;
  clrscr();
	textcolor(23);
	clrscr();
	tabel();

	gotoxy(20,5);
	char endata[250]="\20\20\20  WELCOME TO THE STUDENT DATABASE  \21\21\21";
cout<<endata;
cout<<endl;
gotoxy(20,7);
	char q[250]="** TO ADD DATA FOLOW THIS STEPS :>>";
cout<<q;
cout<<endl;

gotoxy(15,9);
	char stuid[250]="* 1- ENTER STUDENT ID :";
cout<<stuid;
cin>>student.student_id;
svfile<<"\n"<<student.student_id;
cout<<endl;
gotoxy(15,11);
	char stuname[250]="* 2- ENTER THE STUDENT NAME :";
cout<<stuname;
cin>>student.student_name;
svfile<<"\t"<<student.student_name;
cout<<endl;
gotoxy(15,13);
	char stuaddress[250]="* 3- ENTER THE STUDENT ADDRESS :";
cout<<stuaddress;
cin>>student.student_address;
svfile<<"\t\t"<<student.student_address;
cout<<endl;
gotoxy(15,15);
	char stuage[250]="* 4- ENTER THE STUDENT AGE:";
cout<<stuage;
cin>>age.date[100];
svfile<<"\t\t"<<age.date[100];
cout<<endl;
gotoxy(15,17);
	char stutele[250]="* 5- ENTER THE STUDENT TELEPHONE :";
cout<<stutele;
cin>>student.telephone;
svfile<<"\t"<<student.telephone;
cout<<endl;
gotoxy(15,19);
	char stue[250]="* 6- ENTER THE STUDENT EMAIL :";
cout<<stue;
cin>>student.student_email;
svfile<<"\t"<<student.student_email;
cout<<endl;
svfile.close();
gotoxy(20,21);
	char ask[250]="** WOULD YOU LIKE TO ADD DATA AGAIN ?(Y/N):";
	cout<<ask;
	cin>>ck;
	if(ck!='y' && ck!='n')
{
	textcolor(20);
	clrscr();
	loading(20,5,57,15);
	gotoxy(22,7);
	char error[250]="\a* ERROR *";
cout<<error;
cout<<endl;
gotoxy(22,9);
char errore[250]="* YOU MUST ENTER \'Y\' OR \'N\' ";
cout<<errore;
cout<<endl;
gotoxy(23,11);
char erore[250]="try again !!.";
cout<<erore;
cout<<endl;
getch();
goto addstudent;
	}

	cout<<"\n";
cout<<endl;
}
  
  while(ck=='y');
  if(ck=='n')
  {
 	 goto select;
  }
  break;
	}
  
  
//***



	}

case '2':
	{
  //***************

  goto search;
  
search:
  ofstream svfile("stordata.txt",ios::app); 
        ifstream rdfile("stordata.txt",ios::nocreate);
  student a;
  object b;
  age c;
int m;
char id[100],name[100];
char chk;
do
{
clrscr();
	textcolor(23);
	clrscr();
	tabel();
	gotoxy(20,5);
	char welcome[250]="\20\20\20  WELCOME TO THE STUDENT DATABASE  \21\21\21";
cout<<welcome;
cout<<endl;
gotoxy(20,7);
	char z[250]="** TO SERCH ABOUT DATA FOLOW THIS STEPS :>>";
cout<<z;
cout<<endl;
gotoxy(15,9);
	char y[250]="* 1- ENTER THE ID :";
cout<<y;
cin>>id[m];

clrscr();
	textcolor(23);
	clrscr();
	tabel();

char welcomee[250]="\20\20\20  WELCOME TO THE STUDENT DATABASE  \21\21\21";
cout<<welcomee;
cout<<endl;

gotoxy(15,7);
	char f[250]="* 1- THE STUDENT ID :";
cout<<f;
rdfile>>id[m];
cout<<id[m];

cout<<endl;
gotoxy(15,9);
	char g[250]="* 2- ENTER THE STUDENT NAME :";
cout<<g;


cout<<endl;
gotoxy(15,11);
	char h[250]="* 3- ENTER THE STUDENT ADDRESS :";
cout<<h;


cout<<endl;
gotoxy(15,13);
	char i[250]="* 4- ENTER THE STUDENT AGE:";
cout<<i;


cout<<endl;
gotoxy(15,15);
	char j[250]="* 5- ENTER THE STUDENT TELEPHONE :";
cout<<j;


cout<<endl;
gotoxy(15,17);
	char k[250]="* 6- ENTER THE STUDENT EMAIL :";
cout<<k;


cout<<endl;






gotoxy(20,21);
	char ak[250]="** WOULD YOU LIKE TO ADD DATA AGAIN ?(Y/N):";
	cout<<ak;
	cin>>chk;
if(chk!='y' && chk!='n')
{
	textcolor(20);
	clrscr();
	loading(20,5,57,15);
	gotoxy(22,7);
	char error[250]="\a* ERROR *";
cout<<error;
cout<<endl;
gotoxy(22,9);
char errore[250]="* YOU MUST ENTER \'Y\' OR \'N\' ";
cout<<errore;
cout<<endl;
gotoxy(23,11);
char erore[250]="try again !!.";
cout<<erore;
cout<<endl;
getch();
goto search;
	}

	cout<<"\n";
cout<<endl;
}
while(chk=='y');
if(chk=='n')
  {
 	 goto select;
  }
  
  break;
	}
	//************

case '3':
	{
  clrscr();
	textcolor(23);
	clrscr();
	tabel();
	gotoxy(20,6);
	char wel[250]="\20\20\20  WELCOME TO THE STUDENT DATABASE  \21\21\21";
cout<<wel;
cout<<endl;
gotoxy(20,8);
char mad[250]="\20\20\20  MADE BY :>>>>>";
cout<<mad;
cout<<endl;
gotoxy(20,10);
char mos[250]="* MOSTAFA MAHMOUD SAMY EL BARODY *";
cout<<mos;
cout<<endl;
gotoxy(20,12);
char loc[250]="* THE LOCATION IS EGYPT-EL FAYOUM *";
cout<<loc;
cout<<endl;
gotoxy(20,14);
char em[250]="* EMAIL ADDRESS : MOSTAFAELBARODY@HOTMAIL.COM *";
cout<<em;
cout<<endl;
gotoxy(20,18);
char next[250]="* TO CONTINUE PRESS ENTER *";
cout<<next;
cout<<endl;
	getche();
	cout<<"\a";
	goto select;
  break;
	}

case '4':
	{
  clrscr();
  loading(20,5,59,15);
  gotoxy(22,9);
     char tha[250]=" ** THANKS FOR USE THIS PROGRAME **";
     cout<<tha;
     cout<<endl;
  gotoxy(32,11);
     char bye[250]="\20\20 GOOD BYE \21\21";
     cout<<bye;
     cout<<"\n\n\n\n\n";
  cout<<endl;
  getch();
  exit(0);
cout<<"\n\n\n\n\n";
  break;
	}

	//**
	addsubject:
char mk;
  
  for(int m=1;m<=100;m++)
 	 {	
  do
  {
	ofstream svfile("subject.txt",ios::app); 
    ifstream rdfile("subject.txt",ios::nocreate);
  
object subject;

  clrscr();
	textcolor(23);
	clrscr();
	tabel();

	gotoxy(20,5);
	char endata[250]="\20\20\20  WELCOME TO THE STUDENT DATABASE  \21\21\21";
cout<<endata;
cout<<endl;
gotoxy(20,7);
	char q[250]="** TO ADD DATA FOLOW THIS STEPS :>>";
cout<<q;
cout<<endl;

gotoxy(15,9);
	char subid[250]="* 1- ENTER SUBJECT ID :";
cout<<subid;
cin>>subject.object_id[m];
svfile<<"\n"<<subject.object_id[m];
cout<<endl;
gotoxy(15,11);
	char subname[250]="* 2- ENTER THE SUBJECT NAME :";
cout<<subname;
cin>>subject.object_name[m];
svfile<<"\t"<<subject.object_name[m];
cout<<endl;
gotoxy(15,13);
	char subnet[250]="* 3- ENTER THE NET OF SUBJECT :";
cout<<subnet;
cin>>subject.object_net[m];
svfile<<"\t\t"<<subject.object_net[m];
cout<<endl;
svfile.close();
gotoxy(20,21);
	char ask[250]="** WOULD YOU LIKE TO ADD DATA AGAIN ?(Y/N):";
	cout<<ask;
	cin>>mk;
	if(mk!='y' && mk!='n')
{
	textcolor(20);
	clrscr();
	loading(20,5,57,15);
	gotoxy(22,7);
	char error[250]="\a* ERROR *";
cout<<error;
cout<<endl;
gotoxy(22,9);
char errore[250]="* YOU MUST ENTER \'Y\' OR \'N\' ";
cout<<errore;
cout<<endl;
gotoxy(23,11);
char erore[250]="try again !!.";
cout<<erore;
cout<<endl;
getch();
goto addsubject;
	}

	cout<<"\n";
cout<<endl;
}
  
  while(mk=='y');
  if(mk=='n')
  {
 	 goto select;
  }
  break;
  }
  
}





	return 0;
}

اتمنا لكم التوفيق

تم تعديل هذه المشاركة بواسطة البارودي في 15 يونيو 2005 في 05:27

#25

ممتاز برنامجك جربته على عجل هو يحتاج اى قاعده الله ينور عليك

تصميم كافة انواع المواقع البرامج بافضل الاسعار

aaasamy7@hotmail.com

الاسكندريه -مصر

ت:5749981

مواضيع مشابهة