ansobimat
28-04-2009, 19:26
Em làm bài C này rồi nhưng mà nó cứ báo lỗi không bít là phải sửa thế nào. Mong các bác trên diễn đàn chỉ giúp lỗi dùm em . Em cám ơn các bác.
Nó cứ báo lỗi :
Incompatible type conversion ở đoạn
if(strcmp(a[i].dtb,a[j].dtb)>0) và ở đoạn
if(strcmp(DTB,a[i].dtb)==0) và một số chỗ khác. Nhìn chung cứ chỗ nào liên quan đến dtb( điểm trung bình ) là nó báo lỗi. Em không hiểu tại sao. Mong các bác chỉ dùm.
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#define NMAX 100
typedef struct SinhVien
{
char MaSV[10],HoTen[30];
float Toan;
float Ly;
float Hoa;
float dtb;
} SinhVien;
SinhVien a[NMAX];
SinhVien SV;
// Cac ham su dung
void menu();//ham chon menu
void KhoiTao();// ham khoi tao danh sach
SinhVien Nhap(SinhVien SV);// ham nhap k sinh vien
void Xem(SinhVien SV);// ham xem danh sach sinh vien
void SapXep();// sap xep danh sach theo thu tu tang dan theo diem trung binh
void KiemTra();//Kiem tra danh sach da sap xep chua
int check();
void TimKiemTuyenTinh(); //tim kiem tuyen tinh theo hoten
void TimKiemNhiPhan();// tim kiem nhi phan theo dtb.
void Xoa();// xoa sinh vien co masv=x, ma sinh vien nhap tu ban phim
void Chen();// chen mot sinh vien vao danh sach da sap xep sao cho tinh sap xep van duoc bao ton
void LuuRaFile();//luu danh sach sinh vien ra file
void Doc_HienThi();// doc danh sach sinh vien tu file va hien thi
void KetThuc();
static int intCount=0;
// Ham chinh
void main()
{
int k;
char intSelect;
do
{
clrscr();
menu();
fflush(stdin);
scanf("%s",&intSelect);
switch(intSelect)
{
case '1': KhoiTao();
break;
case '2': Nhap(SV);
break;
case '3': Xem(SV);
break;
case '4': SapXep();
break;
case '5': KiemTra();
break;
case '6': TimKiemTuyenTinh();
break;
case '7': TimKiemNhiPhan();
break;
case '8': Xoa();
break;
case '9': Chen();
break;
case 's': LuuRaFile();
break;
case 'l' || 'L': Doc_HienThi();
break;
case 'z': KetThuc();
break;
default: printf("\nBan da nhap sai. Xin vui long nhap lai!");
}
}
while (intSelect !='0');
}
// Ham menu
void menu()
{
printf("\n************************************************ ******************************************");
printf("\n* MENU LUA CHON SINH VIEN *");
printf("\n************************************************ ******************************************");
printf("\n* Cac ban hay dua ra lua chon *");
printf("\n* 1. Khoi tao danh sach. *");
printf("\n* 2. Nhap k sinh vien. *");
printf("\n* 3. Xem danh sach sinh vien. *");
printf("\n* 4. Sap xep danh sach theo thu tu tang dan theo dtb *");
printf("\n* 5. Kiem tra xem danh sach da sap xep chua. *");
printf("\n* 6. Tim kiem tuyen tinh theo hoten. *");
printf("\n* 7. Tim kiem nhi phan theo dtb. *");
printf("\n* 8. Xoa sinh vien co masv=x, masv nhap tu ban phim. *");
printf("\n* 9. Chen mot sinh vien vao danh sach da sap xep sao cho tinh sap xep van duoc bao ton *");
printf("\n* s. Luu danh sach sinh vien ra file *");
printf("\n* l or L. Doc danh sach sinh vien tu file va hien thi. *");
printf("\n* z. Ket thuc. *");
}
// Ham khoi tao
void KhoiTao()
{
printf(" Khoi tao danh sach\n");
if (intCount!=0)
intCount=0;
printf(" Danh sach da duoc khoi tao\n");
getch();
return;
}
// Ham Nhap du lieu
SinhVien Nhap(SinhVien SV)
{
int k;
clrscr();
printf("Ban hay nhap so sinh vien:");
fflush(stdin);
scanf("%d",&k);
do
{
intCount+=1;
printf("\n Sinh vien thu %d",intCount);
printf("\n Ho ten:");
fflush(stdin);
gets(a[intCount].HoTen);
printf("\n Ma sinh vien:");
fflush(stdin);
gets(a[intCount].MaSV);
printf("\n Diem Toan:");
fflush(stdin);
scanf("%d",&a[intCount].Toan);
printf("\n Diem Ly:");
fflush(stdin);
scanf("%d",&a[intCount].Ly);
printf("\n Diem Hoa:");
fflush(stdin);
scanf("%d",&a[intCount].Hoa);
a[intCount].dtb=(a[intCount].Toan+a[intCount].Ly+a[intCount].Hoa)/3;
}
while (intCount<=k);
return(SV);
}
// Ham xem danh sach sinh vien
void Xem(SinhVien SV)
{
int stt=0;
int i;
clrscr();
printf("\n************************************************ ****************\n");
printf("\n* DANH SACH TOAN BO SINH VIEN *\n");
printf("\n************************************************ ****************\n");
printf("\n* STT HOTEN MASV TOAN LY HOA DTB *\n");
for (i=0;i<=intCount;i++);
{
printf("* %3d %10s %10s %10d %10f %10f *",stt++,a[i].HoTen,a[i].MaSV,a[i].Toan,a[i].Ly,a[i].Hoa,a[i].dtb);
}
getch();
return;
}
// Sap xep danh sach theo thu tu tang dan theo dtb
void SapXep()
{
int i,j;
float tg;
clrscr();
printf("\n Sap xep danh sach theo diem trung binh tang dan:");
for(i=0;i<=(intCount-1);i++)
for(j=i+1;j<=intCount;j++)
{
if(strcmp(a[i].dtb,a[j].dtb)>0)
{
tg=a[i].dtb;
a[i].dtb=a[j].dtb;
a[j].dtb=tg;
}
}
printf("\n Da sap xep xong!");
getch();
}
// Ham kiem tra xem danh sach da sap xep chua
void KiemTra()
{
int i,j;
int kt;
char ch;
printf("\n Kiem tra xem danh sach da sap xep chua? \-1 Da sap xep \n - 0 chua sap xep");
kt=check();
printf("\n Ket qua:%d",kt);
if (kt==0)
{
printf(" Danh sach chua duoc sap xep, Ban co muon sap xep lai khong? C/K?");
fflush(stdin);
ch=getch();
if(ch=='c'||ch=='C')
{
SapXep();
printf(" Da sap xep xong!");
}
return;
}
else
return;
}
// Ham check check()
int check()
{
int i,j;
int kq=1;
for (i=0;i<=(intCount-1);i++)
for (j=i+1;j<=intCount;j++)
if (strcmpi(a[i].dtb,a[j].dtb)>0)
{
kq=0;
break;
}
return kq;
}
// Ham tim kiem tuyen tinh theo hoten
void TimKiemTuyenTinh()
{
int i;
int stt=0;
char name[30];
printf("\n Hay nhap vao ho ten sinh vien muon tim:");
fflush(stdin);
gets(name);
strcpy(a[intCount+1].HoTen,name);
while(strcmp(a[i].HoTen,name)!=0)
{
i+=1;
}
if (i==intCount+1)
{
printf("\n khong tim thay ho ten sinh vien da nhap!");
return;
}
else
{
printf("\n da tim thay sinh vien!");
printf("\n************************************************ ****************\n");
printf("\n* DANH SACH TOAN BO SINH VIEN *\n");
printf("\n************************************************ ****************\n");
printf("\n* STT HOTEN MASV TOAN LY HOA *\n");
for (i=0;i<=intCount;i++);
{
printf("* %3d %10s %10s %10f %10f %10f *",stt++,a[i].HoTen,a[i].MaSV,a[i].Toan,a[i].Ly,a[i].Hoa);
}
getch();
}
return;
}
// Ham tim kiem nhi phan theo dtb
void TimKiemNhiPhan()
{
int i,j,stt=0;
int left=0,right=intCount;
float DTB;
clrscr();
KiemTra();
printf("\nNhap diem trung binh ban muon tim");
fflush(stdin);
scanf("%f",&DTB);
do
{
i=floor((left+right)/2);
if(strcmp(DTB,a[i].dtb)==0)
{
printf(" Da tim thay diem trung binh yeu cau:");
printf("\n************************************************ ****************\n");
printf("\n* DANH SACH TOAN BO SINH VIEN *\n");
printf("\n************************************************ ****************\n");
printf("\n* STT HOTEN MASV TOAN LY HOA DTB *\n");
for (i=0;i<=intCount;i++);
{
printf("* %3d %10s %10s %10d %10f %10f %10f *",stt++,a[i].HoTen,a[i].MaSV,a[i].Toan,a[i].Ly,a[i].Hoa),a[i].dtb;
}
getch();
return;
}
else
{
if(strcmp(DTB,a[i].dtb)<0)
right=i-1;
else left=i+1;
}
}while (left<=right);
printf(" Khong tim thay ket qua nao !");
return;
}
// Xoa sinh vien co masv=x ( Ma sinh vien nhap tu ban phim)
void Xoa()
{
int i,done=0;
int stt=0;
int found;
char Code_SV[10],Code_TG[10];
char ch;
while(!done)
{
if(intCount!=0)
{
printf("\nNhap vao ma sinh vien:");
fflush(stdin);
gets(Code_SV);
i=0;found=0;
do
{
strcpy(Code_TG,a[i].MaSV);
if(strcmp(Code_SV,Code_TG)==0)
found=i;
i++;
}
while (i<intCount);
if (!found)
printf("\n Khong tim thay cuon sach co ma sach: %s",Code_SV);
else
{
printf("\nTim thay cuon sach trong danh sach:");
printf("\n* STT HOTEN MASV TOAN LY HOA DTB *\n");
printf("* %3d %10s %10s %10f %10f %10f *",stt++,a[found].HoTen,a[found].MaSV,a[found].Toan,a[found].Ly,a[found].Hoa);
printf("\n co muon xoa khong _ C/K?");
fflush(stdin);
ch=getch();
if(ch=='c' || ch=='C')
{
for(i=found;i<=intCount;i++)
{ a[i]=a[i+1];}
printf("\nDa xoan");
}
else
printf("\nViec xoa da bi huy");
}
done=1;
getch();
}
else
{done=1;}
}
return;
}
// Ham chen sinh vien
void Chen()
{
SinhVien newsv;
char code[10],name[30];
int i,j,tg,kt;
printf("\nNhap vao sinh vien moi:");
printf("\nNhap vao ma sinh vien moi:");
fflush(stdin);
gets(code);
if (strcmp(code,"")==0)
{
printf("\nNhap lai ma sach:");
fflush(stdin);
gets(code);
}
else
{
strcpy(newsv.MaSV,code);
printf("\nTen sinh vien:");
fflush(stdin);
gets(name);
strcpy(newsv.HoTen,name);
printf("\nDiem Toan:");
fflush(stdin);
scanf("%f",&newsv.Toan);
printf("\nDiem Ly:");
fflush(stdin);
scanf("%f",&newsv.Ly);
printf("\nDiem Hoa:");
fflush(stdin);
scanf("%f",&newsv.Hoa);
newsv.dtb=(newsv.Toan+newsv.Ly+newsv.Hoa)/3;
printf("\nDanh kiem tra danh sach!");
kt=check();
if(kt==0)
{
printf("\nDanh sach chua sap xep nen khong chen duoc!");
getch();
return;
}
else
{
i=1;
while(strcmp(newsv.dtb,a[i].dtb)>0 && i<intCount)
i+=1;
printf("\nVi tri chen la:%d",i);
getch();
if(i>intCount)
{
a[i]=newsv;
}
else
{
for(j=intCount;j>i;j--) // dich chuyen cac phan tu tu vi tri tim thay lui lai 1 vi tri de chen
{
a[j+1]=a[j];
}
a[i]=newsv; // chen vao vi tri
intCount+=1;
}
}
}
return;
}
// Luu danh sach sinh vien ra file sinhvien.dat
void LuuRaFile()
{
FILE *f;
SinhVien SV;
if((f=fopen("sinhvien.dat","wb"))==NULL)
{
printf("Khong the mo file!\n");
exit(0);
}
SV= Nhap(SV);
{
fwrite(&SV, sizeof(SinhVien), 1, f);
}
fclose(f);
}
// Mo file sinhvien.dat de doc danh sach vva hien thi danh sach nay
void Doc_HienThi()
{
FILE *f;
f=fopen("sinhvien.dat","rb");
while (fread(&SV,sizeof(SinhVien),1,f),!feof(f))
{
Xem(SV);
}
fclose(f);
return;
}
// Ham ket thuc
void KetThuc()
{
exit(0);
}
Nó cứ báo lỗi :
Incompatible type conversion ở đoạn
if(strcmp(a[i].dtb,a[j].dtb)>0) và ở đoạn
if(strcmp(DTB,a[i].dtb)==0) và một số chỗ khác. Nhìn chung cứ chỗ nào liên quan đến dtb( điểm trung bình ) là nó báo lỗi. Em không hiểu tại sao. Mong các bác chỉ dùm.
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#define NMAX 100
typedef struct SinhVien
{
char MaSV[10],HoTen[30];
float Toan;
float Ly;
float Hoa;
float dtb;
} SinhVien;
SinhVien a[NMAX];
SinhVien SV;
// Cac ham su dung
void menu();//ham chon menu
void KhoiTao();// ham khoi tao danh sach
SinhVien Nhap(SinhVien SV);// ham nhap k sinh vien
void Xem(SinhVien SV);// ham xem danh sach sinh vien
void SapXep();// sap xep danh sach theo thu tu tang dan theo diem trung binh
void KiemTra();//Kiem tra danh sach da sap xep chua
int check();
void TimKiemTuyenTinh(); //tim kiem tuyen tinh theo hoten
void TimKiemNhiPhan();// tim kiem nhi phan theo dtb.
void Xoa();// xoa sinh vien co masv=x, ma sinh vien nhap tu ban phim
void Chen();// chen mot sinh vien vao danh sach da sap xep sao cho tinh sap xep van duoc bao ton
void LuuRaFile();//luu danh sach sinh vien ra file
void Doc_HienThi();// doc danh sach sinh vien tu file va hien thi
void KetThuc();
static int intCount=0;
// Ham chinh
void main()
{
int k;
char intSelect;
do
{
clrscr();
menu();
fflush(stdin);
scanf("%s",&intSelect);
switch(intSelect)
{
case '1': KhoiTao();
break;
case '2': Nhap(SV);
break;
case '3': Xem(SV);
break;
case '4': SapXep();
break;
case '5': KiemTra();
break;
case '6': TimKiemTuyenTinh();
break;
case '7': TimKiemNhiPhan();
break;
case '8': Xoa();
break;
case '9': Chen();
break;
case 's': LuuRaFile();
break;
case 'l' || 'L': Doc_HienThi();
break;
case 'z': KetThuc();
break;
default: printf("\nBan da nhap sai. Xin vui long nhap lai!");
}
}
while (intSelect !='0');
}
// Ham menu
void menu()
{
printf("\n************************************************ ******************************************");
printf("\n* MENU LUA CHON SINH VIEN *");
printf("\n************************************************ ******************************************");
printf("\n* Cac ban hay dua ra lua chon *");
printf("\n* 1. Khoi tao danh sach. *");
printf("\n* 2. Nhap k sinh vien. *");
printf("\n* 3. Xem danh sach sinh vien. *");
printf("\n* 4. Sap xep danh sach theo thu tu tang dan theo dtb *");
printf("\n* 5. Kiem tra xem danh sach da sap xep chua. *");
printf("\n* 6. Tim kiem tuyen tinh theo hoten. *");
printf("\n* 7. Tim kiem nhi phan theo dtb. *");
printf("\n* 8. Xoa sinh vien co masv=x, masv nhap tu ban phim. *");
printf("\n* 9. Chen mot sinh vien vao danh sach da sap xep sao cho tinh sap xep van duoc bao ton *");
printf("\n* s. Luu danh sach sinh vien ra file *");
printf("\n* l or L. Doc danh sach sinh vien tu file va hien thi. *");
printf("\n* z. Ket thuc. *");
}
// Ham khoi tao
void KhoiTao()
{
printf(" Khoi tao danh sach\n");
if (intCount!=0)
intCount=0;
printf(" Danh sach da duoc khoi tao\n");
getch();
return;
}
// Ham Nhap du lieu
SinhVien Nhap(SinhVien SV)
{
int k;
clrscr();
printf("Ban hay nhap so sinh vien:");
fflush(stdin);
scanf("%d",&k);
do
{
intCount+=1;
printf("\n Sinh vien thu %d",intCount);
printf("\n Ho ten:");
fflush(stdin);
gets(a[intCount].HoTen);
printf("\n Ma sinh vien:");
fflush(stdin);
gets(a[intCount].MaSV);
printf("\n Diem Toan:");
fflush(stdin);
scanf("%d",&a[intCount].Toan);
printf("\n Diem Ly:");
fflush(stdin);
scanf("%d",&a[intCount].Ly);
printf("\n Diem Hoa:");
fflush(stdin);
scanf("%d",&a[intCount].Hoa);
a[intCount].dtb=(a[intCount].Toan+a[intCount].Ly+a[intCount].Hoa)/3;
}
while (intCount<=k);
return(SV);
}
// Ham xem danh sach sinh vien
void Xem(SinhVien SV)
{
int stt=0;
int i;
clrscr();
printf("\n************************************************ ****************\n");
printf("\n* DANH SACH TOAN BO SINH VIEN *\n");
printf("\n************************************************ ****************\n");
printf("\n* STT HOTEN MASV TOAN LY HOA DTB *\n");
for (i=0;i<=intCount;i++);
{
printf("* %3d %10s %10s %10d %10f %10f *",stt++,a[i].HoTen,a[i].MaSV,a[i].Toan,a[i].Ly,a[i].Hoa,a[i].dtb);
}
getch();
return;
}
// Sap xep danh sach theo thu tu tang dan theo dtb
void SapXep()
{
int i,j;
float tg;
clrscr();
printf("\n Sap xep danh sach theo diem trung binh tang dan:");
for(i=0;i<=(intCount-1);i++)
for(j=i+1;j<=intCount;j++)
{
if(strcmp(a[i].dtb,a[j].dtb)>0)
{
tg=a[i].dtb;
a[i].dtb=a[j].dtb;
a[j].dtb=tg;
}
}
printf("\n Da sap xep xong!");
getch();
}
// Ham kiem tra xem danh sach da sap xep chua
void KiemTra()
{
int i,j;
int kt;
char ch;
printf("\n Kiem tra xem danh sach da sap xep chua? \-1 Da sap xep \n - 0 chua sap xep");
kt=check();
printf("\n Ket qua:%d",kt);
if (kt==0)
{
printf(" Danh sach chua duoc sap xep, Ban co muon sap xep lai khong? C/K?");
fflush(stdin);
ch=getch();
if(ch=='c'||ch=='C')
{
SapXep();
printf(" Da sap xep xong!");
}
return;
}
else
return;
}
// Ham check check()
int check()
{
int i,j;
int kq=1;
for (i=0;i<=(intCount-1);i++)
for (j=i+1;j<=intCount;j++)
if (strcmpi(a[i].dtb,a[j].dtb)>0)
{
kq=0;
break;
}
return kq;
}
// Ham tim kiem tuyen tinh theo hoten
void TimKiemTuyenTinh()
{
int i;
int stt=0;
char name[30];
printf("\n Hay nhap vao ho ten sinh vien muon tim:");
fflush(stdin);
gets(name);
strcpy(a[intCount+1].HoTen,name);
while(strcmp(a[i].HoTen,name)!=0)
{
i+=1;
}
if (i==intCount+1)
{
printf("\n khong tim thay ho ten sinh vien da nhap!");
return;
}
else
{
printf("\n da tim thay sinh vien!");
printf("\n************************************************ ****************\n");
printf("\n* DANH SACH TOAN BO SINH VIEN *\n");
printf("\n************************************************ ****************\n");
printf("\n* STT HOTEN MASV TOAN LY HOA *\n");
for (i=0;i<=intCount;i++);
{
printf("* %3d %10s %10s %10f %10f %10f *",stt++,a[i].HoTen,a[i].MaSV,a[i].Toan,a[i].Ly,a[i].Hoa);
}
getch();
}
return;
}
// Ham tim kiem nhi phan theo dtb
void TimKiemNhiPhan()
{
int i,j,stt=0;
int left=0,right=intCount;
float DTB;
clrscr();
KiemTra();
printf("\nNhap diem trung binh ban muon tim");
fflush(stdin);
scanf("%f",&DTB);
do
{
i=floor((left+right)/2);
if(strcmp(DTB,a[i].dtb)==0)
{
printf(" Da tim thay diem trung binh yeu cau:");
printf("\n************************************************ ****************\n");
printf("\n* DANH SACH TOAN BO SINH VIEN *\n");
printf("\n************************************************ ****************\n");
printf("\n* STT HOTEN MASV TOAN LY HOA DTB *\n");
for (i=0;i<=intCount;i++);
{
printf("* %3d %10s %10s %10d %10f %10f %10f *",stt++,a[i].HoTen,a[i].MaSV,a[i].Toan,a[i].Ly,a[i].Hoa),a[i].dtb;
}
getch();
return;
}
else
{
if(strcmp(DTB,a[i].dtb)<0)
right=i-1;
else left=i+1;
}
}while (left<=right);
printf(" Khong tim thay ket qua nao !");
return;
}
// Xoa sinh vien co masv=x ( Ma sinh vien nhap tu ban phim)
void Xoa()
{
int i,done=0;
int stt=0;
int found;
char Code_SV[10],Code_TG[10];
char ch;
while(!done)
{
if(intCount!=0)
{
printf("\nNhap vao ma sinh vien:");
fflush(stdin);
gets(Code_SV);
i=0;found=0;
do
{
strcpy(Code_TG,a[i].MaSV);
if(strcmp(Code_SV,Code_TG)==0)
found=i;
i++;
}
while (i<intCount);
if (!found)
printf("\n Khong tim thay cuon sach co ma sach: %s",Code_SV);
else
{
printf("\nTim thay cuon sach trong danh sach:");
printf("\n* STT HOTEN MASV TOAN LY HOA DTB *\n");
printf("* %3d %10s %10s %10f %10f %10f *",stt++,a[found].HoTen,a[found].MaSV,a[found].Toan,a[found].Ly,a[found].Hoa);
printf("\n co muon xoa khong _ C/K?");
fflush(stdin);
ch=getch();
if(ch=='c' || ch=='C')
{
for(i=found;i<=intCount;i++)
{ a[i]=a[i+1];}
printf("\nDa xoan");
}
else
printf("\nViec xoa da bi huy");
}
done=1;
getch();
}
else
{done=1;}
}
return;
}
// Ham chen sinh vien
void Chen()
{
SinhVien newsv;
char code[10],name[30];
int i,j,tg,kt;
printf("\nNhap vao sinh vien moi:");
printf("\nNhap vao ma sinh vien moi:");
fflush(stdin);
gets(code);
if (strcmp(code,"")==0)
{
printf("\nNhap lai ma sach:");
fflush(stdin);
gets(code);
}
else
{
strcpy(newsv.MaSV,code);
printf("\nTen sinh vien:");
fflush(stdin);
gets(name);
strcpy(newsv.HoTen,name);
printf("\nDiem Toan:");
fflush(stdin);
scanf("%f",&newsv.Toan);
printf("\nDiem Ly:");
fflush(stdin);
scanf("%f",&newsv.Ly);
printf("\nDiem Hoa:");
fflush(stdin);
scanf("%f",&newsv.Hoa);
newsv.dtb=(newsv.Toan+newsv.Ly+newsv.Hoa)/3;
printf("\nDanh kiem tra danh sach!");
kt=check();
if(kt==0)
{
printf("\nDanh sach chua sap xep nen khong chen duoc!");
getch();
return;
}
else
{
i=1;
while(strcmp(newsv.dtb,a[i].dtb)>0 && i<intCount)
i+=1;
printf("\nVi tri chen la:%d",i);
getch();
if(i>intCount)
{
a[i]=newsv;
}
else
{
for(j=intCount;j>i;j--) // dich chuyen cac phan tu tu vi tri tim thay lui lai 1 vi tri de chen
{
a[j+1]=a[j];
}
a[i]=newsv; // chen vao vi tri
intCount+=1;
}
}
}
return;
}
// Luu danh sach sinh vien ra file sinhvien.dat
void LuuRaFile()
{
FILE *f;
SinhVien SV;
if((f=fopen("sinhvien.dat","wb"))==NULL)
{
printf("Khong the mo file!\n");
exit(0);
}
SV= Nhap(SV);
{
fwrite(&SV, sizeof(SinhVien), 1, f);
}
fclose(f);
}
// Mo file sinhvien.dat de doc danh sach vva hien thi danh sach nay
void Doc_HienThi()
{
FILE *f;
f=fopen("sinhvien.dat","rb");
while (fread(&SV,sizeof(SinhVien),1,f),!feof(f))
{
Xem(SV);
}
fclose(f);
return;
}
// Ham ket thuc
void KetThuc()
{
exit(0);
}