











Preview text:
  lOMoAR cPSD| 58490434  
Chương 8 KIỂU CẤU TRÚC   //Quản l sinh viŒn  #include  #include  struct QLSV  {    char HoTen[30];    float L1, L2, OL, TB;  }; void  main()  {    struct QLSV LTC[65];    int i;    for (i = 0; i < 65; i++)    {     
printf("Nhap thong tin cua SV thu %d:\n", i + 1);      printf("Ho va ten: ");     gets_s(LTC[i].HoTen);   printf("Diem lan 1: "); 
 scanf_s("%f", <C[i].L1);   printf("Diem lan 2: "); 
 scanf_s("%f", <C[i].L2);   printf("Diem online: ");     
scanf_s("%f", <C[i].OL);      fflush(stdin);    }   
printf("%-20s %-10s %-10s %-10s %-10s\n", "Ho va Ten", "DienLan1",  "DiemLan2",  "DiemOL", "DiemTB"); for  (i = 0; i < 65; i++)    {     
LTC[i].TB = LTC[i].L1*0.4 + LTC[i].L2*0.4 +  LTC[i].OL*0.2; 
printf("%-20s %-10.2f %-10.2f %-10.2f %- 10.2f\n", LTC[i].HoTen,     
 LTC[i].L1, LTC[i].L2, LTC[i].OL, LTC[i].TB);    }      lOMoAR cPSD| 58490434                           _getch();  }    //Quản l thiết bị  #include  #include    struct QLTB  {    int MaTB, Nam, TT;    char TenTB[30];  };  void main()  {    int i;    struct QLTB TB[3];    for (i = 0; i < 3; i++) 
{ printf("Nhap thong tin thiet bi thu %d:\n", i + 1); 
printf("Ma thiet bi: "); scanf_s("%d", 
&TB[i].MaTB); fflush(stdin);  printf("Ten thiet bi: ");  gets_s(TB[i].TenTB);  printf("Nam san xuat: ");  scanf_s("%d",  &TB[i].Nam); do{     
printf("Trang thai thiet bi: ");        scanf_s("%d", &TB[i].TT);     
} while ((TB[i].TT != 1) && (TB[i].TT != 0));    }    int k = 0; for (i =  0; i < 3; i++)    {      if (TB[i].TT == 1)      {      lOMoAR cPSD| 58490434                               k = 1;     
 printf("%d %s\n", TB[i].MaTB, TB[i].TenTB);      }    }    if (k == 0)    {     
printf("Tat ca cac thiet bi da tat\n");    }    for (i = 0; i < 3; i++)    {      if (TB[i].Nam < 2020)      {     
 printf("%d %s\n", TB[i].MaTB, TB[i].TenTB);      }    }    _getch();  }    //Quản l 100 nh n  viŒn  #include  #include    struct NHANVIEN  {    char manv[5];   char tennv[20];   char diachi[100];   float hsluong;  int  sncong;  }; void  main()  {      lOMoAR cPSD| 58490434                           struct NHANVIEN   NV[100]; int i, n;  do{     
printf("Nhap so luong nhan vien:  ");  scanf_s("%d", &n);  } while 
(n <= 0); for (i = 0; i < n; i++) 
{ printf("Nhap thong tin nv thu %d:\n", i + 1); 
fflush(stdin); printf("Ma nhan vien: ");  gets_s(NV[i].manv);  printf("Ten nhan vien:  "); gets_s(NV[i].tennv);  printf("Dia chi: ");  gets_s(NV[i].diachi);  do{      printf("He so luong: ");       
scanf_s("%f", &NV[i].hsluong);     
} while (NV[i].hsluong <= 0);      do{        printf("So ngay cong: ");     
scanf_s("%d", &NV[i].sncong);     
} while (NV[i].sncong < 0);    }    for (i = 0; i < n; i++)    {      if (NV[i].sncong>20)      {     
 printf("%s %s %s %f %d\n", NV[i].manv, NV[i].tennv,         
NV[i].diachi, NV[i].hsluong, NV[i].sncong);      }    }    _getch();  }    //Quản l n nh n  viŒn      lOMoAR cPSD| 58490434                         #include  #include  #include    struct NHANVIEN  {    char manv[5];   char tennv[20];   char diachi[100];   float hsluong;    int sncong;  }; void  main()  {    struct NHANVIEN *a;    int i, n;   do{     
printf("Nhap so luong nhan vien:  ");  scanf_s("%d", &n);  } while  (n <= 0); 
 a = (NHANVIEN*)malloc(n*sizeof(NHANVIEN));    if (a == NULL)    {     
printf("Cap phat khong thanh cong");    }    else    {      for (i = 0; i < n; i++)      {     
printf("Nhap thong tin nv thu %d:\n", i + 1);    fflush(stdin);    printf("Ma nhan vien:  "); gets_s((a+i)->manv);    printf("Ten nhan vien:      lOMoAR cPSD| 58490434                        
"); gets_s((a + i)->tennv);    printf("Dia chi: ");      gets_s((a + i)->diachi);      do{        printf("He so luong: ");         
scanf_s("%f", &(a + i)->hsluong);       
} while ((a + i)->hsluong <= 0);        do{          printf("So ngay cong: ");       
scanf_s("%d", &(a + i)->sncong);       
} while ((a + i)->sncong < 0);              }      for (i = 0; i < n; i++)      {       
if ((a + i)->sncong > 20)        {         
printf("%s %s %s %f %d\n", (a + i)->manv, (a + i)- >tennv,         
(a + i)->diachi, (a + i)->hsluong, (a + i)- >sncong);        }      }      free(a);    }    _getch();  }   
//Quản l n nh n viŒn c viết h m  #include  #include  #include    struct NHANVIEN  {      lOMoAR cPSD| 58490434                           char manv[5];   char tennv[20];   char diachi[100];   float hsluong;    int sncong;  }; 
void NhapStruct(struct NHANVIEN *a, int n)  {    int i;    for (i = 0; i < n; i++)    {     
printf("Nhap thong tin nv thu %d:\n", i +  1);  fflush(stdin);    printf("Ma nhan  vien: ");    gets_s((a + i)->manv);   printf("Ten nhan vien: ");    gets_s((a + i)- >tennv);    printf("Dia chi: ");      gets_s((a + i)->diachi);  do{    printf("He so luong: ");   
scanf_s("%f", &(a + i)->hsluong); 
} while ((a + i)->hsluong <= 0);  do{    printf("So ngay cong: ");   
scanf_s("%d", &(a + i)->sncong); 
} while ((a + i)->sncong < 0);  }  } 
void TimKiem(struct NHANVIEN *a, int n)  {    int i;    for (i = 0; i < n; i++)    {      if ((a + i)->sncong>20)      lOMoAR cPSD| 58490434                             {       
printf("%s %s %s %f %d\n", (a + i)->manv, (a + i)- >tennv,       
(a + i)->diachi, (a + i)->hsluong, (a + i)- >sncong);      }    }  }   
//H m t m kiếm in ra th ng tin nh n viŒn c số ng y c ng lớn hơn k ng y 
 void TimKiem2(struct NHANVIEN *a, int  n, int k)  {    int i;    for (i = 0; i < n; i++)    {     
if ((a + i)->sncong > k)      {       
printf("%s %s %s %f %d\n", (a + i)->manv, (a + i)- >tennv,       
(a + i)->diachi, (a + i)->hsluong, (a + i)- >sncong);      }    }  } void  main()  {    struct NHANVIEN   *p; int i, n;    do{     
printf("Nhap so luong nhan vien: ");      scanf_s("%d", &n);  }  while (n <= 0);  p = 
(NHANVIEN*)malloc(n*sizeof(NHANVIE N));    if (p == NULL)      lOMoAR cPSD| 58490434                           {     
printf("Cap phat khong thanh cong");    }    else    {      NhapStruct(p, n);   TimKiem(p, n);  free(p);    }    _getch();  }        //Quản l thư viện  #include  #include  #include    struct QuanLyThuVien  {    char HoVaTen[20];   int MSSV; char  TenSach[50];  int  NgayMuon, NgayTra;   int TG;  }; 
void TimKiem(struct QuanLyThuVien *a, int n, int b)  {    int i;    for (i = 0; i < n; i++)    {      if ((a + i)->MSSV == b)      {      lOMoAR cPSD| 58490434                              
printf("%s %d %s %d %d\n", (a + i)->HoVaTen, (a + i)- >MSSV,     
(a + i)->TenSach, (a + i)->NgayMuon, (a +  i)->NgayTra);      }    }  } void  main()  {    struct QuanLyThuVien  *a; int i, n;      do{     
printf("Nhap so luong sinh vien: ");      scanf_s("%d",  &n); } while (n <= 0); 
 a = (QuanLyThuVien*)malloc(n*sizeof(QuanLyThuVien));    if (a == NULL)    {     
printf("Cap phat khong thanh cong");    }    else    {      for (i = 0; i < n; i++)      {       
printf("Nhap thong tin sv thu %d:\n", i + 1);        fflush(stdin);      printf("Ho va ten: ");       gets_s((a + i)->HoVaTen);          printf("MSSV: ");        scanf_s("%d", &(a + i)- >MSSV);    fflush(stdin);      printf("Ten sach: ");          lOMoAR cPSD| 58490434                          gets_s((a + i)->TenSach);       do{          printf("Ngay muon: ");     
scanf_s("%d", &(a + i)->NgayMuon);     
 } while (((a + i)->NgayMuon < 0) || ((a+i)->NgayTra>31));                do{          printf("Ngay tra: ");         
scanf_s("%d", &(a + i)->NgayTra);     
 } while ((a + i)->NgayTra < (a + i)->NgayMuon);              }      int MS;      printf("Nhap ma so can tim:  ");  scanf_s("%d", &MS); 
 TimKiem(a, n, MS);//gọi h m  //  phương Æn 1 c u d   
 int TGmax = ((a+0)->NgayTra-(a+0)->NgayMuon);      for (i = 0; i < n; i++)      {     
 if ((a + i)->NgayTra - (a + i)->NgayMuon > TGmax)        {       
 TGmax = (a + i)->NgayTra - (a + i)->NgayMuon;          }      }      for (i = 0; i < n; i++)      {     
 if ((a + i)->NgayTra - (a + i)->NgayMuon == TGmax)        {       
 printf("%s %d %d\n", (a + i)->HoVaTen, (a + i)->MSSV,           
(a + i)->NgayTra - (a + i)->NgayMuon);        }      }      lOMoAR cPSD| 58490434                               // phương Æn 2 c u d        for (i = 0; i < n; i++)      {     
 (a + i)->TG = (a + i)->NgayTra - (a + i)->NgayMuon;      }      int TGmax = (a + 0)->TG;      for (i = 0; i < n; i++)      {       
if ((a + i)->TG > TGmax)        {          TGmax = (a + i)->TG;        }      }      for (i = 0; i < n; i++)      {        if ((a + i)->TG == TGmax)        {       
 printf("%s %d %d\n", (a + i)->HoVaTen, (a + i)->MSSV,            (a + i)->TG);        }      }      free(a);    }    _getch();  }     
