مرحبا :
اتمني من اي شخص داخل الموقع المساعده في حل هدا البرنامج وانا اشكر من حاول المساعده من قبل وارجو ان اكون الا ازعجت احد وشكرا
مرحبا :
اتمني من اي شخص داخل الموقع المساعده في حل هدا البرنامج وانا اشكر من حاول المساعده من قبل وارجو ان اكون الا ازعجت احد وشكرا
مرحبا :
البرنامج يخص لغة السيcوهو كالاتي:
البرنامج:
اكتب برنامج بلغة السي cيعمل علي فتح ملف يحتوي علي عدد من السجلات لخمس طلبة المطلوب :
1-كل سجل يحتوي علي رقم قيد الطالب,الاسم,teast1,teast2, المجموع
2- اضافة طالب جديد
3-تعديل في سجل طالب
اتمني المساعد بأسرع ما يمكن قبل يوم الثلاثاء اذا امكن واتمني الا اكون قد ازعجت احد بالكلام وشكرا.........
مرحبا :
ارجو المساعده في الحل وانا اسفه علي تحديد الموعد فأرجو ان تجيبو علي الحل وشكرا لكم.....
خذ الكود :
#include <iostream.h>
#include<stdio.h>
#include <string.h>
//#include <conio.h>
#include <stdlib.h>
void AddRecord(char* Name,int test1,int test2)
{
FILE *file_write;
file_write=fopen("Newtable.txt","a+");
fprintf(file_write,"%s\n%d\n%d\n",Name,test1,test2);
fclose(file_write);
}
/*void DisplayRecord(char* Name)
{
FILE *file_write;
file_write=fopen("table.txt","a+");
fscanf(file_open,"%s%d%d%d",,c,&u);
cout << Name:
fclose(file_write);
}
*/
void EditRecord(char* Name)
{
FILE *file_write;
file_write=fopen("Newtable.txt","a+");
int test1;
int test2;
//Name=new char[20];
char name_search[20];//=new char[20];
bool name_found=false;
bool Processelse=false;
int i=0;
int test[2];
while(fscanf(file_write,"%s",name_search)==1)//%d%d",Name,&test1,&test2)==1)
{
//cout<<"Name:"<<Name<<endl;
if(atoi(name_search)==0)
if(!strcmp(Name,name_search))
{ //cout <<Name<<endl;
//cout<<name_search<<endl;
cout <<"Name :"<<name_search<<endl;
name_found=true;
//cout << "Test1 = "<<test1<<endl;
//cout << "Test2 = "<<test2<<endl;
//cout << "Total = "<<test1+test2<<endl;
i=0;
//cout<<strcmp("gd","gd");
//cout<<Name<<endl;
}
if(Processelse)
{
if(atoi(name_search)!=0)
{
cout << "Test"<<i++<<" "<<name_search<<endl;
test[i-1]=atoi(name_search);
//cout << "Test2 = "<<test2<<endl;
//cout << "Total = "<<test1+test2<<endl;
}
}
if(name_found)
Processelse=true;
name_found=false;
if(i==2)
{
cout << "Result ="<<test[0]+test[1]<<endl;
Processelse=false;
i=0;
}
}
fclose(file_write);
}
void main()
{
cout <<"Select "<<endl<<"1)Add New Record"<<endl<<"2)Display Record"<<endl;
int select;
cin>>select;
char name[20];
int test1,test2;
if(select==1)
{cout<<"Enetr Name : ";cin>>name;
cout<<"Enter Test 1Dgree : ";cin>>test1;
cout<<"Enetr Test2 Dgree : ";cin>>test2;
AddRecord(name,test1,test2);
}
if(select==2)
{
cout<<"Enter the name that you want To display Information "<<endl;
cin>>name;
EditRecord(name);
cin.get();
}
/*
AddRecord("AAFam",100,188);
AddRecord("Hyham",10,882);
AddRecord("gham",100,883);
AddRecord("Hyth",1,838);
*/
//EditRecord("Hytham");
cin.get();
}\
مرحبا:
شكرا كتير اليك لانك لبيتلي طلبي والي كل اللي ساعدو في حله بس اطلب طلب تاني اذا امكن انو coutهدي هل هي معناها ادخال او طباعه ارجو التوضيح ومع التوضيح شرح البرنامج بأختصاريعني وضع الاضافه والتعديل وشكرااا كتير معليش انا كتير طلبت اسئله فأنا اتأسفه ....
السلام عليكم ,,
cout ,, هي نسخة الطباعة الخاصة بالسي++ ,, يعني في السي ,, هي printf ,,
وأنا اتعودت على ال cout ,, حيث لانحتاج لتحديد نوع المتغير الذي نريد طباعته يعنب %d و %c و %f وغيرها من الاشكال ,, فقط يكفي الاخراج ,,
وبالطبع ال cin هي بدل ال scanf ,,
حاولي أن تعدلي فالتعديل بسيط جدا ,, واذا لم تستطيعي سنفعل ذلك ,,
وسأشرح البرنامج غدا باذن الله ,,
وقفك الله ,,
مرحبا:
شكرا كتير كتير اليك علي ردك وانا كتير بتشكر كل اللي ساعدو وانا راح احاول اغير من c++الي cوراح هعرضو عليك اذا كان فيه غلط ,واتمني انو تكونو ما تديقتو مني وشكرا كتير..... (:
السلام عليكم,,
شكرا جزيلا لك أخي HGB علي هذا الجهد العظيم و المقدر منك و من سائر اعضاء المنتدي و نرجو من الله ان يجزيكم كل خير..
و لكن هل تفضلت اخي و شرحت الكود اعلاه..شرحا وافيا كافيا..و ارجو ان لا اكون قد اثقلت عليك بطلبي هذا..
شكرا جزيلا,,
السلام عليكم ورحمة الله وبركاته
شيء رائع أن تسأل وتجد من يساعدك ولكن لأبد من المساعده فمثلاً لووولووو انسان يسأل سؤال عن البرنامج في لغة السي++ مافي مشكلة والله و لكن يسأل سؤال عن Cout فهذا في قمة الغرابة لأن أي شخص يتعلم لغة السي في البداية يتعلم معنى Cout و Cin فأعتقد أنك ابدعت يا HGB في المساعدة ولكن أخطأة في حق المدرس أو الاستاذ الذي يتعب في تدريس ناس تلعيب في الصف و تجي في الانترنت وتبحث عن حل وليس مساعدة في الحل .... وهذا سبب واضح على تأخر عالمنا العربي في التطور لالالا بل لن نبقى العالم الثالث بل ربما نرجع لعالم رابع لم يكتشف بعد
.... اتمنى من الجميع أن يعذرني على هذه المداخله ولكن هي مجرد غيرة على أمتنا النائمة
مرحبا
شكرا اليك كتير علي الشكر الي المبرمجين الكبار فلقد اعجبتني طريقة شكرا لكن اريد توضيح الي من كتب عن الاستغراب فأنا دراستي في لغة cوليست لغة c++والاستاذ الكريم قد ساعدني في حله عن طريق لغةc++وقال لي انه خبرته في c++وليس cفأرجو ان تكون وضحة الصوره اليك وانا اتأسف الي الاستاد لان قد كلامي قد يجرح الاستاد الكريم وشكراا....
خلاص ياشاباب ,, كل واحد يصلح سيارتو حصل خير ,,
فقط أتمنى من كل من يريد أن يسأل أن يبذل جهده للاجابة على نفسه فان لم يستطع ,, سنساعده نحن باذن الله ,,
أخي tristan ساشرح الكود اليوم ,, باذن الله ,,
و انا بالانتظار أخي HGB...!
مرحبا استاذHGB:
انا ايظا انتظر الشرح وشكرا اليك
اذاً يحق لنا الاعتذار فأنا في الحقيقة ضيف جديد على هذل المنتدى وهذا واضح من مشاركاتي وربما ردي الأول لكم كانت مشاركتي الاولى أو الثانيه و لم أعرف مشكلتك مع c++ فارجو ان تتقبل اعتذاري ...فهي فقط غيرة وحزناً على أمتنا خاصتاً عندما أقرأ عن ثقافة اليابان. وحبهم لتطورررر... وشكراً
مرحبا AMAN11:
ولا يهمك مو مشكله انت كنت بدك تعطي رأيك وانا وضحت فلا يهمك وشكرا اليك لانك اهتميت باي
void EditRecord(char* Name)
{
FILE *file_write;
file_write=fopen("Newtable.txt","a+");
int test1;
int test2;
//Name=new char[20];
char name_search[20];//=new char[20];
bool name_found=false;
bool Processelse=false;
int i=0;
int test[2];
while(fscanf(file_write,"%s",name_search)==1)//%d%d",Name,&test1,&test2)==1)
{
//cout<<"Name:"<<Name<<endl;
if(atoi(name_search)==0)
if(!strcmp(Name,name_search))
{ //cout <<Name<<endl;
//cout<<name_search<<endl;
cout <<"Name :"<<name_search<<endl;
name_found=true;
//cout << "Test1 = "<<test1<<endl;
//cout << "Test2 = "<<test2<<endl;
//cout << "Total = "<<test1+test2<<endl;
i=0;
//cout<<strcmp("gd","gd");
//cout<<Name<<endl;
}
if(Processelse)
{
if(atoi(name_search)!=0)
{
cout << "Test"<<i++<<" "<<name_search<<endl;
test[i-1]=atoi(name_search);
//cout << "Test2 = "<<test2<<endl;
//cout << "Total = "<<test1+test2<<endl;
}
}
if(name_found)
Processelse=true;
name_found=false;
if(i==2)
{
cout << "Result ="<<test[0]+test[1]<<endl;
Processelse=false;
i=0;
}
}
fclose(file_write);
}(( ممكن مشرفنا الكريم تتفضل وتشرحلي هال function التي تقوم بعرض display من الملف أرجوك رجا يتلوه رجاء يتلوه رجاء " أن تشرررررحلي هالدالة وأنا شاكر لأن هالدالة
(((( صرقعتبي وفيها أشياء لم أستطع إستعابها بشكر واضح ))))
((( to be or not to be ; that is the quesion )))
تم تعديل هذه المشاركة بواسطة HGB في 2 يونيو 2004 في 20:46
(((( عفواَ ))))
من السرعة في إدخال هالمشاركة
لم أقم بوضع الدالة في وضعها المناسب ( عفواً)
(( أكون أو لا أكو ن : ذالك هو السؤال ))
شكسبير ...... ودمتم
void EditRecord(char* Name)
{
FILE *file_write;
file_write=fopen("Newtable.txt","a+");
int test1;
int test2;
//Name=new char[20];
char name_search[20];//=new char[20];
bool name_found=false;
bool Processelse=false;
int i=0;
int test[2];
while(fscanf(file_write,"%s",name_search)==1)//%d%d",Name,&test1,&test2)==1)
{
//cout<<"Name:"<<Name<<endl;
if(atoi(name_search)==0)
if(!strcmp(Name,name_search))
{ //cout <<Name<<endl;
//cout<<name_search<<endl;
cout <<"Name :"<<name_search<<endl;
name_found=true;
//cout << "Test1 = "<<test1<<endl;
//cout << "Test2 = "<<test2<<endl;
//cout << "Total = "<<test1+test2<<endl;
i=0;
//cout<<strcmp("gd","gd");
//cout<<Name<<endl;
}
if(Processelse)
{
if(atoi(name_search)!=0)
{
cout << "Test"<<i++<<" "<<name_search<<endl;
test[i-1]=atoi(name_search);
//cout << "Test2 = "<<test2<<endl;
//cout << "Total = "<<test1+test2<<endl;
}
}
if(name_found)
Processelse=true;
name_found=false;
if(i==2)
{
cout << "Result ="<<test[0]+test[1]<<endl;
Processelse=false;
i=0;
}
}
fclose(file_write);
}(( ممكن مشرفنا الكريم تتفضل وتشرحلي هال function التي تقوم بعرض display من الملف أرجوك رجا يتلوه رجاء يتلوه رجاء " أن تشرررررحلي هالدالة وأنا شاكر لأن هالدالة
(((( صرقعتبي وفيها أشياء لم أستطع إستعابها بشكر واضح ))))
((( to be or not to be ; that is the quesion )))
تم تعديل هذه المشاركة بواسطة HGB في 2 يونيو 2004 في 20:54
السلام عليكم ,,
سأجيب غدا باذن الله ,, مع أن هذا الكود قد وعدت أن أشرحه سابقا أكثر من مرة لكن يعلم الله مابي من ضيق وقت ,,
السلام عليكم ,,
اقتباسصرقعتبي وفيها أشياء لم أستطع إستعابها بشكر واضح
بالمناسبة صرقعت بي أنا أيضا قليلا حتى بدأت أتذكر قليلا ماحدث :) , والسبب أني أكتب أكواد غير واضحة ,, وأخذت الكثير من الوقت لأكتشف أني كتبت هذا الكود في نفس الموضوع ,, لذا كنت أأجل الموضوع كل مرة ,, المهم :
سأحذف كل التعليقات الغير لازمة من الكود أولا ثم سأشرح الكود ,,
الكود المعدل :
void EditRecord(char* Name)
{
FILE *file_write;
file_write=fopen("Newtable.txt","a+");
int test1;
int test2;
char name_search[20];
bool name_found=false;
bool Processelse=false;
int i=0;
int test[2];
while(fscanf(file_write,"%s",name_search)==1)
{
if(atoi(name_search)==0)
if(!strcmp(Name,name_search))
{
cout <<"Name :"<<name_search<<endl;
name_found=true;
i=0;
}
if(Processelse)
{
if(atoi(name_search)!=0)
{
cout << "Test"<<i++<<" "<<name_search<<endl;
test[i-1]=atoi(name_search);
}
}
if(name_found)
Processelse=true;
name_found=false;
if(i==2)
{
cout << "Result ="<<test[0]+test[1]<<endl;
Processelse=false;
i=0;
}
}
fclose(file_write);
}أخي /
لا تستعجل إذا كان ما بك من ضيق يستلزم التأخير فخذ من الوقت ماشئت ........ ولكن
تعدني أن لا تنسى هذه المشاركة بالرد عليها لأستفيد ويستفيد أخواني الأعضاء
....... ودمتم / أبو وليد
FILE *file_write;
file_write=fopen("Newtable.txt","a+");
int test1;
int test2;
char name_search[20];
bool name_found=false;
bool Processelse=false;
int i=0;
int test[2];هذا واضح ,, وان لم يكن سيتضح مع الباقي ,,
while(fscanf(file_write,"%s",name_search)==1)
هذا عبارة عن حلقة التكرار التي تتكرر حتى نهاية كل السجلات الموجودة في الملف ,, اذا كانت القيمة المعادة من fscanf تساوي 1 فقد عثر على سجل جديد ,,
if(atoi(name_search)==0)
if(!strcmp(Name,name_search))
{
cout <<"Name :"<<name_search<<endl;
name_found=true;
i=0;
}الدالة atoi ,, تحول ال string الى أرقام بشرط أن ال string هذه تكون هي أرقام أيضا ,, يعني تكون
"3445'" فتصبح ك int 3445 ,,
اذا أعادت الدالة القيمة 0 فمعناها أن السلسلة غير صالحة للتحويل ,, والسبب في ذلك غالبا ماتكون أن السلسلة حروف ليست أرقاما يعني abcdef ,, هكذا ستعيد الدالة صفر ,, يعني غرضي من ذلك أن أتأكد من الحقل المستلم لاسم وليس لأرقام لأنه توجد حقول أرقام أخرى ,,
السطر الذي يليه ,,
if(!strcmp(Name,name_search))
للمقارنة بين الحقل الذي نريد أن نعمل له edit وبين الخانة الحالية في حلقة البحث while ,, اذا كانت مثلها ترجع الدالة strcmp القيمة 0 ,,
if(Processelse)
{
if(atoi(name_search)!=0)
{
cout << "Test"<<i++<<" "<<name_search<<endl;
test[i-1]=atoi(name_search);
}هذا الكود للدخول في المرة التالية في الحلقة ,, لقراءة السجل الذي يلي الاسم وهو رقم ما لاأذكر ماذا كان ,, المهم ,, في المرة التالية في الحلقة سيتم الدخول هنا وليس المرة الأولى التي عثرنا فيها على الاسم ,, لذا تجد المتغير processelse يساوي صفر أول مرة ويتحول ل 1 أو true المرة الثانية من الكود ,,
if(name_found)
Processelse=true;
name_found=false;
if(i==2)
{
cout << "Result ="<<test[0]+test[1]<<endl;
Processelse=false;
i=0;
}
}هذا هو الكود ,,
أرجو أن يكون الشرح واضحا !!
هذا الموضوع مغلق.