Bài tập quản lý sinh viên (xóa, sắp xếp, nhập, xuất,…)

 

Unknown

 

#include<conio.h>

#include<stdio.h>

#include<string.h>

struct date

{

unsigned char ngay;

   unsigned char thang;

   int nam;

};

struct sinhvien

{

char mssv[17];

   char hoten[30];

   struct date ngaysinh;

   float diemtb;

};

void nhapngaysinh (date &d)

{

printf(“Nhap ngay: “);

   scanf(“%u”,&d.ngay);

   printf(“Nhap thang: “);

   scanf(“%u”,&d.thang);

   printf(“Nhap nam: “);

   scanf(“%d”,&d.nam);

}

void xuatngaysinh (date d)

{

printf(“%2u/%2u/%4d”,d.ngay,d.thang,d.nam);

}

void nhap1sinhvien (sinhvien &sv)

{

float diem;

printf(“Nhap MSSV: “);

   flushall();

   gets(sv.mssv);

   printf(“Nhap ho ten sinh vien: “);

   flushall();

   gets(sv.hoten);

   printf(“Nhap ngay sinh: “);

   nhapngaysinh(sv.ngaysinh);

   flushall();

   printf(“Nhap diem trung binh: “);

   scanf(“%f”,&diem);

   sv.diemtb=diem;

}

void xuat1sinhvien (sinhvien sv)

{

printf(“MSSV: %s”,sv.mssv);

   printf(“\nHo ten: %s”,sv.hoten);

   printf(“\nNgay sinh: “);

   xuatngaysinh(sv.ngaysinh);

   printf(“\nDiem trung binh: %.2f”,sv.diemtb);

}

void nhapdssinhvien (sinhvien lh[], int &n)    //Nhap danh sach sinh vien

{

printf(“Nhap so luong sinh vien: “);

   scanf(“%d”,&n);

   for (int i=0;i<n;i++)

   

{

     

printf(“\n\nNhap thong tin sinh vien thu %d: \n”,i+1);

         nhap1sinhvien(lh[i]);

      }

}

void xuatdssinhvien (sinhvien lh[], int n)    //Xuat danh sach sinh vien

{

for (int i=0;i<n;i++)

   

{

     

printf(“\n\nThong tin cua sinh vien thu %d: \n\n”,i+1);

         xuat1sinhvien(lh[i]);

      }

}

void timkiem (sinhvien lh[], int n)          //Cho biet thong tin sinh vien khi nhap mssv

{

char id[17];

   int i=0,dem=0;

   printf(“\n\nNhap MSSV can tra cuu: “);

   scanf(“%s”,&id);

   if (strlen(id))

   

while (i<n)

     

if (stricmp(lh[i].mssv,id)==0)

         

{

           

printf(“\t\tMSSV: %s \n”,lh[i].mssv);

               printf(“\t\tHo ten: %s \n”,lh[i].hoten);

               printf(“\t\tNgay sinh: “);

               xuatngaysinh(lh[i].ngaysinh);

               printf(“\n”);

               printf(“\t\tDiem trung binh: %.2f \n”,lh[i].diemtb);

           

dem++;

               break;

            }

         else

         

i++;

      if (!dem)

     

printf(“Khong ton tai sinh vien nay.\n”);

}

void timkiem2 (sinhvien lh[], int n)    //Cho biet ten va diem trung binh khi nhap mssv

{

char id[17];

   int i=0,dem=0;

   printf(“Nhap MSSV can tra cuu: “);

   scanf(“%s”,&id);

   if (strlen(id))

   

while (i<n)

     

if (stricmp(lh[i].mssv,id)==0)

         

{

           

printf(“\t\tHo ten: %s \n”,lh[i].hoten);

               printf(“\t\tDiem trung binh: %.2f \n”,lh[i].diemtb);

           

dem++;

               break;

            }

         else

         

i++;

      if (!dem)

     

printf(“Khong ton tai sinh vien nay.\n”);

}

void sapxeptb (sinhvien lh[], int n)   //Sap xep sinh vien giam dan theo diem trung binh

{

sinhvien tmp;

for (int i=0;i<n-1;i++)

   

{

     

for (int j=i+1;j<n;j++)

         

{

           

if (lh[i].diemtb < lh[j].diemtb)

               

{

                 

tmp=lh[i];

                     lh[i]=lh[j];

                     lh[j]=tmp;

                  }

            }

      }

   for (int i=0;i<n;i++)

   

printf(“MSSV: %s\nHo ten: %s\nDiem trung binh: %.2f\n\n”,lh[i].mssv,lh[i].hoten,lh[i].diemtb);

}

void sapxepmssv (sinhvien lh[], int n)   //Sap xep sinh vien tang dan theo mssv

{

sinhvien tmp;

for (int i=0;i<n-1;i++)

   

{

     

for (int j=i+1;j<n;j++)

         

{

           

if ((lh[i].mssv) > (lh[j].mssv))

               

{

                 

tmp=lh[i];

                     lh[i]=lh[j];

                     lh[j]=tmp;

                  }

            }

      }

   for (int i=0;i<n;i++)

   

printf(“Ho ten: %s\nMSSV: %s\nDiem trung binh: %.2f\n\n”,lh[i].hoten,lh[i].mssv,lh[i].diemtb);

}

void sapxepten (sinhvien lh[], int n)      //Sap xep sinh vien tang dan theo do dai ten cua sinh vien

{

sinhvien tmp;

for (int i=0;i<n-1;i++)

   

{

     

for (int j=i+1;j<n;j++)

         

{

           

if (strlen(lh[i].hoten) > strlen(lh[j].hoten))

               

{

                 

tmp=lh[i];

                     lh[i]=lh[j];

                     lh[j]=tmp;

                  }

            }

      }

   for (int i=0;i<n;i++)

   

printf(“MSSV: %s\nHo ten: %s\nDiem trung binh: %.2f\n\n”,lh[i].mssv,lh[i].hoten,lh[i].diemtb);

}

void xoak (sinhvien lh[], int &n, int k)

{

for (int i=k;i<n-1;i++)

   

lh[i]=lh[i+1];

      n–;

}

void xoasinhvien (sinhvien lh[], int n)  //Xoa sinh vien thong qua mssv

{

char id[17];

   printf(“Nhap MSSV can xoa: “);

   scanf(“%s”,&id);

   for (int i=0;i<n;i++)

   

if (strcmp(id,lh[i].mssv)==0)

     

{

         

xoak(lh,n,i);

            break;

         }

      xuatdssinhvien(lh,n);

}

void dskha (sinhvien lh[], int n)   //Danh sach sinh vien kha

{

int dem=0;

for (int i=0;i<n;i++)

   

{

   

if (lh[i].diemtb >=6.5)

     

{

         

printf(“\t\tMSSV: %s\n”,lh[i].mssv);

           

printf(“\t\tHo ten: %s\n”,lh[i].hoten);

           

printf(“\t\tNgay sinh: “);

           

xuatngaysinh(lh[i].ngaysinh);

           

printf(“\n”);

           

printf(“\t\tDiem trung binh: %.2f\n\n\n”,lh[i].diemtb);

               dem++;

         

}

      }

   if (!dem)

   

printf(“Khong co sinh vien nao kha.\n”);

}

void badgioi (sinhvien lh[], int n)   //Sinh vien co diem tb thap nhat trong ds sinh vien gioi

{

float lose;

int j,dem=0;

for (int i=0;i<n;i++)

   

{

   

if (lh[i].diemtb >=8.0)

     

{

         

printf(“\t\tMSSV: %s\n”,lh[i].mssv);

           

printf(“\t\tHo ten: %s\n”,lh[i].hoten);

           

printf(“\t\tNgay sinh: “);

           

xuatngaysinh(lh[i].ngaysinh);

           

printf(“\n”);

           

printf(“\t\tDiem trung binh: %.2f\n\n\n”,lh[i].diemtb);

               dem++;

         

}

         if (dem>=2)

         

if (lh[i].diemtb> lh[j].diemtb)

           

lose=lh[j].diemtb;

           

printf(“\n\t\tSinh vien co diem tb thap nhat trong top gioi la.\n”);

               printf(“MSSV: %s\nHo ten: %s\nDiem trung binh: %.2f\n”,lh[j].mssv,lh[j].hoten,lh[j].diemtb);

      }

   if (!dem)

   

printf(“Khong co sinh vien nao kha.\n”);

}

void main()

{

clrscr();

   int n;

   sinhvien lh[100];

   printf(“——————– NHAP DANH SACH SINH VIEN ———————\n”);

   nhapdssinhvien(lh,n);

   printf(“\n\n”);

   printf(“——————– XUAT DANH SACH SINH VIEN ———————\n”);

   xuatdssinhvien(lh,n);

   printf(“\n\n”);

   printf(“—————- TIM KIEM INFORMATION SINH VIEN ——————\n”);

   timkiem(lh,n);                        

   printf(“\n\n”);

   printf(“—————- TIM KIEM DIEM TRUNG BINH VA TEN SINH VIEN ——————\n”);

   timkiem2(lh,n);

   printf(“\n\n”);

   printf(“—————- SAP XEP GIAM DAN THEO DIEM TRUNG BINH ——————\n”);

   sapxeptb(lh,n);

   printf(“\n\n”);

   printf(“—————- SAP XEP TANG DAN THEO MSSV ——————\n”);

   sapxepmssv(lh,n);

   printf(“\n\n”);

   printf(“—————- SAP XEP TANG DAN THEO DO DAI TEN ——————\n”);

   sapxepten(lh,n);

   printf(“\n\n”);

   printf(“—————- DANH SACH SINH VIEN KHA ——————\n”);

   dskha(lh,n);

   printf(“\n\n”);

   printf(“—————- SINH VIEN CUOI TOP GIOI ——————\n”);

   badgioi(lh,n);

   printf(“\n\n”);

   printf(“—————- XOA SINH VIEN ——————\n”);

   xoasinhvien(lh,n);

   printf(“\n\n”);

    getch();

}

Posted in: