بريدة






عـودة للخلف بريدة ستي » بريدة ستي » تـــقــنــيـــة حــديـــثــة » للي يعرفون للغة سي

تـــقــنــيـــة حــديـــثــة الكمبيوتر والإنترنت وبرامج الجوال

إضافة رد
 
أدوات الموضوع طريقة العرض
قديم(ـة) 07-01-2003, 09:26 AM   #1
حنايا الإبداع
عـضـو
 
تاريخ التسجيل: Nov 2002
المشاركات: 44
للي يعرفون للغة سي

السلام عليكم ورحمة الله بركاته
الي يعرفون للغة سي بس هم الي يدخلون هنا...فيه برنامج الله لايهينكم الي يعرفه لايقصر علي ويعطيني حله...وتراه طويل شوي
البرنامج هو ...اكتب برنامح لتخزين معلومات طلاب في ملف (اي اسم) الربنامج لازم يقرا الملعومات بالاول بعدين يخزنها في هذا الملف بعدين يسمح للمستخدم بانه لإضافة طالب جديد وحذف ملعومات طالب اخر موجوده ملعوماته في الملف وتعديل معلومات طالب اخر موجود وفي الاخير طباعة معلومات كل الطلاب ..معلومات كل طالب يجب ان تحتوي على رقمه التعريفي واسمه ودرجاته وتكون درجاته (درجه 1 و دجره 2و درجه 3) ونتيجة اختباره الي هي ( 1او ب او د او ه ) تكون على حسب الدرجات يعني حنا الي نحسبها داخل البرنامج ...وباقي المعلومات ندخلها حنا ...
والله ادري ان البرنامج صعب ...بس مو ب صعب على الرجال ..تكون الي يعرف لايقصر علي................................
وسلمتم سالمييييييييييييييييييييييين
__________________
حنــــــايا الإبــــــــداع
حنايا الإبداع غير متصل   الرد باقتباس


قديم(ـة) 08-01-2003, 08:17 PM   #2
نبــض الإنسـانية
عـضـو
 
صورة نبــض الإنسـانية الرمزية
 
تاريخ التسجيل: Sep 2002
البلد: بلاد الحرميــــن
المشاركات: 165
حنايــــــا الإبداع

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

الســـــــؤال :
كتابة file عن طلاب يحتوي على معلومات مختلفه ويخزنها في record
المطلوب : عمل 1- inseart new student
2- delete a student allready exist
3- update any student we want
4- print all the students records

كل record يحتوي على اسمه ورقمه الجامعي ودرجاته
( mid1,mid2 ,mid3)
----- نحسبها على اساس الميدات ...
هذا سؤالك

ســـــــؤالي هو :
1- هل الأسم نتعامل معه على أساس string or record ???
2-باقي المعلومات ندخلها من keybord or read it from file?????

حنايــــــا الإبداع

لا أستطيع أن أعطيك الوعد بحل البرنامج وذلك لإنشغالي بالإمتحانات وخصوصا أن البرنامج طويل جدا ..ولكن سوف أحاول حله ولي إلى يوم الجمعه ....

أتمنى أن أكون قد أفدتك

تقبل تحيات أخــــــوك

نبــــــض الإنســــــانية
__________________

آخر من قام بالتعديل نبــض الإنسـانية; بتاريخ 08-01-2003 الساعة 08:43 PM.
نبــض الإنسـانية غير متصل   الرد باقتباس
قديم(ـة) 09-01-2003, 12:19 AM   #3
حنايا الإبداع
عـضـو
 
تاريخ التسجيل: Nov 2002
المشاركات: 44
هلا والله بالغاااااااااااااااااالي نبض الإنسانية والله انك صدز نبض ياحلال المشاكل والله لو حليت لي هالبرنامج ان لا ادعيلك ليل ونهار (بلاك ماتردي وش كثر عليه درجات ) تسلم يابعدي والله انت وترى المعلومات الي قلتها كلها صح وحل عليه انت جزاااااااك الله خير يااخوي وماقصرت والله عجزت وش اقولك طرت من الفرحه يوم شف احد بيحله لي والله اني منول ابوديه لمدرس يحله لي بخمسمية رريال بس جابك الله
جزاااااااااااااااك الله كل خير ويالله ياربي انك تتوفق وتعرس قل امين
وسلااااااااااااااااااااااااااااام
__________________
حنــــــايا الإبــــــــداع
حنايا الإبداع غير متصل   الرد باقتباس
قديم(ـة) 10-01-2003, 03:53 PM   #4
نبــض الإنسـانية
عـضـو
 
صورة نبــض الإنسـانية الرمزية
 
تاريخ التسجيل: Sep 2002
البلد: بلاد الحرميــــن
المشاركات: 165
حنايا الإبداع

والله ياأخي العزيز كنت محتار جدا أحله أو لا ...لأنه بصراحه ماكان عندي وقت ..لكن عندما قرأت هذه الدعوه منك قلت والله الغالي يرخص لك ...

جوزيـــــت خيرا على هذه الدعوه ..وهذا أنا ماأحتاجه في هذه الأيام ...

شكرك سوف يصلني إذا دعيت لي ( ليل نهار ) على قولتك ....

أرجــــــــوك

لاتنســــــاني
لاتنســــــاني

من الدعـــــــــــاء في ظهر الغيب

تفضل أخي العزيز هذا هو الحل ...

ولكن قبل كل شئ ( يدك على الخمسميه ) ....just joking

لا حظ ياأخي أن الكود متلخبط شوي لأني كنت أكتبه على برنامج الفيجوال سي ..فمجرد عمل copy لهذا الكود ثم paste على برنامج الفيجوال سي سوف يفي بالغرض ..ولاتنسى عمل bult & exe للبرنامج قبل عمل run

أتمنى أن أكون قد أفدتك بإذن الله ...


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct student_rec{

char id[9];
char name[20];
float marks[3];
float -----;
};
typedef struct student_rec student;
void store_info(FILE *);
void display_file(FILE *);
int find(FILE *,char *);
void insert_new_rec(FILE *);
void modify(FILE *);
void delete_rec(FILE *);


FILE *tem;
int main()
{
FILE *ptr;
int x=1,cho;
system("cls");
if ((ptr=fopen("st.dat","w"))==NULL)
printf("file could not opened");
else
{
store_info(ptr);
while (x)
{
printf("-----------------\n");
printf(" 1 add new rec\n");
printf(" 2 update rec by id \n");
printf(" 3 delete rec by id \n");
printf(" 4 display file \n");
printf(" 0 exit \n");
printf("---------------------\n");
printf("enter choice ...");
scanf("%d",&cho);
switch (cho)
{
case 1 :insert_new_rec(ptr);break;
case 2 : modify(ptr);break;
case 3 : delete_rec(ptr);break;
case 4 : display_file(ptr);break;
case 0 : x=0;break;
}

} /* while */
}
return 0;
}

/*___________________________*/

void store_info(FILE *ptr)
{
int i,j,num;
float sum=0;
struct student_rec st_rec;


if(( ptr=fopen("student.dat","w"))==NULL)
printf("file could not be opened\n");
else
{
printf("enter number of student ..please");
scanf("%d",&num);
for (j=0;j<num;j++)
{
printf("\tstudent id :");
scanf("%s",st_rec.id);
printf("\t name:");
scanf("%s",st_rec.name);

for (i=0;i<3;i++)
{
printf("\tMARK %d :",i+1);
scanf("%f",&st_rec.marks[i]);
sum+=st_rec.marks[i];
}
st_rec.-----=sum;
fseek(ptr,0,SEEK_END);
fwrite(&st_rec,sizeof(student),1,ptr);

strset(st_rec.name,' ');
strset(st_rec.id,' ');

}

}
fclose(ptr);

}
void display_file(FILE *ptr)
{
student st_rec;
int i,x=0;

if((ptr=fopen("student.dat","r"))==NULL)
printf("file could noe be opened\n");
else
{
printf("%-12s%-20s%-6s%-6s%-6s%-6s\n","student id","name","mark1","mark2",

"mark3","-----");


fseek(ptr,0,SEEK_SET);
while(!feof(ptr))
{

fseek(ptr,x,SEEK_SET);
fread(&st_rec,sizeof(student),1,ptr);

printf("%-9s%-20s",st_rec.id,st_rec.name);
for(i=0;i<3;i++)
printf("%-5.1f",st_rec.marks[i]);
printf("%-5.1f\n",st_rec.-----);
x+=sizeof(student);

}
fclose(ptr);
}
}


/*_______________________________*/
int find(FILE *ptr,char *id)

{ int found=0,x=0;
student st_rec;


if((ptr=fopen("student.dat","r"))==NULL)
printf("file could noe be opened\n");
else
{



while(!feof(ptr) && !found )
{


fread(&st_rec,sizeof(student),1,ptr);

if (strcmp(st_rec.id,id)==0 )
found=1;
}

fclose(ptr);
}
return found;
}


/*_________________________________*/

void insert_new_rec(FILE *ptr)
{
int i;
float sum=0;
struct student_rec st_rec;


if(( ptr=fopen("student.dat","a+"))==NULL)
printf("file could not be opened\n");
else
{
printf("\tstudent id :");
scanf("%s",st_rec.id);
if (find(ptr,st_rec.id)==0 )
{
printf("\t name:");
scanf("%s",st_rec.name);

for (i=0;i<3;i++)
{
printf("\tMARK %d :",i+1);
scanf("%f",&st_rec.marks[i]);
sum+=st_rec.marks[i];
}
st_rec.-----=sum;
fwrite(&st_rec,sizeof(struct student_rec),1,ptr);


}
else
printf("\n student alreay exsist\n");
fclose(ptr);


}

}

void modify(FILE *ptr)

{
int i,found,cho,ext=0,x;
float sum=0;
struct student_rec st_rec;
char id[9];


if(( ptr=fopen("student.dat","r+"))==NULL)
printf("file could not be opened\n");
else
{
printf("\tstudent id :");
scanf("%s",id);

rewind(ptr);
found=0;
while ( found==0 && !feof(ptr) )
{


fread(&st_rec,sizeof(student),1,ptr);
if (strcmp(st_rec.id,id)==0 )
{
found=1;

while (!ext)
{
printf(" update menue \n");
printf("\n---------------------------\n");
printf("\n 1 name \n");
printf("\n 2 mark1\n");
printf("\n 3 mark2\n");
printf("\n 4 mark3\n");
printf("\n 0 exit\n");
printf("\n----------------------------\n");
printf("enter choice ...");
scanf("%d",&cho);
x=sizeof(student);
switch (cho)
{
case 1 : printf("\t name:");
scanf("%s",st_rec.name);
fseek(ptr,-x,SEEK_CUR);
fwrite(&st_rec,sizeof(student),1,ptr);
break;
case 2 : printf("\t mark1:");
scanf("%f",&st_rec.marks[0]);
for(i=0;i<3;i++)
sum+=st_rec.marks[i];
st_rec.-----=sum;

fseek(ptr,-x,SEEK_CUR);
fwrite(&st_rec,sizeof(student),1,ptr);
break;

case 3 : printf("\t mark2:");
scanf("%f",&st_rec.marks[1]);
for(i=0;i<3;i++)
sum+=st_rec.marks[i];
st_rec.-----=sum;

fseek(ptr,-x,SEEK_CUR);
fwrite(&st_rec,sizeof(student),1,ptr);
break;

case 4 : printf("\t mark3:");
scanf("%f",&st_rec.marks[2]);
for(i=0;i<3;i++)
sum+=st_rec.marks[i];
st_rec.-----=sum;

fseek(ptr,-x,SEEK_CUR);
fwrite(&st_rec,sizeof(student),1,ptr);
break;
case 0 : ext=1;
}

} /* while ! ext */

}
}
if (!found)
printf(" record does not exsist ");

fclose(ptr);

}

}

/*---------------------------------*/
void delete_rec(FILE * ptr)
{

char del_id[9];
student st_rec;
if(( ptr=fopen("student.dat","r"))==NULL)
printf("file could not be opened\n");
else
{

if(( tem=fopen("temp.dat","w"))==NULL)
printf("file could not be opened\n");

else
{
printf("\tstudent id :");
scanf("%s",del_id);

fseek(ptr,0,SEEK_SET);
fseek(tem,0,SEEK_SET);

while(!feof(ptr) )
{


fread(&st_rec,sizeof(student),1,ptr);
if (strcmp(st_rec.id,del_id)!=0 )

fwrite(&st_rec,sizeof(student),1,tem);

}


fclose(ptr);
fclose(tem);

/* copy ptr from temp */

if(( ptr=fopen("student.dat","w"))==NULL)

printf("file could not be opened\n");

if(( tem=fopen("temp.dat","r"))==NULL)
printf("file could not be opened\n");

else

{
fseek(ptr,0,SEEK_SET);
fseek(tem,0,SEEK_SET);
while ( !(feof(tem)) )
{

fread(&st_rec,sizeof(student),1,tem);

fwrite(&st_rec,sizeof(student),1,ptr);
} /* while */

fclose(ptr);
fclose(tem);
} /* else */
}

} /*else*/
}

تقبل أخي خالص تحياتي

[moved]نبـــــــض الإنســـــــانية[/moved]
__________________
نبــض الإنسـانية غير متصل   الرد باقتباس
قديم(ـة) 10-01-2003, 10:38 PM   #5
حنايا الإبداع
عـضـو
 
تاريخ التسجيل: Nov 2002
المشاركات: 44
والله يا أخوي يانبض انحرجت منك ,,,قدها وقدود سويت الي طلبته منك واكثر بعد ,,حل بصراحه ابداااااااااااااااااااع رهييييييييييييييييب وشاااااامل وانقذتني من بلوه كانت قادمه في الطريق تسلم يابعدي على هالحل والشرح يادكتور نبض ,,,والله مااعرف وشلون اشكرك بس مااقدر الا اني ادعيلك ان شاء الله يوفقك ويخليك لهلك وتعرس ان شاء الله
وماناب ناسيك
ومانب ناسيك
من الدعاء ان شاء الله لاتوصي حريص
سلااااااااااااااااااااااام يابعدي
يابعدي سؤال اخير ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ أنت مدرس ولا طالب؟؟؟؟؟؟؟وشو تخصصك ؟؟؟؟؟وتسمح تعطينا ماسنجرك لنسوي الواجب الي علينا؟؟؟؟؟؟
<<<<<<<<ماينعطى وجه
__________________
حنــــــايا الإبــــــــداع
حنايا الإبداع غير متصل   الرد باقتباس
إضافة رد

الإشارات المرجعية


قوانين المشاركة
لا يمكنك إضافة مواضيع
لا يمكنك إضافة ردود
لا يمكنك إضافة مرفقات
لا يمكنك تعديل مشاركاتك

رمز [IMG] متاح
رموز HTML مغلق

انتقل إلى


الساعة الآن +4: 03:25 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd

المنشور في بريدة ستي يعبر عن رأي كاتبها فقط
(RSS)-(RSS 2.0)-(XML)-(sitemap)-(HTML)