هذا عباره عن مشروع قبول وتسجيل أي ادخال واخراج اسماء الطلاب
#include <iostream.h>
#include <process.h>
#include <fstream.h>
struct student
{
long ID;
char name[30];
long avg;
};
int index=-1;
student st[10];
fstream student_file;
void add (student st[])
{
cout<<"ENTER THE (ID) OF THE STUDENT :";
cin>>st[index].ID;
cin.ignore();
cout<<"ENTER THE (NAME)OF THE STUDENT :";
cin.getline(st[index].name ,30);
cout<<"ENTER THE (AVRGE) OF THE STUDENT : ";
cin>>st[index].avg;
cin.ignore();
index ++;
}
void delete_information(student st[])
{
long k;
cout<<"ENTER THE (ID),please:";
cin>>k;
for(int d=-1;d<=index;d++)
if (st[d].ID==k)
{
st[d].ID=0;
cout<<"THE INFORMATION OF THE STUDENT IS(DELETED)..."<<endl;
}
}
void re_write (student st[])
{
long h;
cout<<"ENTER THE (ID),please :";
cin>>h;
for(int j=-1;j<=index;j++)
if (st[j].ID==h)
{
cout<<"ENTER THE (ID) OF THE STUDENT :";
cin>>st[j].ID;
cin.ignore();
cout<<"ENTER THE (NAME) OF THE STUDENT:";
cin.getline(st[j].name ,30);
cout<<"ENTER THE (AVRGE) OF THE STUDENT:";
cin>>st[j].avg;
cin.ignore();
}
}
void search (student st[])
{
long n;
cout<<"ENTER THE (ID),please :";
cin>>n;
cin.ignore();
for (int P=-1;P<=index;P++)
if (st[P].ID==n)
{
cout<<"THE STUDENT (ID) :"<<st[P].ID<<endl;
cout<<"THE STUDENT (NAME) :"<<st[P].name<<endl;
cout<<"THE STUDENT (AVRGE) :"<<st[P].avg<<endl;
}
cin.get();
}
void read (student st[])
{
for (int g=-1;g<=index;g++)
{
if (st[g].ID!=0)
{
cout<<"THE STUDENT (ID) :"<<st[g].ID<<endl;
cout<<"THE STUDENT (NAME) :"<<st[g].name<<endl;
cout<<"THE STUDENT (AVRGE) :"<<st[g].avg<<endl;
}
}
// cin.get();
}
void save (student st[])// to save on file
{
student_file.open("student.dat",ios::out|ios::binary);
for (int i=0;i<=index;i++)
{
if (st.ID !=0)
student_file.write((char*)&st,sizeof(st));
}
student_file.close();
}
void start_reading (student st[])// to read from file
{
student_file.open("student.dat",ios::in|ios::binary);
index++;
student_file.read((char*)&st[index],sizeof(st[index]));
while(!student_file.eof())
{
index++;
student_file.read((char*)&st[index],sizeof(st[index]));
}
student_file.close();
}
void main()
{ // begin main program
start_reading(st);
long selector;
do
{
system("cls");
cout<<"1- ENTER TO (ADD) THE STUDENT INFORMATION..."<<endl;
cout<<"2- ENTER TO (DELETE) THE STUDENT INFORMATION..."<<endl;
cout<<"3- ENTER TO (RE-WRITE) THE STUDENT INFORMATION..."<<endl;
cout<<"4- ENTER TO (SEARCH) THE STUDENT INFORMATION..."<<endl;
cout<<"5- ENTER TO (READ) THE STUDENT INFORMATION..."<<endl;
cout<<"6- ENTER TO (EXIT) THE STUDENT INFORMATION..."<<endl;
cout<<endl;
cout<<"*** ENTER YOUR CHOOSE ,PLEASE :"<<endl;
cin>>selector;
cin.ignore();
switch(selector)
{
case 1:
cout<<endl;
cout<<"To (add)the student information ..."<<endl;
add(st);
break;
case 2:
cout<<endl;
cout<<"to(DELETE) THE STUDENT INFORMATION ..."<<endl;
delete_information(st);
break;
case 3:
cout<<endl;
cout <<"TO (RE_WRITE) THE STUDENT TNFORMATION..."<<endl;
re_write (st);
break;
case 4:
cout<<endl;
cout<<"TO(SEARCH)ABOUT STUDENT INFORMATION..."<<endl;
search(st);
break;
case 5:
cout <<endl;
cout<<"TO (READ) the students information ..." << endl;
break;
case 6:
save (st);
break;
defult:
cout<<" your choose is wrong"<<endl;
cout<<" try again, please" << endl;
break;
}
}while (selector!=6);
} // end main programالمطلوب : اللي ماعرفت اسويه
ابغى اسوي سورت اي ترتيب عن طريق ادخال رقم الطلاب ويرتبهم ابجدي (ولكن يرتب كل الملف تاع الطالب وليس الاسم فقط )(اي باستخدام المؤشرات )
والثاني : في الكود عند فتح الملف مكتوب binary
student_file.open("student.dat",ios::in|ios::binary);اي ان البيانات التي ستحفظ في داخل الملف من نوع اولي اي ستحفظ مشفرة (ممكن)
الثالث : لايعمل الاختيار الذي يعرض بيانات الطالب ...لماذا؟
وشكرا....
ابو رواد .. فلسطين ... جامعة الاقصى