#include<iostream.h>
#include<string.h>
struct ITEM {
char name[20];
int qty;
} ar[50];
هذه ستركت بها متغير اسم ومتغير رقم صحيح
read(ITEM &val) {
cout<<"Enter item name:";
cin>>val.name;
cout<<"Enter qty:";
cin>>val.qty;
}
هذا وظيفة او ممكن تسميه سب روتين يطلب منك/منكي ادخال الاسم ثم ادخال القية qty
ولاحظ انهما ينتميان للاستركت اللي فوق
هو يعطيك عنوان الادخال وانت تدخل المعلومة
مثال هو يكتب ادخل اسم المادة ثم انت تدخل اسم المادة
ويتم حفظها في ال استركتval وترسل القيمة للفال الى الجهة التي استدعت هذه الوظيفة
search(ITEM val, int &r) {
r = -1;
for(int i=0; i<=cnt; i++)
if(strcmp(ar[i].name,val.name)==0) r=i;
}
هذه وظيفة تحمل معها اثنان من المتغيرات فال و عنوان ل ار
اللي يحصل انه يظل يبحث لعدد مرات تساوي cnt مرة باحثا عن قيمة للرقم r اللي يساوي للقيمة المحفوظة في الاستركت val
process(char t) {
ITEM val;
read(val);
يقرا البيانت اللي تدخلها ويحفظها في ال val
افرض انك اخترت ‘o’ يعني تي=حرف i
يروح هنا اذا اخترنا تي = i
if(r != -1) ar[r].qty += val.qty;
else {
ar[cnt] = val;
cnt++;
}
}
تعلن عن متغير من نوع ستركت ايتم
ثم تملى بالبيانات اللي يعملها رييد
يعني رييد يملى الاستركت فال
if(t=='o') {
if(r != -1) ar[r].qty -= val.qty;
else cout<<"Item not found!\n";
}
print() {
for(int i=0; i<cnt; i++)
cout<<ar[i].name<<"\t"<<ar[i].qty<<"\n";
}
int s;
do {
cout<<"(1-in 2-out 3-print 4-exit): ";
cin>>s;
if(s==1) process('i');
if(s==2) process('o');
if(s==3) print();
} while(s!=4); }
هذا هو البرنامج الرئيسي له خيارات
1 اذا اخترت 1 يروح ينادي على بروسس حاملا معه حرف اي
او اثنان حاملا معه حرف او
او يكتب ان اخترت 3
او يخرج اذا اخترت 4
اكمل الشرح اذا كان شرحي طيب بس والله ماني متاكد ان كان احد معي متابعني