|
|
|
![]() |
#1 |
عـضـو
تاريخ التسجيل: Nov 2002
المشاركات: 44
|
للي يعرفون للغة سي
السلام عليكم ورحمة الله بركاته
الي يعرفون للغة سي بس هم الي يدخلون هنا...فيه برنامج الله لايهينكم الي يعرفه لايقصر علي ويعطيني حله...وتراه طويل شوي البرنامج هو ...اكتب برنامح لتخزين معلومات طلاب في ملف (اي اسم) الربنامج لازم يقرا الملعومات بالاول بعدين يخزنها في هذا الملف بعدين يسمح للمستخدم بانه لإضافة طالب جديد وحذف ملعومات طالب اخر موجوده ملعوماته في الملف وتعديل معلومات طالب اخر موجود وفي الاخير طباعة معلومات كل الطلاب ..معلومات كل طالب يجب ان تحتوي على رقمه التعريفي واسمه ودرجاته وتكون درجاته (درجه 1 و دجره 2و درجه 3) ونتيجة اختباره الي هي ( 1او ب او د او ه ) تكون على حسب الدرجات يعني حنا الي نحسبها داخل البرنامج ...وباقي المعلومات ندخلها حنا ... والله ادري ان البرنامج صعب ...بس مو ب صعب على الرجال ..تكون الي يعرف لايقصر علي................................ وسلمتم سالمييييييييييييييييييييييين ![]() ![]() ![]() ![]()
__________________
حنــــــايا الإبــــــــداع |
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#3 |
عـضـو
تاريخ التسجيل: Nov 2002
المشاركات: 44
|
هلا والله بالغاااااااااااااااااالي نبض الإنسانية والله انك صدز نبض ياحلال المشاكل والله لو حليت لي هالبرنامج ان لا ادعيلك ليل ونهار (بلاك ماتردي وش كثر عليه درجات ) تسلم يابعدي والله انت وترى المعلومات الي قلتها كلها صح وحل عليه انت جزاااااااك الله خير يااخوي وماقصرت والله عجزت وش اقولك طرت من الفرحه يوم شف احد بيحله لي والله اني منول ابوديه لمدرس يحله لي بخمسمية رريال بس جابك الله
جزاااااااااااااااك الله كل خير ويالله ياربي انك تتوفق وتعرس قل امين وسلااااااااااااااااااااااااااااام
__________________
حنــــــايا الإبــــــــداع |
![]() |
![]() |
![]() |
#4 |
عـضـو
تاريخ التسجيل: Sep 2002
البلد: بلاد الحرميــــن
المشاركات: 165
|
حنايا الإبداع
والله ياأخي العزيز كنت محتار جدا أحله أو لا ...لأنه بصراحه ماكان عندي وقت ..لكن عندما قرأت هذه الدعوه منك قلت والله الغالي يرخص لك ... جوزيـــــت خيرا على هذه الدعوه ..وهذا أنا ماأحتاجه في هذه الأيام ... شكرك سوف يصلني إذا دعيت لي ( ليل نهار ) على قولتك .... أرجــــــــوك لاتنســــــاني لاتنســــــاني من الدعـــــــــــاء في ظهر الغيب تفضل أخي العزيز هذا هو الحل ... ولكن قبل كل شئ ( يدك على الخمسميه ) ![]() ![]() ![]() لا حظ ياأخي أن الكود متلخبط شوي لأني كنت أكتبه على برنامج الفيجوال سي ..فمجرد عمل 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]
__________________
![]() |
![]() |
![]() |
![]() |
#5 |
عـضـو
تاريخ التسجيل: Nov 2002
المشاركات: 44
|
والله يا أخوي يانبض انحرجت منك ,,,قدها وقدود سويت الي طلبته منك واكثر بعد ,,حل بصراحه ابداااااااااااااااااااع رهييييييييييييييييب وشاااااامل وانقذتني من بلوه كانت قادمه في الطريق تسلم يابعدي على هالحل والشرح يادكتور نبض ,,,والله مااعرف وشلون اشكرك بس مااقدر الا اني ادعيلك ان شاء الله يوفقك ويخليك لهلك وتعرس ان شاء الله
وماناب ناسيك ومانب ناسيك من الدعاء ان شاء الله لاتوصي حريص سلااااااااااااااااااااااام يابعدي يابعدي سؤال اخير ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ أنت مدرس ولا طالب؟؟؟؟؟؟؟وشو تخصصك ؟؟؟؟؟وتسمح تعطينا ماسنجرك لنسوي الواجب الي علينا؟؟؟؟؟؟ <<<<<<<<ماينعطى وجه
__________________
حنــــــايا الإبــــــــداع |
![]() |
![]() |
![]() |
الإشارات المرجعية |
|
|