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

مشاركة عن Binary Files في لغة السي ...

بدأه samelo في 20 أبريل 2009 · 12 رد · 959 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذا هو السؤال :

1- عرف structure من نوع employee حتوي على ما يلي :

اسم لا يتجاوز ال80

سيريال نمبر من نوع int

الراتب من نوع double

2- ثم يقوم بادخال اسماء ومرتبات ال100 موظف من الكيبورد واعط كل واحد منهم رقم من 1-100

3 - ثم اطلب من المستخدم ادخال اسم الملف وقم بفتح الملف للطتابة واكتب الarray من فرع 1

4- ثم اطلب من المستخدم ادخال رقم موظف لطباعة اسمه ومرتبه من الملف الى الشاشة ؟؟؟؟

وهذا هو الحل :

struct employee{
char name [80];
int number;
double salary;
};
void main()
employee A[100];
for (int i=0;i<100;i++)
{
cin>>A.name;
cin>>A.salary;
cin>>A;number;
}
FILE *p;
p=fopen ("file","wb");
if (p==null)
cout<<"file can not ope";
else{
for (int i=0;i<100;i++)
{
fwrite (A,sizeof(employee),100,p)
fclose(f);
}
FILE *p;
p=fopen ("file",wb+")
if (p==null)
cout<<"file not opend";
else{
fwrite(A,szeof(employee),1,p);
for (int i=0;i<100;i++)
{
cin>>A.number;
cout<<A.name;
cout<<A.salary;
fclose(f);
}
}
#2
fwrite(A,szeof(employee),1,p);

sizeof

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

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

أعتقد ان قراءة بيانات الموظف تكون من الملف

شوف البرنامج

استخدمت مصفوفه من ثلاثة عناصر للتجربه يمكن جعلها 100


#include<stdio.h>
struct employee{
char name [80];
int number;
double salary;
};
void main()
{
int n;
employee A[3];
for (int i=0;i<3;i++)
{
cin>>A.name;
cin>>A.salary;
A.number=i+1;
}
char file[30];
cout<<"Enter the name of file : ";
cin>>file;
FILE *p;
p=fopen (file,"wb");
if (p==NULL)
cout<<"file can not opened";
else
fwrite (A,sizeof(employee),3,p);
fclose(p);
p=fopen (file,"rb");
if (p==NULL)
cout<<"file not opened";
else
{
employee tmp[1];
cout<<"enter the number of employee: ";
cin>>n;
fseek(p,(n-1)*sizeof(employee),SEEK_SET);
fread(tmp,sizeof(employee),1,p);
cout<<tmp[0].name<<" "<<tmp[0].salary<<endl;
}
}
#include <iostream.h>

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#4

مشكورين اخوان على الرد وبارك الله فيكم

وشكرا على الكود اخي امين من مصر ولكن انت اضفت له استخدام دالة الfseek وهي غير مطلوبة في السؤال حالياً .......

شكرا مرة اخرى

#5

اخوان كتبت البرنامج ولكن هناك خطآن حقيقة جننوني لانهما بسيطان ولكن للأسف لا اعرف لماذا يظهران

؟؟؟؟؟؟؟؟؟؟

هذا هو الكود

#include "stdafx.h"
#include <iostream.h>
struct employee{
	char name [80];
	int number;
	double salary;
};
void main()
employee A[100];
for (int i=0;i<100;i++){
cin>>A.name;
cin>>A.salary;
cin>>A.namber;
A.number++;
}
FILE *p;
p=fopen("file","wb");
if(p==null)
cout<<"file can not open";
else{
	for (int i=0;i<100;i++){
		fwrite (A,sizeof(employee),100,p)
	}
			fclose(f);
	}
	FILE *p; int n;
	p=fopen ("file","rb");
	if (p==null)
		cout<<"file not opend";
	else{
		employee x;
		fread(&x,sizeof(employee),1,p);
		for (int i=0;i<100;i++){
			cin>>n;
			cout<<A.name;
			cout<<A.salary;
		}
			fclose(f);
		}

	}
}

وهذان هما الخطآن .....

E:\u\u.cpp(12) : error C2146: syntax error : missing ';' before identifier 'employee'

E:\u\u.cpp(12) : fatal error C1004: unexpected end of file found

#6

آخر قوسين { في الكود ليس هناك ما يقابلهما في البداية.

لم تضع قوس فتح بعد main()

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7

السلام عليكم

طيب والمطلوب الرابع ؟؟؟؟؟؟؟؟؟؟؟؟

4- ثم اطلب من المستخدم ادخال رقم موظف لطباعة اسمه ومرتبه من الملف الى الشاشة ؟؟؟؟

؟؟؟؟؟؟

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#8

مشكورين على المساعدة اخوان ولكن ما زال هاك اخطاء واردة كما سبق واشرت اليها ....

البنامج يقف فقط على هاتان المكلتان وحقيقة غلبوني مش عارف شو السبب الرئيسي لها فارجو الافادة

samelo

#9
Xacker كتب:
آخر قوسين { في الكود ليس هناك ما يقابلهما في البداية.

لم تضع قوس فتح بعد main()

هل قرأت هذه المشاركة وأخذتها بعين الاعتبار؟

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#10

بالرغم انى لست مقتنع بطريقة اجابة الجزئيه الرابعه

اتفضل أخى برنامجك بدون أخطاء ان شاء الله

#include <iostream.h>
#include <stdio.h>
struct employee{
	char name [80];
	int number;
	double salary;
};
void main()
{
employee A[100];
for (int i=0;i<100;i++){
cin>>A.name;
cin>>A.salary;
A.number++;
}
FILE *p;
p=fopen("file","wb");
if(p==NULL)
cout<<"file can not open";
else{
	for (int i=0;i<100;i++){
		fwrite (A,sizeof(employee),100,p);
	}
			fclose(p);
	}
	 int n;
	p=fopen ("file","rb");
	if (p==NULL)
		cout<<"file not opend";
	else{
		employee x;
		fread(&x,sizeof(employee),1,p);
		for (int i=0;i<100;i++){
			cin>>n;
			cout<<A.name;
			cout<<A.salary;
		}
			fclose(p);
		}
}

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#11
  1. #include <iostream.h>
  2.  
  3. #define EMPLOYEES 100
  4.  
  5. struct employee
  6. {
  7. char name[81];
  8. int number;
  9. double salary;
  10. };
  11.  
  12. int main(int argc, char* argv[])
  13. {
  14. employee A[EMPLOYEES];
  15.  
  16. for (int i=0; i<EMPLOYEES; i++)
  17. {
  18. cout << "nEmployee No. " << i+1 << endl;
  19.  
  20. cout << "Number: "; cin >> A[i].number;
  21. cout << "Name: "; cin >> A[i].name;
  22. cout << "Salary: "; cin >> A[i].salary;
  23. }
  24.  
  25. FILE* f;
  26. char filename[81];
  27.  
  28. cout << "nEnter filename: "; cin >> filename;
  29. f = fopen (filename, "wb");
  30. if (f == NULL)
  31. cout << "Error: Can't open file for writing" << endl;
  32. else
  33. {
  34. fwrite(A, sizeof(employee), EMPLOYEES, f);
  35. fclose(f);
  36. }
  37.  
  38. f = fopen(filename, "rb");
  39. if (f==NULL)
  40. cout << "Error: Can't open file for reading" << endl;
  41. else
  42. {
  43. employee e;
  44. int r;
  45.  
  46. cout<<"Please, enter record number: "; cin >> r;
  47. fseek(f, (r-1)*sizeof(employee), SEEK_SET);
  48. if (fread(&e, sizeof(employee), 1, f) > 0)
  49. {
  50. cout << "Number: " << e.number << endl;
  51. cout << "Name: " << e.name << endl;
  52. cout << "Salary: " << e.salary << endl;
  53. }
  54. fclose(f);
  55. }
  56. return 0;
  57. }
  58.  

تم تعديل هذه المشاركة بواسطة NawalyZuma في 21 أبريل 2009 في 18:08

#12

نعم اخي العزيز xacker وقمت بعمل كل شيئ ولكن هناك نفس الخطآن يتكرران ...........

#13

حقيقة يا اخوان جربت كل شيء ومشكورين على الاكواد والبرامج ولكن حقيقة بذلتم جهود جبارة معي ولكن للاسف البرنامج يخطئ دائما ويعطيني نفس الاخطاء ولا اعرف ما السبب حقيقة مع محاولاتي العدة لتنفيذه .........................

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