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

أرجو المساعدة لحل برنامج بلغة c++

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

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

اخوتي الافاضل

مطلوب مني كتابة برنامج بلغة c++

و أرجو منكم المساعدة بالاجابة على تساؤلاتي:

أولا:

اذا كان عندي معلومات مخزنة باستخدام الfile

مثلا(اسم العميل , رقم الهاتف ,العنوان) , و أردت اجراء تعديل على المعلومات ( مثلا اريد تغير رقم الهاتف فقط و المحافظة على المعلومات الأخرى بدون تغير ) كيف أفعل ذلك ؟!

ثانيا :

كيف أعمل sort للمعلومات المخزنة باستخدام ال classحسب ال date

اذا كان ال date:

Day/month/year

و أخيرا

أسأل الله العظيم رب العرش الكريم أن يجزي كل من حاول مساعدتي و ان لم يستطع خير الجزاء و يفرج عليه كرب الدنيا و الآخرة , كما فرج كربتي.

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

#2

بسم الله الرحمن الرحيم

حسب ما فهمت سؤالك

للقراءة من ملف استخدمي fscanf و ذكري اسم الملف ، لقراءة الاسم %s و لقراءة رقم %i وبعد القراءة يمكنك التغير ثم اعادة الخزن

اما لغرض الترتيب فهنالك عدة طرق باستخدام for او باستخدام do .. while

ان كان هذا ماقصدته فيمكن ان اساعدك اكثر

برامج في ال C#

إذا اشتكى مسلم في الهند أرقني -- وإن بكى مسلم في الصين بكاني

ومصر ريحانتي والشام نرجستي -- وفي الجزيرة تاريخي و عنواني

وفي العراق أكف المجد ترفعني -- إلى بساتين عز ذات أفنانِ

أرى بخارى بلادي وهي نائية -- وأستريح إلى ذكرى خراسانِ

#3

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

شكرا أخي الكريم على الرد

سؤالي بالضبط مثل ما فهمت , بس يا ريت توضح جوابك بالتفصيل أكثر

و بالنسبة للsort أنا أعرف أعمل الsort العادي , بس كيف أعمله للتاريخ

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

#4

السلام عليكم

بالنسبة للسؤال الاول

للقراءة من فايل

 main()
{ FILE *A,*B;
if((A=fopen("اسم الفايل.txt","r"))==null)
{ cout<<"file not exisr";
exit(0);}
if((B=fopen("اسم الفايل .txt","w"))==null)
{ cout<<...
exit(0);}
int m,n;
char s[20];
fscanf(A,"%s%i%i",s,&m,&n); //للقراءة من الفايل ، الان اصبحت القيم في المتغيرات الجديدة (s,m,n) و حسب التسلسل ..يمكنك الان تغيير اي قيمة 
cout<<s<<m<<n;
الان لاعادة طبع القيم بعد تغييرها في فايل اخر 
fprintf(B,"%s%i%i",s,m,n);

هذا بصورة عادية

اما اذا كان هنالك structure او class

fscanf(A,"%s%i%i",a.name,&a.num,&a.nnn);

اما اذا كان array of structure فيصبح a.name بدل a.name و هكذا

كما هنالك طرق اخرى للقراءة من الفايل اذا كان لدينا array كما ويمكن القراءة و الطباعة على نفس الفايل

ارجو ان يكون الكلام واضح .. هل سبق وان تعاملت مع الفايلات

اما بخصوص السؤال الثاني

انا لست متأكد من الاجابة ( اي لم اق بتنفيذه على الحاسبة ) على العموم انت جربيه و انا ايضا راح اشوفه ..

لو كان لدينا class

  class student 
{ int year,month,day;
public:
void sort(s[]);
};
void student::sort(s[])
{ int flag=1;
while(flag)
{ 
flag =0;
for( int i .. حسب العدد )
if(s.year<s[i+1].year)
{ int y=a.year;
a.year=a[i+1].year;
a[i+1].year=y;
int m=نفس الخطوات السابقة ، لابدال الشهر 
int d=a.day;
ثم اعادت الخطوات ، لترتيب الايام
flag=1;{

هذا اذا كان array of object

( الترتيب تصاعدي .. اما تنازلي فسوف نعكس الاشارة من اصغر الى اكبر في جملة if

ويبقى شيء اخير في الكود السابق

انه من المحتمل ان تكون السنة متساوية ولكن هنالك اختلاف في الاشهر او الايام

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

اعتقد ان الحل سيكون طويل ..

فكري في حل اخر اسهل و اقصر بتغيير ترتيب الشروط ، ان وجدتُ حلا اخر سأقوم بوضعه هنا وان كان هنالك شيء غير مفهوم .. لاتترددي في السؤال

برامج في ال C#

إذا اشتكى مسلم في الهند أرقني -- وإن بكى مسلم في الصين بكاني

ومصر ريحانتي والشام نرجستي -- وفي الجزيرة تاريخي و عنواني

وفي العراق أكف المجد ترفعني -- إلى بساتين عز ذات أفنانِ

أرى بخارى بلادي وهي نائية -- وأستريح إلى ذكرى خراسانِ

#5

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

شكرا أخي زيد العمري على الرد و جزاك الله خيرا .

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

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