Advertisement
TrungVan1519

Untitled

Jul 6th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <malloc.h>
  4.  
  5. typedef struct
  6. {
  7.     char name[20];
  8.     int age;
  9.     float score;
  10. }Student;
  11.  
  12. typedef struct NODE
  13. {
  14.     Student Data;
  15.     struct NODE* pNext;
  16. }NODE;
  17.  
  18. typedef struct
  19. {
  20.     NODE* pHead;
  21.     NODE* pTail;
  22. }Tlist;
  23.  
  24. void Create_Tlist(Tlist x)
  25. {
  26.     x.pHead = x.pTail = NULL;
  27. }
  28.  
  29. NODE* Create_NODE()
  30. {
  31.     NODE* p = (NODE*)malloc(sizeof(NODE));
  32.     if(p == NULL)
  33.     {
  34.         printf("Khong du bo nho");
  35.     }
  36.     p ->pNext = NULL;
  37.     return p;
  38. }
  39.  
  40. void Add_Last(Tlist *x, NODE *p)
  41. {
  42.     if(x ->pHead == NULL)
  43.     {
  44.         x ->pHead = x ->pTail = p;
  45.     }
  46.     else
  47.     {
  48.         x ->pTail ->pNext = p;
  49.         x ->pTail = p;
  50.     }
  51. }
  52.  
  53.  
  54. void Input_NODE(NODE *p)
  55. {
  56.     printf("Nhap ho ten: ");
  57.     fflush(stdin);
  58.     gets(p ->Data.name);
  59.  
  60.     printf("Nhap tuoi: ");
  61.     scanf("%d", &p ->Data.age);
  62.     fflush(stdin);
  63.  
  64.     printf("Nhap diem: ");
  65.     scanf("%f", &p->Data.score);
  66.     fflush(stdin);
  67.  
  68.     p->pNext = NULL;
  69. }
  70.  
  71. void Input_Tlist(Tlist *x)
  72. {
  73.     NODE* p = Create_NODE();
  74.     Input_NODE(p);
  75.     Add_Last(x, p);
  76. }
  77.  
  78. void Output_NODE(NODE* p, int dem)
  79. {
  80.     printf("\t|%5d|%25s|%5d|%5.2f|\n", dem, p ->Data.name, p ->Data.age, p->Data.score);
  81. }
  82.  
  83. void Output_Tlist(Tlist x)
  84. {
  85.     int dem = 1;
  86.     NODE* y =x.pHead;
  87.     printf("\t ___________________________________________\n");
  88.     printf("\t|%5s|%25s|%5s|%5s|\n", "STT", "Ho va ten", "Tuoi", "Diem");
  89.     printf("\t|%5s|%25s|%5s|%5s|\n", "-----", "-------------------------", "-----", "-----");
  90.     while(y != NULL)
  91.     {
  92.         Output_NODE(y, dem);
  93.         dem++;
  94.         y = y ->pNext;
  95.     }
  96.     printf("\t|%5s|%25s|%5s|%5s|\n", "_____", "_________________________", "_____", "_____");
  97. }
  98. void Menu()
  99. {
  100.     Tlist x;
  101.     int n, i;
  102.     Create_Tlist(x);
  103.  
  104.     printf("Nhap so luong sinh vien: ");
  105.     scanf("%d", &n);
  106.     for(i = 0; i < n; i++)
  107.     {
  108.         Input_Tlist(&x);
  109.     }
  110.  
  111.     Output_Tlist(x);
  112. }
  113. int main()
  114. {
  115.     Menu();
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement