السلام عليكم
يااااااااااااليت تساعدوني لأن والله خايفه ومو عارفه ايش اسوي
لو سمحتم محتاجه مساعدتكم العاجله جدااا جدا اليوم لأن بكره لازم أسلم هالواجب
هذا
البرنامج عباره عن إدارة بيانات مكتبه باستخدام الـ
struct
والدكتور طالب منا نحول هذا البرنامج باستخدام الـ
class
ليحفظ بيانات مجموعة من الكتب يعني نستخدم
array of objects
وهذا نص السؤال
قومي بتحويل برنامج المكتبه ليقوم بدلا من حفظ بيانات كتاب واحد إلى حفظ بيانات مجموعة من الكتب (مصفوفة من الاوبجيكت ) ووفري الخدمات التاليه في البرنامج من خلال ثائمة يختار منها المستخدم مايريد كالتالي :
1/عرض بيانات جميع الكتب
2/البحث عن كتاب معين تبعا لـ
اسم الكتاب
رقم الكتاب
3/ حذف كتاب (تبعا للكيفية التي تتحكمين فيها في تخزين الكتاب)
مع ملاحظة التالي
اتكرار عرض الأوامر المتاحة إلى أن يختار المستخدم الخروج من البرنامج
إا كان سيختار من القائمة بواسطة حرف يدخله فيجب أن يراعي أن البرنامج سواء أدخل المستخدم حرف صغير أو كبير ) أنا أفضل الأرقام بدل الحروف للسهوله
ولو أردنا التالي فماذا ترتائين
أن نعطي المصفوفه قيم افرتاضيه بمجرد إنشائها برمجيا :
المره الأولى إا كنا فقط سنهيئها بقيمة أحاديه هي قيمة الـ
id؟
المره الثانيه إا منا سنهيئها بجميع قيمها ؟
لو أردنا أن نطبق نفس البرنامج لكن من خلال المؤشرات ؟
- #include <iostream.h>
- #include <conio.h>
- #include <stdio.h>
- #include <string>
- void init_list();
- int menu();
- void enter();
- void input(int i);
- void update();
- void display();
- const int SIZE=20;
- struct Book
- {
- char Title[SIZE];
- int ID;
- int Quantity;
- float cost;
- }Library[20];
- int main()
- {
- char choice;
- init_list();
- for(;;)
- {
- choice = menu();
- switch(choice)
- {
- case 'e':
- enter();
- break;
- case 'd':
- display();
- break;
- case 'u':
- update();
- break;
- case 'q':
- return 0;
- }
- }
- getch();
- }
- // Initialize the array.
- void init_list()
- {
- int t;
- for(t=0; t<SIZE; t++)
- *Library[t].Title = '\0';
- }
- // Get a menu selection.
- int menu()
- {
- char ch;
- cout << 'n';
- do {
- cout << "ntt(E)ntern";
- cout << "ntt(D)isplayn";
- cout << "ntt(U)pdaten";
- cout << "ntt(Q)uitnn";
- cout << "ntttchoose one: ";
- cin >> ch;
- return tolower(ch);
- }
- // Enter Titles into the list.
- void enter()
- {
- int i;
- // find the first free structure
- for(i=0; i<SIZE; i++)
- if(!*Library[i].Title)
- break;
- // i will equal SIZE if the list is full
- if(i==SIZE)
- {
- cout << "List full.n";
- return;
- }
- input(i);
- }
- // Input the information.
- void input(int i)
- {
- // enter the information
- cout << "ntBook Title: ";
- gets(Library[i].Title);
- cout << "ntBook ID: ";
- cin >> Library[i].ID;
- cout << "ntBook price: ";
- cin >> Library[i].cost;
- cout << "ntBook Quantity: ";
- cin >> Library[i].Quantity;
- }
- // Modify an existing Title.
- void update()
- {
- int i;
- char name[80];
- cout << "Enter Title: ";
- cin >> name;
- for(i=0; i<SIZE; i++)
- break;
- if(i==SIZE)
- {
- cout << "nttTitle not found.n";
- return;
- }
- cout << "ntEnter new information.n";
- input(i);
- }
- // Display the list.
- void display()
- {
- int t;
- for(t=0; t<SIZE; t++)
- {
- if(*Library[t].Title)
- {
- cout << "ntBook Title: "<<Library[t].Title;
- cout << "ntBook ID: "<<Library[t].ID;
- cout << "ntBook price: "<<Library[t].cost;
- cout << "ntBook Quantity: "<<Library[t].Quantity;
- }
- }
- }