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

انقلب راسي من هذا البرنامج ارجوكم انقذوني

مغلق
بدأه samabd في 24 ديسمبر 2001 · 12 رد · 751 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الى الأخ المبرمج المشهور هاني الاتاسي اواي عضو في هذا المنتدى الرائع أرررجوكم المساعدة في حل هذا السؤال في فيجول سي++ :صمم برنامج لقراءة نتائج الأمتحان

لمجموعة من الطلاب عددهم n لعددM من المواد وكذلك يقوم البرنامج بعمل: 1-طباعة أسماء الطلاب بالترتيب حسب المجموع الكلي للدرجات وطباعة متوسط كل طالب في المواد 2-طباعة الأول والاخير في كل مادة 3-طباعة متوسط الفصل في كل مادة الحل يكون بأستخدام جزئية برمجية FUNCATION أرجوكم المساعدة

كان الله في عون العبد مادام العبد في عون اخيه المسلم :'( :o :confused: :mad:

#2

تكفون ياجماعة الخير عجلوا بالرد على سؤالى لاني مستعجل بالحيل

وجعله الله في موازين حسناتكم

#3

السلام عليكم.

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

1 - عليك إنشاء object ( مثلا Class ) الذي سيستخدم في تخزين معلومات كل طالب على حدا مثلا : اسم الطالب - علامة الطالب في المادة الاولى - ..... الخ , و هذه الخطوة تعتبر أهم خطوة في البرنامج .

2 - التصريح عن مصفوفة ديناميكية بعدد الطلاب الموجودين n من النوع الذي أنشأته في الخطوة 1 و إدخال المعلومات إليها .

3 - عملية المعالجة و هي من الأمور البسيطة مثل : مجموع العلامات و المتوسط لكل طالب أو لكل مادة .

هذه لمحات عامة و سريعة عن خطوات البرنامج , الرجاء محاولة كتابة البرنامج ثم بعد ذلك نتناقش في كيفية تحسينه .

مع التحيات.

#4

مشكور اخوي عادل بس اللي معقدني الترتيب

ياريت تعطيني كود للترتيب ...اختصاراً للوقت لاني الان في فترة اختبارات

#5

السلام عليكم.

أخي هناك عدة طرق للترتيب و لكن أسهلها على الاطلاق و أسرعها في عملية الكتابة ( و ليس التنفيذ ) هو كود الترتيب الفقاعي Bubble Sort و هو كالتالي :

على افتراض أنه لديك مصفوفة ذات n رقم و تريد ترتيبها من الأصغر إلى الأكبر فتكون الشيفرة كالتالي :

for( int i = 0 ; i < ( n - 1 ) ; i++ )
    for( int j = i + 1 ; j < n ; j++ )
       if ( x[ i ] > x[ j ] )
       {
           int temp ; // على افتراض أن نوع عناصر المصفوفة هو int
           temp = x[ i ] ;
           x[ i ] = x[ j ] ;
           x[ j ] = temp ;
       }

مع التحيات.

#6

هذا ماتوصلت الية في البرنامج لاني طالب مبتدىء وتعبت في هذا البرنامج .......الخ

اما الترتيب فعجزت عنه وضيعت وقتي فيه مع العلم أن يوم السبت القادم بإذن الله عندي اختبار فيه واريد تكملة الجزء الباقي من البرنامج ومشكورا على جهدك معي ...

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

#include
int i,j;

void main()
{
	const int N=20;
	const int M=5;
    char name[N][5];
	float grade[N][M];
	int n;
	cout<<"enter the number of student";
	cin>>n;
	for(i=0;i	{
		cout<<"enter the name of student"<		for(j=0;j		{
			cin>>name[j];
		}
	}
	for(i=0;i	{
		cout<<"enter the grade of student"<		for(j=0;j		{

			cin>>grade[j];
		}
	}



	for(i=0;i	{
		float sum;
         sum=0;
		float total;
		 for(j=0;j		{

			 sum=sum+grade[j];

		}
		total=sum/M;
		 cout<<"the average of student"<	}
	for(j=0;j	{
		float avrgclass;
		float sumclass=0;
		for(i=0;i		{
			sumclass=sumclass+grade[j];
			 avrgclass=sumclass/n;

		}
		cout<<"the avrg of class "<
	}

}

(مع العلم ان ليس لدي طريقه لوضع الكود في المنتدى افضل من هذه الطريقه) آسف فلا أعلم كيفية وضع الكود في المنتدىa

#7

مرحبا اخي...

انا افضل طريقة ال classes مثل ما ذكر الأخ عادل..استخدم الآتي فهو حتى اكثر تنظيما و سوف يسهل عليك التفكير...

class Subject
     {
      public:
      float sum;
      float mark;
      float avr;


      FindSum(); 
      FindAvrg();

      };


class Student
     {
       public:
       char name;
       Subject subjects[10]; 
       };

وتكون طريق القراءة " مثلا " كالتالي :

 

void main()
       {
	Student students[20];
	int std_num;
        int sub_num;
        int j;

	cout<<"enter # students"<	cin>>std_num;

	for(int i=0;i        {
	 cout<<"enter student # "<	 cin>>students.name;
	 for(j=0;j	  {
	   cout<<"enter subject # "<	   cin>>students.subjects[j].mark;
	   }
	}


        }

**للتسهيل جعلت جميع محتويات ال classes من النوع public

حظا موفقا ..

(f)

#8

مشكور اخوي soma ولكن انا لااعرف class لاني مادرستها وماراح يقبل الدكتور هذا الحل وماني فاهم منه شيىء .ياريت تساعدوني بحل الجزء الباقي من البرنامج بطريقة المصفوفات العادية (بدون استخدام ال class )

فقد تجاوزت عملية القراءة

تكفون حلوا لي بس هذه الفقرة وساكون ممتناًلكم 1-طباعة أسماء الطلاب بالترتيب حسب المجموع الكلي للدرجات .

اررررررجوكم مابقي الا هذه الفقرة

وجزاكم الله خيراً وجعله في موازين حسناتكم:'( :o

#9

السلام عليكم.

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

float total[N];

for(i=0;i

{

total = 0 ;

for(j=0;j

total[ i ] += grade[j];

}

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

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

if ( total[ i ] > total[ j ] )

{

float temp ;

temp = total[ i ] ;

total[ i ] = total[ j ] ;

total[ j ] = temp ;

char tempc ;

for( int k = 0 ; k ;)

مع التحيات.

#10

يعلم الله انني اكتب هذا الرد وانا خجلان منك يااخ عادل ومن الاخ سوما واعلم انني ازعجتكما.... ولكن لاحياء في العلم.....

بقية نقطه صغيرة وهي في الكود الذي كتبته يااخ عادل بخصوص ترتيب اسماء الطلاب حسب المجموع الكلي للدرجات:

حاولت اعمل عملية طباعه لاسماء الطلاب فلم تنجح معي ارجو التكرم بكتابة هذا الامر

وعندها سوف يكون البرنامج إن شاء الله شغال 100/100 وهذا بفضل الله ثم بفضل الاخوان:o :o (f) (g)

#11

السلام عليكم...

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

(f) (f)

#12

كتبت بعد هذا

grade[ j ][ k ] = temp ;

cout<<"the name"<

وطلعت لي اشياء ماني فاهمها

مع التحيات

#13

السلام عليكم.

هذا هو الكود :

for(i=0;i{
         for(j=0;j                cout<
         cout<<"t"<
}

مع التحيات

هذا الموضوع مغلق.

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