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

برنامج باستخدام دالة الترتيب

بدأه aqaq في 8 نوفمبر 2008 · 7 رد · 625 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ساطرح حل البرنامج اللي طلبت حله .. وبعد محاولات مني وابغى تصححون لي ان كان فيه اخطاااء

* برنامج يسمح بادخال بيانات طلاب ( الاسم - الرقم - الدرجه ) ثم يقوم بباعة البيانات مرتبة حسب التقديرات ؟

الحل :

#include<iostream>

using std :: cin;

using std :: cout;

using std :: endl;

class student

{

private:

int no;

char name[10];

int score;

char degree;

public:

void in()

{

cout<<"enter no";

cin>>no;

cout<<"enter name";

cin>>name;

cout<<"enter score";

cin>>score;

}

void degre()

{

if(score>=90)

degree='A';

else

if(score>=80)

degree='B';

else

if(score>=70)

degree='C';

else

if(score>=60)

degree='D';

else

degree='E';

}

void out()

{

cout<<no<<"\t"<<name<<"\t"<<score<<"\t"<<degree<<"\n";

};

void selectionsort(student st[],int a size)

{

int i,j,s,temp;

for(i=0;i<arraysize-1;i++)

{ s=i;

for(j=i+1,j<arraysize,j++)

{ if(st[j-1].score>st.score)

s=j;

}

temp=a;

a=a;

a=temp;

}

}

void main()

{

student st[10];

int i,x;

for(i=1;i<4;i++)

st.in();

cout<<"no\tname\tscore\tdegree\n";

for(i=1;i<4;i++)

st.degre();

for(i=1;i<4;i++)

{

st.out();

st.selectionsort();

cout<<endl;

}cin>>x;

}

أرجوووووووو الرد اليوم ضررروري

#2
اقتباس
int a size

؟ :wacko:

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#3

هذا تعريف لحجم المصفوفه واختصار لها بدل مااكتب

array

كتبت

a

____

ممكن التصحيح والتوضيح اكثر ؟ :S

#4

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

هذا البرنامج صغته لك بطريقة أفضل اقراءه على مهل .

  1. #include<iostream>
  2. #include<cstring>
  3. using std::cin;using std::cout;using std::endl;using std::strcpy;
  4.  
  5. class student
  6. {
  7. private:
  8. static const int size=30;
  9. int number;
  10. char name[size];
  11. int score;
  12. char degree;
  13. public:
  14. int get_number();
  15. void set_number(int);
  16. char* get_name();
  17. void set_name(char*);
  18. int get_score();
  19. void set_score(int);
  20. char get_degree();
  21. };
  22. int student::get_number(){return number;}
  23. void student::set_number(int n){number=n;}
  24. char* student::get_name(){ return name;}
  25. void student::set_name(char str[]){ strcpy(name,str); }
  26. int student::get_score(){return score;}
  27. void student::set_score(int sc){score=sc;}
  28. char student::get_degree()
  29. {
  30. switch(score/10)
  31. {
  32. case 10:return 'A';
  33. case 9:return 'A';
  34. case 8:return 'B';
  35. case 7:return 'C';
  36. case 6:return 'D';
  37. default: return 'E';
  38. }
  39.  
  40.  
  41.  
  42. }
  43. int main()
  44. {
  45.  
  46. int d;
  47. cout<<"how many student's :";
  48. cin>>d;
  49. int n ,s;
  50. student* sd=new student[d];
  51. char str[30];
  52. for(int i=0;i<d;i++)
  53. {
  54. cout<<"Enter Number:";
  55. cin>>n;
  56. cin.ignore();
  57. cout<<"Enter Name :";
  58. cin.getline(str,30);
  59. cout<<"Enter score:";
  60. cin>>s;
  61. sd[i].set_number(n);
  62. sd[i].set_name(str);
  63. sd[i].set_score(s);
  64. }
  65.  
  66.  
  67.  
  68.  
  69. for(int i=0;i<d;i++)
  70. {
  71. for(int j=0;j<i;j++)
  72. {
  73. if(sd[i].get_score()>sd[j].get_score())
  74. {
  75. student tmp=sd[i];
  76. sd[i]=sd[j];
  77. sd[j]=tmp;
  78. }
  79.  
  80. }
  81.  
  82.  
  83.  
  84.  
  85. }
  86. for(int i=0;i<d;i++)
  87. cout<<"Number :"<<sd[i].get_number()<<" Name :"<<sd[i].get_name()<<" score :"<<sd[i].get_score
    ()<<" degree : "<<sd[i].get_degree() <<endl;
  88. cin.get();
  89. cin.get();
  90. return 0;
  91. }
  92.  

tvquran_6.gif

#5

لتعريف اي متغير يجب ان لانترك مسافة بين الاسم

مثل :

 int x;

اما عند تعريف مصفوفة نعرفها بهذا الشكل

int x[size];//const size
llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#6

يعطيكم ألف عآآآآآآفيهـ .... =)

#7

السلام عليكم

بنزل حل ثاني وياليت توضحون لاخطاء والتعديلات فيه .. لان البرنامج مطلوب حله بالدوال

#include<iostream>

using std::cin;

using std::cout;

using std::endl;

class student

{

private:

int no;

char name[10];

int score;

char degree;

public:

void in()

{

cout<<"enter no";

cin>>no;

cout<<"enter name";

cin>>name;

cout<<"enter score";

cin>>score;

}

void degre()

{

if(score>=90)

degree='A';

else

if(score>=80)

degree='B';

else

if(score>=70)

degree='C';

else

if(score>=60)

degree='D';

else

degree='E';

}

void out()

{

cout<<no<<"\t"<<name<<"\t"<<score<<"\t"<<degree<<"\n";

}

};

void selectionsort(student std [], int arraysize )

{int i,j,min,temp;

for(i=0;i<arraysize-1;i++)

{min=i;

for(j=i+1;j<arraysize;j++)

{if(std[j].score>std[min].score)

min=j;

}

temp=std.score;

std.score = std[min].score;

std[min].score=temp;

}

};

void main()

{

student st[10];

int i,x;

for(i=1;i<4;i++)

st.in();

cout<<"no\tname\tscore\tdegree\n";

for(i=1;i<4;i++)

st.degre();

for(i=1;i<4;i++)

{

st.out();

cout<<endl;

}cin>>x;

}

تم تعديل هذه المشاركة بواسطة aqaq في 9 نوفمبر 2008 في 20:47

#8

فقط اجعل المتغير score عام وليس خاص لا نك تطلبه من خارج الكلاس .

وباقي البرنامج مضبوط.

tvquran_6.gif

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