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

فرز العناصر في الدالةstructure

بدأه shaja في 2 يونيو 2009 · 10 رد · 770 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كلفنا الدكتور في الكليه في السؤال التالي

اريد برنامج بلغة سي بلس يقوم بادخال عشرة طلاب من كليات مختلفة ويقوم باخراج اسم الطالب والكلية ورقمة الاكاديمي باستخدام دالةstructure

يعني ادخال طلاب بأسماء وأرقام وأسماء الكليه

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

انا اعرف ان الطريقه هي منطقيه لكن كيف استخدام if في ال string

وشكرا مقدما

#2

السلام عليكم

أول شىء structure ليس بداله ولكنه يشبه بالوعاء يحتوى على عدة انواع من البيانات المترابطه تحت مسمى واحد

يعنى مثلا

يمكن انشاء structure تحت اسم student

يحتوى على المتغيرات الخاصه بالطالب مثل اسمه ( مصفوفه حرفيه) , كليته ( مصفوفه حرفيه) ,رقمه الأكاديمي( عدد صحيح)

ثم الإعلان عن مصفوفه من نوع student عناصرها 10

ثم البدء فى ادخال تلك البيانات عن طريق لووب

وبالنسبه لطريقة استخدام if مع string

يمكن استخدام المعامل == بدون اى مشكله لو استخدم كائنات string

او الداله strcmp فى حالة استخدامك للمصفوفات الحرفيه العاديه

وتلك الداله تعود بصفر لو كان الإسمين متطابقين

بالتوفيق

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#3

بس ممكن تكتب لي مثال وأكون مشكور لك

#4

شوف يا أخى

struct example
{
	int n;
	string name;
	string coll;
	// extra
} stud[100];// array of struct example

ويمكن الإعلان عن المصفوفه داخل الداله main

بالتوفيق

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#5

ممكن طريقة استخدام if مع string

او الداله strcmp

49940.jpg
#6
#include<iostream>
#include<string>
#include<conio.h>
using namespace std;
void main()
{
	string x;
	x="THIS IS ME";
	if(x=="THIS IS ME")
	cout<<x;
	else 
		cout<<"Nothing";
	getch();
}
#7

اخي الغالي هذه محاولتي ارجو ان توضح لي ماهي الاخطاء

  1.  
  2. #include<iostream>
  3. #include<conio.h>
  4. #include<string>
  5. using namespace std;
  6. struct student
  7. {
  8. char name[40];
  9. char college[30];
  10. int digit;
  11. }st[10];
  12.  
  13.  
  14.  
  15. int _tmain(int argc, _TCHAR* argv[])
  16. {
  17. int i,j;
  18. for(i=0;i<3;i++)
  19. {
  20. cout<<"number "<<i+1<<"nn";
  21. cout<<"enter name : ";
  22. cin>>st[i].name;
  23. cout<<"nenter college : ";
  24. cin>>st[i].college;
  25. cout<<"nenter digit " ;
  26. cin>>st[i].digit;
  27. cout<<"n=============n";
  28.  
  29. }
  30. cout<<"the Display is : nn";
  31.  
  32. for(i=0;i<3;i++)
  33. {
  34. j=i;
  35. while(j<3)
  36. {
  37.  
  38. if( strcmp(st[j].college , st[i].college)==0)
  39. {
  40. cout<<"the college is : "<<st[i].college<<endl;
  41. cout<<"Name of student is : "<<st[j].name<<endl;
  42. cout<<"Digit of student is : "<<st[j].digit<<endl;
  43.  
  44. }//if end
  45. j++;
  46. }//inner loop end
  47. cout<<"----------------------------n";
  48. }//external loop end
  49. getch();
  50.  
  51. return 0;
  52. }
  53.  
  54.  
  55.  
  56.  

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

  1.  
  2. cout<<"the Display is : nn";
  3.  
  4. for(i=0;i<3;i++)
  5. {
  6. j=i;
  7. while(j<3)
  8. {
  9.  
  10. if(st[j].college == st[i].college)
  11. {
  12. cout<<"the college is : "<<st[i].college<<endl;
  13. cout<<"Name of student is : "<<st[j].name<<endl;
  14. cout<<"Digit of student is : "<<st[j].digit<<endl;
  15.  
  16. }//if end
  17. j++;
  18. }//inner loop end
  19. cout<<"----------------------------n";
  20. }//external loop end
  21.  

جزاك الله الف خير

49940.jpg
#8

ايه اخطاء ؟؟؟؟

المقارنه صحيحه بالحالتين ولكن ما الذي تريد عمله بضبط ؟؟

1
#9

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

  1.  
  2. #include<iostream>
  3. #include<conio.h>
  4. #include<string>
  5. using namespace std;
  6. struct student
  7. {
  8. string name;
  9. string college;
  10. int digit;
  11. }st[10];
  12.  
  13.  
  14.  
  15. int _tmain(int argc, _TCHAR* argv[])
  16. {
  17. int i,j;
  18. for(i=0;i<3;i++)
  19. {
  20. cout<<"number "<<i+1<<"nn";
  21. cout<<"enter name : ";
  22. cin>>st[i].name;
  23. cout<<"nenter college : ";
  24. cin>>st[i].college;
  25. cout<<"nenter digit " ;
  26. cin>>st[i].digit;
  27. cout<<"n=============n";
  28.  
  29. }
  30. cout<<"the Display is : nn";
  31.  
  32. for(i=0;i<3;i++)
  33. {
  34. j=i;
  35. while(j<3-i)
  36. {
  37.  
  38. if (st[j].college == st[i].college)
  39. {
  40. cout<<"the college is : "<<st[i].college<<endl;
  41. cout<<"Name of student is : "<<st[j].name<<endl;
  42. cout<<"Digit of student is : "<<st[j].digit<<endl;
  43.  
  44. }//if end
  45. j++;
  46. }//inner loop end
  47. cout<<"----------------------------n";
  48. }//external loop end
  49. getch();
  50.  
  51. return 0;
  52. }
  53.  
  54.  

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

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

49940.jpg
#10

نعم تقصد ال

sorting

ولكن هناك طريقه افضل وهي ترتيبهم داخل المصفوفه ثم عرضهم بدلاً من ترتيبهم اثناء العرض

تم تعديل هذه المشاركة بواسطة Ali Al-Zyoud في 17 أكتوبر 2009 في 13:43

#11

شكرأ اخي

نعم طريقه الترتيب سهلة شكرا لك

ولكن هل محاولاتي كلها صحيحه .... ارجو التاكيد

49940.jpg

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