Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.45 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include<conio.h>
  4. #define maxlist 50
  5. struct sinhvien
  6. {
  7.     int id;
  8.     char Hoten[30];
  9.     char lop[10];
  10.     float CC,GK,CK,TK;
  11. };
  12. typedef struct sinhvien* sv;
  13. struct list
  14. {
  15.     int x;
  16.     sinhvien SV[maxlist] ;
  17. };
  18.  
  19. void sapxep(list& p)    // Func sap xep
  20. {
  21.     printf("\n==================================");
  22.     printf("\nSap xep...");
  23.     printf("\n==================================");
  24.     sv rp = new sinhvien;
  25.     for (int i = 0; i < p.x - 1; i++)
  26.         for (int j = 0; j < p.x - 1; j++)
  27.             if (p.SV[j].TK< p.SV[j+1].TK)
  28.             {
  29.                 rp->id = p.SV[j].id;
  30.                 strcpy(rp->Hoten, p.SV[j].Hoten);
  31.                 strcpy(rp->lop, p.SV[i].lop);
  32.                 rp->CC = p.SV[j].CC;
  33.                 rp->GK = p.SV[j].GK;
  34.                 rp->CK = p.SV[j].CK;
  35.                 rp->TK = p.SV[j].TK;
  36.  
  37.                 p.SV[j].id = p.SV[j + 1].id;
  38.                 strcpy(p.SV[j].Hoten, p.SV[j + 1].Hoten);
  39.                 strcpy(p.SV[j].lop, p.SV[j + 1].lop);
  40.                 p.SV[j].CC = p.SV[j + 1].CC;
  41.                 p.SV[j].GK = p.SV[j + 1].GK;
  42.                 p.SV[j].CK = p.SV[j + 1].CK;
  43.                 p.SV[j].TK = p.SV[j + 1].TK;
  44.  
  45.  
  46.                 p.SV[j+1].id = rp->id;
  47.                 strcpy(p.SV[j+1].Hoten, rp->Hoten);
  48.                 strcpy(p.SV[j+1].lop, rp->lop);
  49.                 p.SV[j+1].CC = rp->CC;
  50.                 p.SV[j+1].GK = rp->GK;
  51.                 p.SV[j+1].CK = rp->CK;
  52.                 p.SV[j+1].TK = rp->TK;
  53.  
  54.                
  55.             }
  56.  
  57. }
  58. void themtt(list& p)
  59. {
  60.     int n;
  61.     printf("\nNhap so sinh vien can them "); scanf("%d", &n);
  62.     for (int i = 0; i < n; i++)
  63.     {
  64.         printf("\n=====Nhap vao thong tin sinh vien=====");
  65.         printf("\nID : ");  scanf("%d", &p.SV[p.x].id);
  66.         printf("\nHo va ten : "); fflush(stdin); std::cin.ignore(1); gets_s(p.SV[p.x].Hoten);
  67.         printf("\nLop : ");  scanf("%s", &p.SV[p.x].lop);
  68.         printf("\nDiem chuyen can : ");  scanf("%f", &p.SV[p.x].CC);
  69.         printf("\nDiem giua ki : ");  scanf("%f", &p.SV[p.x].GK);
  70.         printf("\nDiem Cuoi ki : ");  scanf("%f", &p.SV[p.x].CK);
  71.         p.SV[p.x].TK = 0.1 * p.SV[p.x].CC + 0.4 * p.SV[p.x].GK + 0.5 * p.SV[p.x].CK;
  72.         p.x++;
  73.     }
  74. }
  75. void xoatt(list& p )
  76. {
  77.     printf("\n==================================");
  78.     printf("\nXoa thong tin...");
  79.     printf("\n==================================");
  80.     int i_id;
  81.     printf("\nID : ");  scanf("%d", &i_id);
  82.     for (int i =0;i<p.x;i++)
  83.         if (p.SV[i].id == i_id)
  84.         {
  85.             for (int j = i; j < p.x - 1; j++)
  86.             {
  87.                 p.SV[j].id = p.SV[j + 1].id;
  88.                 strcpy(p.SV[j].Hoten, p.SV[j + 1].Hoten);
  89.                 strcpy(p.SV[j].lop, p.SV[j + 1].lop);
  90.                 p.SV[j].CC = p.SV[j + 1].CC;
  91.                 p.SV[j].GK = p.SV[j + 1].GK;
  92.                 p.SV[j].CK = p.SV[j + 1].CK;
  93.                 p.SV[j].TK = p.SV[j + 1].TK;
  94.             }
  95.             p.x--;
  96.             p.SV[p.x].id = 0;
  97.             strcpy(p.SV[p.x].Hoten, "");
  98.             strcpy(p.SV[p.x].lop, "");
  99.             p.SV[p.x].CC = 0;
  100.             p.SV[p.x].GK = 0;
  101.             p.SV[p.x].CK = 0;
  102.             p.SV[p.x].TK = 0;
  103.            
  104.         }
  105. }
  106. void edit(list& p)
  107. {
  108.     printf("\n==================================");
  109.     printf("\nEdit...");
  110.     printf("\n==================================");
  111.     int i_id;
  112.     printf("\nID : ");  scanf("%d", &i_id);
  113.     for (int i = 0; i < p.x; i++)
  114.         if (p.SV[i].id == i_id)
  115.         {
  116.             printf("\n=============Thong tin chinh sua=====================");
  117.             printf("\nID : ");  scanf("%d", &p.SV[i].id);
  118.             printf("\nHo va ten : "); fflush(stdin); std::cin.ignore(1); gets_s(p.SV[i].Hoten);
  119.             printf("\nLop : ");  scanf("%s", &p.SV[i].lop);
  120.             printf("\nDiem chuyen can : ");  scanf("%f", &p.SV[i].CC);
  121.             printf("\nDiem giua ki : ");  scanf("%f", &p.SV[i].GK);
  122.             printf("\nDiem Cuoi ki : ");  scanf("%f", &p.SV[i].CK);
  123.             p.SV[i].TK = 0.1 * p.SV[i].CC + 0.4 * p.SV[i].GK + 0.5 * p.SV[i].CK;
  124.             break;
  125.         }
  126. }
  127. void xuatds(list& p)
  128. {
  129.     printf("\n==================================");
  130.     printf("\nXuat thong tin...");
  131.     printf("\n==================================");
  132.     for (int i = 0; i < p.x; i++)
  133.     {
  134.         printf("\nID:  %d", p.SV[i].id);
  135.         printf("\nHo va ten: %s", p.SV[i].Hoten);
  136.         printf("\nLop : %s", p.SV[i].lop);
  137.         printf("\nDiem chuyen can : %2.3f", p.SV[i].CC);
  138.         printf("\nDiem giua ki : %2.3f", p.SV[i].GK);
  139.         printf("\nDiem Cuoi ki : %2.3f", p.SV[i].CK);
  140.         printf("\nDiem Tong ket : %2.3f", p.SV[i].TK);
  141.         printf("\n==================================");
  142.     }
  143.     system("PAUSE");
  144. }
  145. void timMaxMin(list& p)
  146. {
  147.     printf("\n==================================");
  148.     printf("\nMinMax...");
  149.     printf("\n==================================");
  150.     int max_x=0;
  151.     float max= p.SV[0].TK;
  152.     int min_x=0;
  153.     float min = p.SV[0].TK;
  154.     for (int i = 0; i < p.x; i++)
  155.     {
  156.         if (p.SV[i].TK > max)
  157.         {
  158.             max = p.SV[i].TK;
  159.             max_x = i;
  160.         }
  161.         if (p.SV[i].TK < min)
  162.         {
  163.             min = p.SV[i].TK;
  164.             min_x = i;
  165.         }
  166.     }
  167.  
  168.     printf("\nThong tin sv co diem tk cao nhat...");
  169.     printf("\nID:  %d", p.SV[max_x].id);
  170.     printf("\nHo va ten: %s", p.SV[max_x].Hoten);
  171.     printf("\nLop : %s", p.SV[max_x].lop);
  172.     printf("\nDiem chuyen can : %2.3f", p.SV[max_x].CC);
  173.     printf("\nDiem giua ki : %2.3f", p.SV[max_x].GK);
  174.     printf("\nDiem Cuoi ki : %2.3f", p.SV[max_x].CK);
  175.     printf("\nDiem Tong ket : %2.3f", p.SV[max_x].TK);
  176.     printf("\nThong tin sv co diem tk cao nhat...");
  177.     printf("\n==================================");
  178.     printf("\nThong tin sv co diem tk thap nhat...");
  179.     printf("\nID:  %d", p.SV[min_x].id);
  180.     printf("\nHo va ten: %s", p.SV[min_x].Hoten);
  181.     printf("\nLop : %s", p.SV[min_x].lop);
  182.     printf("\nDiem chuyen can : %2.3f", p.SV[min_x].CC);
  183.     printf("\nDiem giua ki : %2.3f", p.SV[min_x].GK);
  184.     printf("\nDiem Cuoi ki : %2.3f", p.SV[min_x].CK);
  185.     printf("\nDiem Tong ket : %2.3f", p.SV[min_x].TK);
  186. }
  187. void timID(list& p)
  188. {
  189.     printf("\n==================================");
  190.     printf("\nTim kiem...");
  191.     printf("\n==================================");
  192.     int i_id = 0;
  193.     printf("\nID : ");  scanf("%d", &i_id);
  194.     for (int i = 0; i < p.x; i++)
  195.         if (p.SV[i].id == i_id)
  196.         {
  197.             printf("\nID:  %d", p.SV[i].id);
  198.             printf("\nHo va ten: %s", p.SV[i].Hoten);
  199.             printf("\nLop : %s", p.SV[i].lop);
  200.             printf("\nDiem chuyen can : %2.3f", p.SV[i].CC);
  201.             printf("\nDiem giua ki : %2.3f", p.SV[i].GK);
  202.             printf("\nDiem Cuoi ki : %2.3f", p.SV[i].CK);
  203.         }
  204. }
  205. int main()
  206. {
  207.     struct list dssv;
  208.     dssv.x = 0;
  209.     int chon;
  210.     do
  211.     {
  212.         system("CLS");
  213.         fflush(stdin);
  214.         printf("\n1: Them thong tin\n2: Xoa\n3: Edit\n4: Xuat danh sach\n5: Tim Min Max\n6: Tim kiem theo ID\n7: Sap xep\n8: Thoat\n");
  215.         scanf("%d", &chon);
  216.         switch (chon)
  217.         {
  218.         case 1:
  219.             themtt(dssv);
  220.             break;
  221.         case 2:
  222.             xoatt(dssv);
  223.             break;
  224.         case 3:
  225.             edit(dssv);
  226.             break;
  227.         case 4:
  228.             xuatds(dssv);
  229.             break;
  230.         case 5:
  231.             timMaxMin(dssv);
  232.             break;
  233.         case 6:
  234.             timID(dssv);
  235.             break;
  236.         case 7:
  237.             sapxep(dssv);
  238.             break;
  239.         case 8:
  240.             return 0;
  241.  
  242.         }
  243.     } while (1);
  244.     // Sap xep
  245.  
  246.     return 0;
  247. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement