Magnum Opus
Well-Known Member
- تاريخ التسجيل
- 7 سبتمبر 2013
- المشاركات
- 97
- المجموعة
- ذكر
- الدفعة الدراسية
- 2013
- الكلية
- كلية تقنية المعلومات
- التخصص
- Computer Science
السلام عليكم .. شخباركم![]()
شخبار الاجازة معاكم اللي باقي لها يوم وتخلص :tears:
المهم بدخل ف الموضوع دايركت .. امممم انا كتبت برنامج بس عندي اغلاط ومو عارفه وين![]()
هاذ البرنامج :
كود:#include <iostream>#include <string> using namespace std; struct studenttype { string studentFname , studentLname ; int testscore ; char grade ; }; void readdata (studenttype list[],int size); void assinggrade (studenttype list[],int size); void findhighesttscore (studenttype list[],int size); void printdata (studenttype list[],int size); int main () { studenttype clas[20]; readdata (clas , 3); assinggrade (clas , 3); findhighesttscore (clas , 3); printdata (clas , 3 ); system ("pause"); } void readdata (studenttype list[],int size) { for (int i=0;i<size;i++) { cout<<"enter studentFname:"<<endl; cin>>list[i].studentFname; cout<<"enter studentLname:"<<endl; cin>>list[i].studentLname; cout<<"enter student test score:"<<endl; cin>>list[i].testscore; } } void assinggrade (studenttype list[],int size) { char a,b,c,d,f; for (int i=0;i<size;i++) { if (list[i].testscore>=90) { list[i].grade=a; cout<<list[i].studentLname<<","<<" "<<list[i].studentFname<<" "<<list[i].testscore<<" "<<list[i].grade<<endl; } else if (list[i].testscore>=80) { list[i].grade=b; cout<<list[i].studentLname<<","<<" "<<list[i].studentFname<<" "<<list[i].testscore<<" "<<list[i].grade<<endl; } else if (list[i].testscore>=70) { list[i].grade=c; cout<<list[i].studentLname<<","<<" "<<list[i].studentFname<<" "<<list[i].testscore<<" "<<list[i].grade<<endl; } else if (list[i].testscore>=60) { list[i].grade=d; cout<<list[i].studentLname<<","<<" "<<list[i].studentFname<<" "<<list[i].testscore<<" "<<list[i].grade<<endl; } else list[i].grade=f; cout<<list[i].studentLname<<","<<" "<<list[i].studentFname<<" "<<list[i].testscore<<" "<<list[i].grade<<endl; } } void findhighesttscore (studenttype list[],int size) { int max = 0; for ( int i =0;i<size;i++) { if (list[i].testscore>max) max = list[i].testscore; } } void printdata (studenttype list[],int size) { int max; for ( int i =0;i<size;i++) { if (list[i].testscore==max) cout<<list[i].studentLname<<","<<" "<<list[i].studentFname<<endl; } }
الغلط عندج ان تسوين :
PHP:
grade = a;
المفروض تسوين :
PHP:
grade = 'a';
في بعد شغلة لازم ما تنسينها ان انتين مخلية السايز مال الأدري 20 بس قاعدة تتعاملين ويا 3 بس. اعتقد هالشي مسوتنه عمدا عشان تجربين البرنامج بدون ما تدخلين 20, بس هالشي سهل تنسينه و تسلمين الحل غلط

بعد اخر شغلة, انتين في الـ بس قاعدة تطبعين الهايست سكور مو الانفورميشن مال كل الطلاب (ما أدري عمدا أو بالغلط).
ع فكرة بعد يعني ترا الفنكشن اللي توجد أعلى درجة ما منها فايدة. لأن هي بس تحصله و تخليه في فاريبل اسمه max و هالفاريبل بيتمحى بعد ما تخلص الفنكشن. الطريقة الصحيحة (مو الوحيدة بس صحيحة), ان تخلين الفنكشن ترجع انتجر اللي هو رقم الهاليست داخل الأري. جذي يعني :
PHP:
int findhighesttscore(studenttype list[], int size) { int max = 0; for (int i = 0; i < size; i++) { if (list[i].testscore > max) max = i; } return max;}
هذي هي الفنكشن و طريقة استخدامها بتكون شي جذي :
PHP:
int maxIndex = findhighestscore(list,size);
cout<<list[max].name<<" has the highest score"<<endl;


.
يعني اذا بنقسم السايز مال ال سترنغ ع 2 بطلع العدد مو INT وفوق هاذ يمكن مايكون الحرف الصح ؟!!!
وهالجبتر كامل ماله داعي 
