Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Giúp bài tập này! còn hàm xóa toàn bộ danh sách

  1. #1
    Ngày gia nhập
    04 2008
    Bài viết
    4

    Smile Giúp bài tập này! còn hàm xóa toàn bộ danh sách

    C Code:
    1. #include <stdio.h>
    2. #include <string.h>
    3. #include <conio.h>
    4. #include <stdlib.h>
    5. #define NULL 0
    6.  
    7.  
    8. // chay bang Dev C++
    9. // muon chay tren Turbo C thi sua ham xemfile cho sinhvienfile.txt thanh sinhvien.txt
    10. typedef struct
    11. {
    12.     char masv[8];
    13.     char ten[30];
    14.     float dtb;
    15. } SV;
    16.  
    17.  
    18. typedef struct
    19. {
    20.     int n;
    21.     SV *e;
    22.     unsigned max;
    23. } SV_List;
    24.  
    25.  
    26. //-------------------------------------------------------
    27. // Xay dung ham khoi tao.
    28. void KhoiTao(SV_List &dssv)
    29. {
    30.     dssv.n=0;
    31.     dssv.max=64;
    32.     dssv.e= (SV*)calloc(sizeof(SV),dssv.max);
    33.     FILE* f=fopen("sinhvien.txt","w");
    34.     fclose(f);
    35. }
    36.  
    37. //-------------------------------------------------------
    38. // Xay dung ham nhap mot sinh vien.
    39. void Nhap1SV(SV &x)
    40. {
    41.     /*int n;
    42.     printf("nhap vao gia tri cua n: ");
    43.     scanf("%d",&n);
    44.     for(int i=0;i<n;i++)
    45.     {*/
    46.             //printf("nhap vao sv thu %d\n",i+1);
    47.             printf(" Ma so : ");
    48.             fflush(stdin);
    49.             gets(x.masv);
    50.             if(strcmp(x.masv," ")!=0)
    51.             {
    52.             printf(" Ten : ");
    53.             fflush(stdin);
    54.             gets(x.ten);
    55.             printf("Diem trung binh : ");
    56.             float f;
    57.             scanf("%f",&f);
    58.             x.dtb=f;
    59.             }
    60.     //}
    61. }
    62.  
    63. //-------------------------------------------------------
    64. // Xay dung ham them mot sinh vien.
    65. void Them(SV x,SV_List &ds)
    66. {
    67.     FILE* f;
    68.     f=fopen("sinhvien.txt","a");
    69.     if(f!=NULL)
    70.     {
    71.      fprintf(f,"%-30s%-10s%-3.2f\n",x.ten,x.masv,x.dtb);
    72.     }
    73.     fclose(f);
    74.     ds.e[ds.n++]=x;
    75.     printf("\nbam phim bat ky de tiep tuc");
    76.     getch();
    77. }
    78.  
    79. //-------------------------------------------------------
    80. //Xay dung ham tim kiem hoc sinh bat ky trong danh sach
    81. void Timkiem(SV_List dssv)
    82. {
    83.  char ch[30];
    84.  int found=0;
    85.  printf("\nNhap ten sinh vien can tim:");
    86.  fflush(stdin);
    87.  gets(ch);
    88.  for(int i=0;i<dssv.n;i++)
    89.  {
    90.    if(strcmp(ch,dssv.e[i].ten)==0)
    91.    {
    92.     printf("Ho ten:%s\n",dssv.e[i].ten);
    93.     printf("MSSV:%s\n",dssv.e[i].masv);
    94.     printf("DTB:%f\n",dssv.e[i].dtb);
    95.     found=1;
    96.     }
    97.     }
    98. if(found==0) printf("\nKhong tim thay!");
    99. printf("\nbam phim bat ky de tiep tuc");
    100.     getch();
    101.  
    102. }
    103.  
    104.  
    105. //-------------------------------------------------------
    106. //Xay dung ham xoa toan bo danh sach
    107. void XoaDS(SV_List& dssv)
    108. {
    109.     char c;
    110.     printf("\nBan co chac muon xoa danh sach(y/n):");
    111.     scanf("%c",&c);
    112.     if(c=='y') dssv.e=NULL;
    113. }
    114.  
    115. //Xay dung ham xoa mot sinh vien trong danh sach
    116. void XoaDS1(SV_List& dssv)
    117. {
    118.      char ch[30];
    119.      //int found=0;
    120.      printf("\nNhap ten sinh vien can tim:");
    121.      fflush(stdin);
    122.      gets(ch);
    123.      for(int i=0;i<dssv.n;i++)
    124.      {
    125.        if(strcmp(ch,dssv.e[i].ten)==0)
    126.        {
    127.            // point cuat is i
    128.            for (int j = i; j < (dssv.n-1) ;  j++)
    129.            {
    130.                 dssv.e[j] = dssv.e[j+1];
    131.            }
    132.            dssv.n--;
    133.        }
    134.        /*
    135.         printf("Ho ten:%s\n",dssv.e[i].ten);
    136.         printf("MSSV:%s\n",dssv.e[i].masv);
    137.         printf("DTB:%f\n",dssv.e[i].dtb);
    138.         printf("\nCo muon xoa khong (C/K)? ");
    139.          do {
    140.            traloi = toupper(getch());
    141.          } while (traloi != 'C' && traloi != 'K');
    142.          putc(traloi, stdout);
    143.          if (traloi == 'C')
    144.          {
    145.            //n--;
    146.            memcpy(&dssv[i], &dssv[i+1], (SV*)calloc(sizeof(SV),dssv.max);
    147.            break;
    148.          }*/
    149.      
    150.       else
    151.         i++;
    152.     }
    153.  
    154. }
    155.  
    156. //-------------------------------------------------------
    157. // Xay dung ham xuat danh sach.
    158. void XuatDS(SV_List dssv)
    159. {
    160.     int i=0;
    161.     printf("\n%-6s%-30s%-10s%-10s","STT","HO TEN","MSSV","DIEM TB");
    162.     for(i=0;i<dssv.n;i++)
    163.     printf("\n%-6d%-30s%-10s%-10.2f",i+1,dssv.e[i].ten,dssv.e[i].masv,dssv.e[i].dtb);
    164.     printf("\nbam phim bat ky de tiep tuc");
    165.     getch();
    166. }
    167.  
    168. //-------------------------------------------------------
    169. //Sap xep danh sach theo diem trung binh
    170. void DSthutu(SV_List dssv)
    171. {
    172.   for(int i=0;i<dssv.n-1;i++)
    173.     for(int j=i+1;j<dssv.n;j++)
    174.     if(dssv.e[i].dtb < dssv.e[j].dtb)
    175.     {
    176.        SV temp;
    177.        temp=dssv.e[i];
    178.        dssv.e[i]=dssv.e[j];
    179.        dssv.e[j]=temp;
    180.     }
    181.   XuatDS(dssv);
    182. }
    183.  
    184.  
    185. //-------------------------------------------------------
    186. //Xem danh sach sv co san trong file
    187. void Xemfile()
    188. {
    189.  FILE* f;
    190.  printf("\n%-30s%-10s%-10s\n","HO TEN","MSSV","DIEM TB");
    191.  f=fopen("sinhvien.txt","r");
    192.  if(f!=NULL)
    193.    while(!feof(f))
    194.     {
    195.      printf("%c",fgetc(f));
    196.     }
    197.  fclose(f);
    198.  printf("\nbam phim bat ky de tiep tuc");
    199.  getch();
    200. }
    201. //-------------------------------------------------------
    202. // Chuong trinh chinh.
    203. void main()
    204. {
    205.    SV_List dssv;
    206.    int c;
    207.    KhoiTao(dssv);
    208.    while(1)
    209.    {
    210.        system("cls");
    211.        printf("1.Them 1 sinh vien\n");
    212.        printf("2.Xoa danh sach\n");
    213.        printf("3.Tim 1 sinh vien trong danh sach\n");
    214.        printf("4.Xem danh sach\n");
    215.        printf("5.Xem danh sach theo thu tu diem trung binh tu cao xuong thap\n");
    216.        printf("6.Xem danh sach tu file\n");
    217.        printf("7.Xoa toan bo danh sach\n");
    218.        printf("8.Thoat\n");
    219.        printf("Bam chon:");
    220.        scanf("%d",&c);
    221.        while(c<1 || c>7)  {printf("Bam sai so\n"); fflush(stdin);
    222.        printf("\nBam chon:"); scanf("%d",&c);}
    223.        if(c==1)
    224.        {
    225.          SV x;
    226.          Nhap1SV(x);
    227.          Them(x,dssv);
    228.        }
    229.  
    230.        else if(c==2)
    231.          XoaDS1(dssv);
    232.        else if(c==3)
    233.            Timkiem(dssv);
    234.        else if(c==4)
    235.            XuatDS(dssv);
    236.        else if(c==5)
    237.            DSthutu(dssv);
    238.        else if(c==6)
    239.            Xemfile();
    240.        else if(c==7)
    241.            XoaDS(dssv);
    242.        else break;
    243.    }
    244.    
    245.    
    246. }

    ------
    Đặt code vào cặp thẻ tag nha bạn.
    Đã được chỉnh sửa lần cuối bởi Forlorn_hope : 20-04-2008 lúc 05:07 PM.

  2. #2
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Bỏ vào thẻ code đi bạn , please ! Mình chẳng thấy cái gì cả . T_T

  3. #3
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Bài này có nhiều trên diễn đàn rồi.
    Theo mình thấy có một vài bạn đưa bài có "đề giống nhau", nhưng các bạn thì làm khác nhau (Đó là điều tốt rồi) -> Bài quản lý sinh viên (của trường tự nhiên thì phải).
    Đề nghị các bạn tự code lấy, sai điểm nào, thắc mắc gì thì đưa lên, chứ không ai rảnh mà code cho các bạn hết được.
    Đã có rất nhiều bạn tuy đưa lên (nhưng đã code hết, chỉ hỏi thắc mắc, vấn đề không hiểu), và chỉ cần sự giúp đỡ của một vài bài viết là xong.
    Do đó, bạn nên tự làm và post lên thắc mắc.
    Thân !!!
    Đã được chỉnh sửa lần cuối bởi Forlorn_hope : 20-04-2008 lúc 05:16 PM.
    Không biết ghi gì luôn ...

  4. #4
    Ngày gia nhập
    04 2008
    Bài viết
    4

    mình cảm ơn các bạn nhiều!bài đó mình tự làm mà

Các đề tài tương tự

  1. Mã nguồn C Lỗi xóa node trong danh sách liên kết đơn. Giúp mình với, cám ơn nhiều !!!
    Gửi bởi shizuoka trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 09-09-2012, 09:02 PM
  2. Xóa 1 sv trong danh sách, giúp mình
    Gửi bởi phongnhatchi trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 09-08-2010, 08:58 AM
  3. code xóa node trong danh sách liên kết. giúp sửa
    Gửi bởi vanmeo trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 12-07-2010, 02:21 PM
  4. xóa phần tử cuối trong danh sách liên kết? cần giúp
    Gửi bởi lklnn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 21-04-2010, 08:58 PM
  5. DSLK trên C. Chèn và xóa phần tử của danh sách. Sửa lỗi giúp mình!
    Gửi bởi doanloc0001 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 08-01-2010, 05:26 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn