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

رنامج على لغة سي++ وبحاجة الى تعديل

بدأه كرمل في 4 أبريل 2012 · 4 رد · 670 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي هذا البرنامج على لغة سي ++

#include<iostream.h>

#include<string.h>

;struct student

30

{char name[35];int avg;};

void read(student[],int);

void print(student[],int);

void main()

{int i,n;

student s;

cout<<"Enter N "<<endl;cin>>n;

read(s,n);print(s,n);}

void read(student s,int n)

{int i,c=0;

for(i=0;i<n;i++)

{cout<<"Enter in formation "<<endl;

cin>>s.name>>s.avg;

if(s.avg>=50)c++;}}

void print

(student s,int n)

{int i,c;

for(i=0;i<n;i++)

cout<<s.name<<"::"<<s.avg<<endl;

cout<<"the sumation succeses :"<<c;

cin

واود التعديل عليه لكي يصبح قائمة متصلة

اي ما أريده هو برنامج بلغة سي++ عبارة عن سلسة رمزية باستخدام القوائم المتصلة

فهل من مساعدة؟؟؟

والبرنامج في الملف المرفق

NONAME00.CPP

#2

السلام عليكم

هذا برنامج قريب من الفكرة التى تريدبنها قومى بإستخدام دوال إدراج السلاسل النصية للقائمة الموصولة وأتركى دوال التحقق والحذف من الكود

إليك هنا رابط المشاركة

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#3

اشكرك اخي الكريم ولكن هل من مثال توضيحي لذلك

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

اشكرك لردك على الموضوع

#4

السلام عليكم

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

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

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

- يمكنك التعديل على الكود حسب إحتياجاتك .

- هذا الكود به دالة لإضافة طالب للقائمة الموصولة ودالة عرض لمحتويات القائمة الموصولة .

- قمت بوضع تعليقات بسيطة داخل الكود لسهولة تتبع مسار الكود :

#include<iostream>
#include <string.h>

using namespace std;
// تعريف القائمة الموصولة
struct LinkedList
{ 
    	char name[35];
		int avg;
    	struct LinkedList * next;
};
typedef struct LinkedList node;
// تعريف دالة القراءه وهى دالة تأخذ عنوان مؤشر أول عنصر فى القائمة الموصولة
void read(node **fristN);
// تعريف دالة الطباعة
void print(node *fristN);
// الدالة الأساسية
int main()
{
	// تعريف مؤشر لأول نود
	node *fristNode = NULL;
	int in=1;
	while(in==1)
	{
      	// إستدعاء دالة القراءه وإعطائها عنوان المؤشر لأول نود فى القائمة
      	read(&fristNode);
      	cout <<"Press 1 To add More Or Any Number To End: ";
      	cin >> in;   	
	}
	// إستدعاء دالة الطباعة وإعطائها مؤشر أول نود فى القائمة الموصولة
	print(fristNode);
   system("PAUSE");
	return 0;
}


// دالة القراءه وتأخذ عنوان عنوان
void read(node **fristN)
{
		// تعريف مؤشر من نوع نود
    	node *newnode=NULL;
    	// اسناد قيمة مؤشرأول نود للمؤشر المؤقت
		node *cur=*fristN;
		// شرط كون النود المدخلة أول نود أم لا
		if(cur!=NULL)
		{
			while(cur!=NULL)
			{
				// شرط الوصول لأخر نود فى القائمة لإضافة نود جديدة لها
            	if(cur->next==NULL)
				{
					// حجز مساحة للنود الجديدة فى الذاكرة
                	newnode=new node;
                	// إضافة البيانات
					cout << "Please Enter Student Name: ";
					cin >> newnode->name;
					cout << "Please Enter avg: ";
					cin >> newnode->avg;
					// إشارة النود الجديدة المدخلة للقيمة الفارغة لأنها تعتبر أخر نود فى القائمة الموصولة
					newnode->next=NULL;
					// إشارة النود الحالية للنود الجديدة المضافة
					cur->next=newnode;
					// الخروج من الحلقة
					break;
				}
				// نقل المؤشر للنود التالية
				cur=cur->next;
			}
		}
		// حال كون النود المدخلة هى أول نود
		else
		{
			// حجز مساحة للنود الجديدة فى الذاكرة
        	newnode=new node;
        	// إضافة البيانات
			cout << "Please Enter Student Name: ";
			cin >> newnode->name;
			cout << "Please Enter avg: ";
			cin >> newnode->avg;
			// إشارة النود للقيمة الفارغة
			newnode->next=NULL;
			// جعل هذه النود هى أول نود فى القائمة الموصولة
			*fristN=newnode;
		}
}

// دالة الطباعة
void print(node *fristN)
{
	node *cur=fristN;
	if(cur /* cur!=NULL */)
	while(cur)// أى شرط الوصول لنهاية القائمة الموصولة
	{
		// طباعة القيم
    	cout << "\nStudent Name: " << cur->name<<"\n";
		cout << "Student  avg: "<<cur->avg<<"\n";
		// نقل المؤشر
		cur=cur->next;
	}
	else
	cout << "Empty List !!!\n";
}

تنزيل الملف

LinkedList.cpp

دمتم بخير

تم تعديل هذه المشاركة بواسطة ahmedsaoud31 في 5 أبريل 2012 في 07:04

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#5

اشكرك اخي على المساعدة

وانا بالفعل ادرس تركيب البيانات ولكن كانت لدي هذه المشكلة وهي انشاء قائمة متصلة باستخدام السلاسل الرمزية

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

فكيف لي ان اجمع ما بين جميع هذه الدوال او بعض منها في برنامج

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…