#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#define NULL 0
typedef struct
{
char masv[8];
char ten[30];
float dtb;
} SV;
typedef struct
{
int n;
SV *e;
unsigned max;
} SV_List;
//-------------------------------------------------------
// Xay dung ham khoi tao.
void KhoiTao(SV_List &dssv)
{
dssv.n=0;
dssv.max=64;
dssv.
e= (SV
*)calloc(sizeof(SV
),dssv.
max); FILE
* f
=fopen("sinhvien.txt","w");}
//-------------------------------------------------------
// Xay dung ham nhap mot sinh vien.
void Nhap1SV(SV &x)
{
{
{
float f;
x.dtb=f;
}
}
}
//-------------------------------------------------------
// Xay dung ham them mot sinh vien.
void Them(SV x,SV_List &ds)
{
FILE* f;
f
=fopen("sinhvien.txt","a"); if(f!=NULL)
{
fprintf(f
,"%-30s%-10s%-3.2f\n",x.
ten,x.
masv,x.
dtb); }
ds.e[ds.n++]=x;
printf("\nbam phim bat ky de tiep tuc"); getch();
}
//-------------------------------------------------------
//Xay dung ham tim kiem hoc sinh bat ky trong danh sach
void Timkiem(SV_List dssv)
{
char ch[30];
int found=0;
printf("\nNhap ten sinh vien can tim:"); for(int i=0;i<dssv.n;i++)
{
if(strcmp(ch
,dssv.
e[i
].
ten)==0) {
printf("Ho ten:%s\n",dssv.
e[i
].
ten); printf("MSSV:%s\n",dssv.
e[i
].
masv); printf("DTB:%f\n",dssv.
e[i
].
dtb); found=1;
}
}
if(found
==0) printf("\nKhong tim thay!"); printf("\nbam phim bat ky de tiep tuc"); getch();
}
//-------------------------------------------------------
//Xay dung ham xoa mot sinh vien trong danh sach
void XoaDS1(SV_List& dssv)
{
char ch[30];
//int found=0;
printf("\nNhap ten sinh vien can xoa:"); for(int i=0;i<dssv.n;i++)
{
if(strcmp(ch
,dssv.
e[i
].
ten)==0) {
// point cuat is i
for (int j = i; j < (dssv.n-1) ;j++)
{
dssv.e[j] = dssv.e[j+1];
}
dssv.n--;
}
else
i++;
}
}
//-------------------------------------------------------
// Xay dung ham xuat danh sach.
void XuatDS(SV_List dssv)
{
int i=0;
printf("\n%-6s%-30s%-10s%-10s","STT","HO TEN","MSSV","DIEM TB"); for(i=0;i<dssv.n;i++)
printf("\n%-6d%-30s%-10s%-10.2f",i
+1,dssv.
e[i
].
ten,dssv.
e[i
].
masv,dssv.
e[i
].
dtb); printf("\nbam phim bat ky de tiep tuc"); getch();
}
//-------------------------------------------------------
//Sap xep danh sach theo diem trung binh
void DSthutu(SV_List dssv)
{
for(int i=0;i<dssv.n-1;i++)
for(int j=i+1;j<dssv.n;j++)
if(dssv.e[i].dtb < dssv.e[j].dtb)
{
SV temp;
temp=dssv.e[i];
dssv.e[i]=dssv.e[j];
dssv.e[j]=temp;
}
XuatDS(dssv);
}
//-------------------------------------------------------
//Xem danh sach sv co san trong file
void Xemfile()
{
FILE* f;
printf("\n%-30s%-10s%-10s\n","HO TEN","MSSV","DIEM TB"); f
=fopen("sinhvien.txt","r"); if(f!=NULL)
{
}
printf("\nbam phim bat ky de tiep tuc"); getch();
}
//-------------------------------------------------------
// Chuong trinh chinh.
void main()
{
SV_List dssv;
int c;
KhoiTao(dssv);
while(1)
{
printf("1.Them 1 sinh vien\n"); printf("3.Tim 1 sinh vien trong danh sach\n"); printf("5.Xem danh sach theo thu tu diem trung binh tu cao xuong thap\n"); printf("6.Xem danh sach tu file\n"); if(c==1)
{
SV x;
Nhap1SV(x);
Them(x,dssv);
}
else if(c==2)
XoaDS1(dssv);
else if(c==3)
Timkiem(dssv);
else if(c==4)
XuatDS(dssv);
else if(c==5)
DSthutu(dssv);
else if(c==6)
Xemfile();
else break;
}
}