Thứ Bảy, 5 tháng 4, 2014

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


#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();
}

0 nhận xét:

Đăng nhận xét