Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 22 kết quả

Đề tài: Quản lí học sinh, sinh viên bằng ngôn ngữ C (Mã nguồn)

  1. #1
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mặc định Quản lí học sinh, sinh viên bằng ngôn ngữ C (Mã nguồn)

    Đây là code quản lí học sinh.
    C Code:
    1. /* Bai tap 1_61 - Quan ly danh sach hoc sinh */
    2. #include <stdio.h>
    3.  
    4. #define MAX 100
    5.  
    6. typedef struct hocsinh {
    7.   char hoten[35];
    8.   char lop[7];
    9.   float diemtoan, diemly, diemhoa;
    10. } HOCSINH;
    11.  
    12. HOCSINH danhsach[MAX];
    13. int numrecords = 0;
    14. char filename[] = "DANHSACH.DAT";
    15.  
    16. int menu()
    17. {
    18.   char c;
    19.   clrscr();
    20.   printf("+----- Menu -----+");
    21.   printf("\n+----------------+");
    22.   printf("\n+ 1. Nhap        +");
    23.   printf("\n+ 2. Xoa         +");
    24.   printf("\n+ 3. Sua doi     +");
    25.   printf("\n+ 4. Liet ke     +");
    26.   printf("\n+----------------+");
    27.   printf("\n+ 5. Luu len dia +");
    28.   printf("\n+ 6. Lay tu dia  +");
    29.   printf("\n+----------------+");
    30.   printf("\n+ 0. Thoat       +");
    31.   printf("\n+----------------+");
    32.   printf("\nChon muc : ");
    33.   do {
    34.     c = getch();
    35.   } while (c<'0' || c>'6');
    36.   return c-'0';
    37. }
    38.  
    39. void nhapmoi()
    40. {
    41.   int done = 0;
    42.   char hoten[35];
    43.   float diem;
    44.  
    45.   do {
    46.     printf("\nHo ten (trong de thoat) : ");
    47.     gets(hoten);
    48.     if (strlen(hoten) == 0)
    49.       done = 1;
    50.     else
    51.     {
    52.       strcpy(danhsach[numrecords].hoten, hoten);
    53.       printf("\nLop : ");
    54.       gets(danhsach[numrecords].lop);
    55.       printf("\nDiem toan : ");
    56.       scanf("%f", &diem);
    57.       danhsach[numrecords].diemtoan = diem;
    58.       printf("\nDiem ly : ");
    59.       scanf("%f", &diem);
    60.       danhsach[numrecords].diemly = diem;
    61.       printf("\nDiem hoa : ");
    62.       scanf("%f%*c", &diem);
    63.       danhsach[numrecords].diemhoa = diem;
    64.       numrecords++;
    65.     }
    66.   } while (!done);
    67. }
    68.  
    69. void xoa()
    70. {
    71.   int i, done = 0, found, dump[MAX];
    72.   char hoten[35], hotentmp[35];
    73.  
    74.   while (!done)
    75.   {
    76.     if (numrecords != 0)
    77.     {
    78.       printf("\nHo ten hoc sinh can xoa (trong de thoat) : ");
    79.       gets(hoten);
    80.       if (strlen(hoten) == 0)
    81.         done = 1;
    82.       else
    83.       {
    84.         i = found = 0;
    85.         do {
    86.            strcpy(hotentmp,danhsach[i].hoten);
    87.           if (strcmp(strupr(hoten), strupr(hotentmp)) == 0)
    88.             dump[found++] = i;
    89.           i++;
    90.         } while (i<numrecords);
    91.         if (!found)
    92.           printf("\nKhong tim thay hoc sinh co ten %s", hoten);
    93.         else
    94.         {
    95.           for (i=0; i<found; i++)
    96.           {
    97.             printf("\n%3d %-35s %-7s %4.1f %4.1f %4.1f", i+1, danhsach[dump[i]].hoten,danhsach[dump[i]].lop,
    98.              danhsach[dump[i]].diemtoan, danhsach[dump[i]].diemly, danhsach[dump[i]].diemhoa);
    99.           }
    100.           printf("\n\nTim thay %d hoc sinh.", found);
    101.           printf("\nChon thu tu muon xoa (neu muon huy bo thi chon so khong nam trong pham vi): ");
    102.           scanf("%d", &i);
    103.           if (i >= 1 && i <= found)
    104.           {
    105.             for (found=dump[i-1]; found<numrecords-1; found++)
    106.               danhsach[found] = danhsach[found+1];
    107.             numrecords--;
    108.             printf("\nDa huy");
    109.           }
    110.           else
    111.             printf("\nViec xoa bi huy bo.");
    112.         }
    113.         done = 1;
    114.       }
    115.       getch();
    116.     }
    117.     else
    118.       done = 1;
    119.   }
    120. }
    121.  
    122. void sua()
    123. {
    124.   int i, done = 0, found, dump[MAX];
    125.   char hoten[35], hotentmp[35];
    126.   float diem;
    127.  
    128.   while (!done)
    129.   {
    130.     if (numrecords != 0)
    131.     {
    132.       printf("\nHo ten hoc sinh can sua (trong de thoat) : ");
    133.       gets(hoten);
    134.       if (strlen(hoten) == 0)
    135.         done = 1;
    136.       else
    137.       {
    138.         i = found = 0;
    139.         do {
    140.            strcpy(hotentmp,danhsach[i].hoten);
    141.           if (strcmp(strupr(hoten), strupr(hotentmp)) == 0)
    142.             dump[found++] = i;
    143.           i++;
    144.         } while (i<numrecords);
    145.         if (!found)
    146.           printf("\nKhong tim thay hoc sinh co ten %s", hoten);
    147.         else
    148.         {
    149.           for (i=0; i<found; i++)
    150.           {
    151.             printf("\n%3d %-35s %-7s %4.1f %4.1f %4.1f", i+1, danhsach[dump[i]].hoten,danhsach[dump[i]].lop,
    152.              danhsach[dump[i]].diemtoan, danhsach[dump[i]].diemly, danhsach[dump[i]].diemhoa);
    153.           }
    154.           printf("\n\nTim thay %d hoc sinh.", found);
    155.           printf("\nChon thu tu muon sua doi (neu muon huy bo thi chon so khong nam trong pham vi): ");
    156.           scanf("%d%*c", &i);
    157.           if (i >= 1 && i <= found)
    158.           {
    159.             printf("\n%s\nHo ten : ", danhsach[dump[i-1]].hoten);
    160.             gets(danhsach[dump[i-1]].hoten);
    161.             printf("\n%s\nLop : ", danhsach[dump[i-1]].lop);
    162.             gets(danhsach[dump[i-1]].lop);
    163.             printf("\n%4.2f\nDiem toan : ",danhsach[dump[i-1]].diemtoan);
    164.             scanf("%f", &diem);
    165.             danhsach[dump[i-1]].diemtoan = diem;
    166.             printf("\n%4.2f\nDiem ly : ", danhsach[dump[i-1]].diemly);
    167.             scanf("%f", &diem);
    168.             danhsach[dump[i-1]].diemly = diem;
    169.             printf("\n%4.2f\nDiem hoa : ", danhsach[dump[i-1]].diemhoa);
    170.             scanf("%f%*c", &diem);
    171.             danhsach[dump[i-1]].diemhoa = diem;
    172.             printf("\nDa thay doi");
    173.           }
    174.           else
    175.             printf("\nViec thay doi bi huy bo.");
    176.         }
    177.         done = 1;
    178.       }
    179.       getch();
    180.     }
    181.     else
    182.       done = 1;
    183.   }
    184. }
    185.  
    186. void lietke()
    187. {
    188.   int i;
    189.  
    190.   if (numrecords != 0)
    191.   {
    192.     printf("\n+-----+------------------------------------+--------+------+------+------+");
    193.     printf("\n| STT |         H O   V A   T E N          |  L O P | TOAN |  LY  |  HOA |");
    194.     printf("\n+-----+------------------------------------+--------+------+------+------+");
    195.     for (i=0; i<numrecords; i++)
    196.     {
    197.       printf("\n| %3d | ", i+1);
    198.       printf("%-35s| %-7s| %4.1f | %4.1f | %4.1f |", danhsach[i].hoten,danhsach[i].lop,
    199.              danhsach[i].diemtoan, danhsach[i].diemly, danhsach[i].diemhoa);
    200.     }
    201.     printf("\n+-----+------------------------------------+--------+------+------+------+");
    202.   }
    203.   getch();
    204. }
    205.  
    206. void getdata()
    207. {
    208.   char c;
    209.   int start, nrec;
    210.   FILE *fp;
    211.   long curpos, length;
    212.  
    213.   start = 0;
    214.   if (numrecords != 0)
    215.   {
    216.     printf("\nDang co du lieu trong bo nho. Co muon noi them vao khong?(C/K)");
    217.     c = toupper(getch());
    218.     if (c == 'C')
    219.       start = numrecords;
    220.     else
    221.       start = 0;
    222.   }
    223.   if ((fp = fopen(filename, "r")) == NULL)
    224.     printf("\nKhong the mo tap tin %s", filename);
    225.   else
    226.   {
    227.     curpos = ftell(fp);
    228.     fseek(fp, 0L, SEEK_END);
    229.     length = ftell(fp);
    230.     fseek(fp, curpos, SEEK_SET);
    231.     nrec = length / sizeof(HOCSINH);
    232.     fread(&danhsach[start], sizeof(HOCSINH), nrec, fp);
    233.     fclose(fp);
    234.     printf("\nThem vao %d records.", nrec);
    235.     numrecords = numrecords + nrec;
    236.     getch();
    237.   }
    238. }
    239.  
    240. void putdata()
    241. {
    242.   FILE *fp;
    243.  
    244.   if ((fp = fopen(filename, "w+")) == NULL)
    245.     printf("\nKhong thay ghi tap tin %s", filename);
    246.   else
    247.   {
    248.     fwrite(&danhsach[0], sizeof(HOCSINH), numrecords, fp);
    249.     fclose(fp);
    250.     printf("\nGhi %d records.", numrecords);
    251.     getch();
    252.   }
    253. }
    254.  
    255. void main()
    256. {
    257.   int chon, done = 0;
    258.  
    259.   do {
    260.     chon = menu();
    261.     switch(chon)
    262.     {
    263.       case 1 : nhapmoi();
    264.                break;
    265.       case 2 : xoa();
    266.                break;
    267.       case 3 : sua();
    268.                break;
    269.       case 4 : lietke();
    270.                break;
    271.       case 5 : putdata();
    272.                break;
    273.       case 6 : getdata();
    274.                break;
    275.       case 0 : done = 1;
    276.     }
    277.   } while (!done);
    278. }

  2. #2
    Ngày gia nhập
    08 2008
    Bài viết
    6

    không chay được hình như thiếu thư viện thì phải

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

    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #include <ctype.h> 
    thêm đầy đủ thư viện là chạy!

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

    Code:
    #include "stdio.h"
    #include "conio.h"
    #include "string.h"
    #include "iostream"
    using namespace std;
    thế này là ok luôn
    Bài lam rất hay

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

    Sao em chạy thử nó đoạn code trên C-Free (chạy hok báo lỗi) nhưng khi xuất ra các lựa chọn trên màn hình, thì chọn 1 : nhập dữ liệu vào, thì nó cứ lặp đi lặp lại cái Menu hoài vậy.... Ai biết chỉ mình khắc phục với...... Thankss nhìu

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

    Mặc định Quản lí học sinh, sinh viên bằng ngôn ngữ C (Mã nguồn)

    Sao em chạy thử nó đoạn code trên C-Free (chạy hok báo lỗi) nhưng khi xuất ra các lựa chọn trên màn hình, thì chọn 1 : nhập dữ liệu vào, thì nó cứ lặp đi lặp lại cái Menu hoài vậy.... Ai biết chỉ mình khắc phục với...... Thankss nhìu
    - do bạn chưa kiểm soát được kiểu dữ liệu
    - bạn ko kiểm soát được vòng lặp

    p/s: không biết có đúng ko

    -
    Đã được chỉnh sửa lần cuối bởi langtu072 : 07-12-2008 lúc 08:23 PM.

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

    mình vừa chạy chương trình của bạn . 1 mình 1 số gop ý với cái lỗi của bạn như sau :
    1. bài của bạn là quản lý học sinh . khi bạn cho nhập học sinh . tại sao bạn không thêm 1 vòng for để kiểm tra số học sinh bạn nhập vào là bao nhiêu.
    nghĩa là . ví dụ: printf("nhập vào số lượng học sinh cần nhập là bao nhiêu:")
    ví dụ là 60 chẳng hạn . rồi cứ thế là bạn nhập từ 1 -> 60 khi nào đến 60 chương trình tự thoát khỏi nhập
    2. cách khác là . cứ sau mỗi lần nhập thông tin xong cho 1 người. bạn cho 1 dòng printf("bạn có muốn tiếp tục nhập nữa không ? ( Y/N )"); nếu Y thì nhập tiếp còn N thì thoát ra menu chính . cách này thì bạn phải kai báo cho nó 1 cờ flag='y';

    ví dụ cho cách 2
    C Code:
    1. void nhapmoi()
    2. {
    3.  // int done = 0;
    4.   char hoten[35];
    5.   float diem;
    6.  
    7. {
    8.     flag='y';
    9.     printf("\n Nhap vao chi tiet thong tin hoc sinh:");
    10.    for (i=0;i<5 && flag=='y';i++)
    11.     {
    12.  
    13.       strcpy(danhsach[numrecords].hoten, hoten);
    14.       printf("\nLop : ");
    15.       gets(danhsach[numrecords].lop);
    16.       printf("\nDiem toan : ");
    17.       scanf("%f", &diem);
    18.       danhsach[numrecords].diemtoan = diem;
    19.       printf("\nDiem ly : ");
    20.       scanf("%f", &diem);
    21.       danhsach[numrecords].diemly = diem;
    22.       printf("\nDiem hoa : ");
    23.       scanf("%f%*c", &diem);
    24.       danhsach[numrecords].diemhoa = diem;
    25.       numrecords++;
    26.       printf("\n Ban co muon tiep tuc nhap hoc sinh nua ko?(y/n)");
    27.      fflush(stdin);
    28.      scanf("%c",&flag);
    29.     }
    30.   }
    31. }

    không thì như cách 1 :
    C Code:
    1. int i;
    2. for(i=0;i<n;i++)
    3.    {
    4.       printf("\nNhap so luong hoc sinh can nhap %d:",i+1);
    5.      // nhập thông tin ở đây
    6.  
    7.    }
    Đã được chỉnh sửa lần cuối bởi langtu072 : 07-12-2008 lúc 08:46 PM.

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

    C Code:
    1. /* Bai tap 1_61 - Quan ly danh sach hoc sinh */
    2. #include <stdio.h>
    3. #include <stdio.h>
    4. #include <conio.h>
    5. #include <string.h>
    6. #include <ctype.h>
    7.  
    8. #define MAX 100
    9.  
    10. typedef struct hocsinh {
    11.   char hoten[35];
    12.   char lop[7];
    13.   float diemtoan, diemly, diemhoa;
    14. } HOCSINH;
    15.  
    16. HOCSINH danhsach[MAX];
    17. int numrecords = 0;
    18. char filename[] = "DANHSACH.DAT";
    19.  
    20. int menu()
    21. {
    22.   char c;
    23.   clrscr();
    24.   printf("+----- Menu -----+");
    25.   printf("\n+----------------+");
    26.   printf("\n+ 1. Nhap        +");
    27.   printf("\n+ 2. Xoa         +");
    28.   printf("\n+ 3. Sua doi     +");
    29.   printf("\n+ 4. Liet ke     +");
    30.   printf("\n+----------------+");
    31.   printf("\n+ 5. Luu len dia +");
    32.   printf("\n+ 6. Lay tu dia  +");
    33.   printf("\n+----------------+");
    34.   printf("\n+ 0. Thoat       +");
    35.   printf("\n+----------------+");
    36.   printf("\nChon muc : ");
    37.   do {
    38.     c = getch();
    39.   } while (c<'0' || c>'6');
    40.   return c-'0';
    41. }
    42.  
    43. void nhapmoi()
    44. {
    45.   int done = 0;
    46.   char hoten[35];
    47.   float diem;
    48.   int i,n,y;
    49.   int flag;
    50.  
    51.         flag='y';
    52.     printf("\n Nhap vao chi tiet thong tin hoc sinh:");
    53.     for (i=0;i<5 && flag=='y';i++)
    54.     {
    55.       printf("\n Nhap thong tin cho  hs thu  %d:",i+1);
    56.       fflush(stdin);
    57.       strcpy(danhsach[numrecords].hoten, hoten);
    58.       printf("\nLop : ");
    59.       gets(danhsach[numrecords].lop);
    60.       printf("\nDiem toan : ");
    61.       scanf("%f", &diem);
    62.       danhsach[numrecords].diemtoan = diem;
    63.       printf("\nDiem ly : ");
    64.       scanf("%f", &diem);
    65.       danhsach[numrecords].diemly = diem;
    66.       printf("\nDiem hoa : ");
    67.       scanf("%f%*c", &diem);
    68.       danhsach[numrecords].diemhoa = diem;
    69.       //numrecords++;
    70.       printf("\n Ban co muon tiep tuc nhap hoc sinh nua ko?(y/n)");
    71.         fflush(stdin);
    72.         scanf("%c",&flag);
    73.       }
    74.  }
    75.  
    76. void xoa()
    77. {
    78.   int i, done = 0, found, dump[MAX];
    79.   char hoten[35], hotentmp[35];
    80.  
    81.   while (!done)
    82.   {
    83.     if (numrecords != 0)
    84.     {
    85.       printf("\nHo ten hoc sinh can xoa (trong de thoat) : ");
    86.       gets(hoten);
    87.       if (strlen(hoten) == 0)
    88.         done = 1;
    89.       else
    90.       {
    91.         i = found = 0;
    92.         do {
    93.            strcpy(hotentmp,danhsach[i].hoten);
    94.           if (strcmp(strupr(hoten), strupr(hotentmp)) == 0)
    95.             dump[found++] = i;
    96.           i++;
    97.         } while (i<numrecords);
    98.         if (!found)
    99.           printf("\nKhong tim thay hoc sinh co ten %s", hoten);
    100.         else
    101.         {
    102.           for (i=0; i<found; i++)
    103.           {
    104.             printf("\n%3d %-35s %-7s %4.1f %4.1f %4.1f", i+1, danhsach[dump[i]].hoten,danhsach[dump[i]].lop,
    105.              danhsach[dump[i]].diemtoan, danhsach[dump[i]].diemly, danhsach[dump[i]].diemhoa);
    106.           }
    107.           printf("\n\nTim thay %d hoc sinh.", found);
    108.           printf("\nChon thu tu muon xoa (neu muon huy bo thi chon so khong nam trong pham vi): ");
    109.           scanf("%d", &i);
    110.           if (i >= 1 && i <= found)
    111.           {
    112.             for (found=dump[i-1]; found<numrecords-1; found++)
    113.               danhsach[found] = danhsach[found+1];
    114.             numrecords--;
    115.             printf("\nDa huy");
    116.           }
    117.           else
    118.             printf("\nViec xoa bi huy bo.");
    119.         }
    120.         done = 1;
    121.       }
    122.       getch();
    123.     }
    124.     else
    125.       done = 1;
    126.   }
    127. }
    128.  
    129. void sua()
    130. {
    131.   int i, done = 0, found, dump[MAX];
    132.   char hoten[35], hotentmp[35];
    133.   float diem;
    134.  
    135.   while (!done)
    136.   {
    137.     if (numrecords != 0)
    138.     {
    139.       printf("\nHo ten hoc sinh can sua (trong de thoat) : ");
    140.       gets(hoten);
    141.       if (strlen(hoten) == 0)
    142.         done = 1;
    143.       else
    144.       {
    145.         i = found = 0;
    146.         do {
    147.            strcpy(hotentmp,danhsach[i].hoten);
    148.           if (strcmp(strupr(hoten), strupr(hotentmp)) == 0)
    149.             dump[found++] = i;
    150.           i++;
    151.         } while (i<numrecords);
    152.         if (!found)
    153.           printf("\nKhong tim thay hoc sinh co ten %s", hoten);
    154.         else
    155.         {
    156.           for (i=0; i<found; i++)
    157.           {
    158.             printf("\n%3d %-35s %-7s %4.1f %4.1f %4.1f", i+1, danhsach[dump[i]].hoten,danhsach[dump[i]].lop,
    159.              danhsach[dump[i]].diemtoan, danhsach[dump[i]].diemly, danhsach[dump[i]].diemhoa);
    160.           }
    161.           printf("\n\nTim thay %d hoc sinh.", found);
    162.           printf("\nChon thu tu muon sua doi (neu muon huy bo thi chon so khong nam trong pham vi): ");
    163.           scanf("%d%*c", &i);
    164.           if (i >= 1 && i <= found)
    165.           {
    166.             printf("\n%s\nHo ten : ", danhsach[dump[i-1]].hoten);
    167.             gets(danhsach[dump[i-1]].hoten);
    168.             printf("\n%s\nLop : ", danhsach[dump[i-1]].lop);
    169.             gets(danhsach[dump[i-1]].lop);
    170.             printf("\n%4.2f\nDiem toan : ",danhsach[dump[i-1]].diemtoan);
    171.             scanf("%f", &diem);
    172.             danhsach[dump[i-1]].diemtoan = diem;
    173.             printf("\n%4.2f\nDiem ly : ", danhsach[dump[i-1]].diemly);
    174.             scanf("%f", &diem);
    175.             danhsach[dump[i-1]].diemly = diem;
    176.             printf("\n%4.2f\nDiem hoa : ", danhsach[dump[i-1]].diemhoa);
    177.             scanf("%f%*c", &diem);
    178.             danhsach[dump[i-1]].diemhoa = diem;
    179.             printf("\nDa thay doi");
    180.           }
    181.           else
    182.             printf("\nViec thay doi bi huy bo.");
    183.         }
    184.         done = 1;
    185.       }
    186.       getch();
    187.     }
    188.     else
    189.       done = 1;
    190.   }
    191. }
    192.  
    193. void lietke()
    194. {
    195.   int i;
    196.  
    197.   if (numrecords != 0)
    198.   {
    199.     printf("\n+-----+------------------------------------+--------+------+------+------+");
    200.     printf("\n| STT |         H O   V A   T E N          |  L O P | TOAN |  LY  |  HOA |");
    201.     printf("\n+-----+------------------------------------+--------+------+------+------+");
    202.     for (i=0; i<numrecords; i++)
    203.     {
    204.       printf("\n| %3d | ", i+1);
    205.       printf("%-35s| %-7s| %4.1f | %4.1f | %4.1f |", danhsach[i].hoten,danhsach[i].lop,
    206.              danhsach[i].diemtoan, danhsach[i].diemly, danhsach[i].diemhoa);
    207.     }
    208.     printf("\n+-----+------------------------------------+--------+------+------+------+");
    209.   }
    210.   getch();
    211. }
    212.  
    213. void getdata()
    214. {
    215.   char c;
    216.   int start, nrec;
    217.   FILE *fp;
    218.   long curpos, length;
    219.  
    220.   start = 0;
    221.   if (numrecords != 0)
    222.   {
    223.     printf("\nDang co du lieu trong bo nho. Co muon noi them vao khong?(C/K)");
    224.     c = toupper(getch());
    225.     if (c == 'C')
    226.       start = numrecords;
    227.     else
    228.       start = 0;
    229.   }
    230.   if ((fp = fopen(filename, "r")) == NULL)
    231.     printf("\nKhong the mo tap tin %s", filename);
    232.   else
    233.   {
    234.     curpos = ftell(fp);
    235.     fseek(fp, 0L, SEEK_END);
    236.     length = ftell(fp);
    237.     fseek(fp, curpos, SEEK_SET);
    238.     nrec = length / sizeof(HOCSINH);
    239.     fread(&danhsach[start], sizeof(HOCSINH), nrec, fp);
    240.     fclose(fp);
    241.     printf("\nThem vao %d records.", nrec);
    242.     numrecords = numrecords + nrec;
    243.     getch();
    244.   }
    245. }
    246.  
    247. void putdata()
    248. {
    249.   FILE *fp;
    250.  
    251.   if ((fp = fopen(filename, "w+")) == NULL)
    252.     printf("\nKhong thay ghi tap tin %s", filename);
    253.   else
    254.   {
    255.     fwrite(&danhsach[0], sizeof(HOCSINH), numrecords, fp);
    256.     fclose(fp);
    257.     printf("\nGhi %d records.", numrecords);
    258.     getch();
    259.   }
    260. }
    261.  
    262. void main()
    263. {
    264.   int chon, done = 0;
    265.  
    266.   do {
    267.     chon = menu();
    268.     switch(chon)
    269.     {
    270.       case 1 : nhapmoi();
    271.                break;
    272.       case 2 : xoa();
    273.                break;
    274.       case 3 : sua();
    275.                break;
    276.       case 4 : lietke();
    277.                break;
    278.       case 5 : putdata();
    279.                break;
    280.       case 6 : getdata();
    281.                break;
    282.       case 0 : done = 1;
    283.     }
    284.   } while (!done);
    285. }

    mình đã sửa cho bạn đây . không biết đúng yêu cầu của bạn chưa

  9. #9
    Ngày gia nhập
    11 2008
    Bài viết
    3

    Mình thấy bài của bạn như vậy là khá ổn rồi nhưng còn 1 chút chưa được thực tế lắm đó là số lượng sinh viên còn có hạn, chỉ kết thúc ở mốc 100. Có 2 vấn đề đặt ra là số sinh viên lớn hơn 100 thì không đáp ứng được và số sinh viên nhỏ hơn 100 thì gây ra lãng phí bộ nhớ. Nếu bạn sử dụng hàm cấp phát động malloc và realloc (trong thư viện alloc.h) thì sẽ giải quyết ổn thỏa vấn đề này! Chúc may mắn.

    Mình cũng có một code về bài quản lý học sinh, các bạn tham khảo nhé!

    C Code:
    1. /*
    2. Bai tap lon cuoi mon C.
    3. Nguyen Minh Nhat BachKhoa-Aptech
    4. - Bai tap ve quan ly so luong sinh vien.
    5.     1. Thong tin ve sinh vien.
    6.         1.1> Nhap thong tin ve sinh vien (nhap moi hoac nhap them khi da co.).
    7.         1.2> Xem lai danh scah sinh vien vua moi nhap vao.
    8.     2. Sap xep lai cac sinh vien theo thu tu giam dan cua diem trung binh ba mon toan, ly, hoa.
    9.     3. Sap xep lai cac sinh vien theo thu tu abc cua ho ten, thong ke danh sach nhung sinh vien co diem lon hon 7.
    10.     4. Tim kiem sinh vien theo ho va ten.
    11. */
    12.  
    13.  
    14. #include <stdio.h>
    15. #include <conio.h>
    16. #include <alloc.h>
    17. #include <string.h>
    18. #include <stdlib.h>
    19. #include <ctype.h>
    20. //BIEN TOAN CUC
    21.     int b,i;
    22.     struct sinhvien
    23.     {
    24.     int maso;
    25.     float diem_toan;
    26.     float diem_ly;
    27.     float diem_hoa;
    28.     float diem_tb;
    29.     int ngaysinh;
    30.     int thangsinh;
    31.     int namsinh;
    32.     char ho_ten[25];
    33.     }*ssv;
    34.  
    35.     void nhapthongtin();
    36.     void sapxep_diem();
    37.     void sapxep_ten();
    38.     void timkiem();
    39.     void menu();
    40.  
    41.  
    42. // HAM MAIN()
    43. void main()
    44. {
    45.  
    46.     menu();
    47.     getch();
    48. }
    49.  
    50.  
    51. //HAM MENU
    52. void menu()
    53. {
    54.     clrscr();
    55.     int x,i;
    56.     printf("\n\n\n                  CHUONG TRINH QUAN LY SINH VIEN APTECH\n");
    57.     do
    58.     {
    59.     for(i = 0; i < 160; i++)
    60.     printf("*");
    61.     printf("\n");
    62.     printf(" **  1/ Thong tin sinh vien.                                                  **");
    63.     printf("\n **  2/ Sap xep theo thu tu giam dan cua diem trung binh.                     **");
    64.     printf("\n **  3/ Sap xep theo ho ten, in ra nhung sinh vien co diem trung binh tren 7. **");
    65.     printf("\n **  4/ Tim kiem sinh vien theo ho ten.                                       **");
    66.     printf("\n **  5/ Thoat khoi chuong trinh.                                              **\n");
    67.     for(i = 0; i < 160; i++)
    68.     printf("*");
    69.     printf("\n");
    70.     printf("\n Moi ban lua chon yeu cau:");
    71.     scanf("%d",&x);
    72.     switch(x)
    73.     {
    74.     case 1:
    75.         nhapthongtin(); //OK
    76.         break;
    77.     case 2:
    78.         sapxep_diem(); //OK
    79.         break;
    80.     case 3:
    81.         sapxep_ten();//OK
    82.         break;
    83.     case 4:
    84.         timkiem(); //OK*
    85.         break;
    86.     case 5: //OK
    87.         exit;
    88.         break;
    89.     default:
    90.         printf("\n Ban phai lua chon cac yeu cau tuong ung voi cac so nguyen tu 1 den 5.\n");
    91.     }
    92.     }while ((x!=1)&&(x!=2)&&(x!=3)&&(x!=4)&&(x!=5));
    93. }
    94.  
    95.  
    96. //HAM NHAP THONG TIN
    97. void nhapthongtin()
    98. {
    99.     int a,kt,k,t,j,ch;
    100.     char c,ctam[10];
    101.     do
    102.     {
    103.    clrscr();
    104.     printf(" 1/ THONG TIN SINH VIEN.");
    105.     printf(" \n\t1.1/ Bat dau nhap danh sinh vien (hoac them khi da co.).");
    106.     printf(" \n\t1.2/ Xem danh sach.");
    107.     printf(" \n\t1.3/ Quay lai lua chon.\n Moi ban chon: ");
    108.     scanf("%d",&a);
    109.     if(a==1)
    110.         {
    111.             if(b==0)
    112.             {
    113.             b=1; i=0;
    114.             ssv=(sinhvien*) malloc(1*sizeof(sinhvien));
    115.                 do
    116.                 {
    117.             clrscr();
    118.                 printf("\n\n-----------------------------------------\n\n");
    119.                 printf("\n Moi ban nhap ma so cua sinh vien %d:",i+1);
    120.                 c = getchar();
    121.                 gets(ctam);
    122.                 ssv[i].maso = atoi(ctam);
    123.                 printf("\n Moi ban nhap ho va ten cua sinh vien %d:",i+1);
    124.             //flushall();
    125.                 gets((ssv+i)->ho_ten);
    126.                 do
    127.                 {
    128.                 printf("\n Moi ban nhap ngay sinh cua sinh vien %d:",i+1);
    129.                 scanf("%d",& (ssv+i)->ngaysinh);
    130.                 if((ssv+i)->ngaysinh>31||(ssv+i)->ngaysinh<1)
    131.                 printf("\n Ban chi duoc nhap nam sinh tu 1 den 31.\n");
    132.                 }while ((ssv+i)->ngaysinh>31||(ssv+i)->ngaysinh<1);
    133.                 do
    134.                 {
    135.                 printf("\n Moi ban nhap thang sinh cua sinh vien %d:",i+1);
    136.                 scanf("%d",& (ssv+i)->thangsinh);
    137.                 if(((ssv+i)->thangsinh<1)||((ssv+i)->thangsinh>12))
    138.                 printf("\n Ban chi co the nhap thang sinh tu 1 den 12.\n");
    139.                 }while(((ssv+i)->thangsinh<1)||((ssv+i)->thangsinh>12));
    140.                 do
    141.                 {
    142.                 printf("\n Moi ban nhap nam sinh cua sinh vien %d:",i+1);
    143.                 scanf("%d",& (ssv+i)->namsinh);
    144.                 if((ssv+i)->namsinh>2010||(ssv+i)->namsinh<=1980)
    145.                 printf("\n Ban chi duoc nhap nam sinh tu 1980 den 2010.\n");
    146.                 }while ((ssv+i)->namsinh>2010||(ssv+i)->namsinh<=1980);
    147.                 do
    148.                 {
    149.                 printf("\n Moi ban nhap diem toan cua sinh vien %d:",i+1);
    150.                 scanf("%f",& (ssv+i)->diem_toan);
    151.                 if((ssv+i)->diem_toan<0||(ssv+i)->diem_toan>10)
    152.                 printf("\n Ban chi co the nhap diem tu 0 den 10.\n");
    153.                 }while((ssv+i)->diem_toan<0||(ssv+i)->diem_toan>10);
    154.                 do
    155.                 {
    156.                 printf("\n Moi ban nhap diem ly cua sinh vien %d:",i+1);
    157.                 scanf("%f",& (ssv+i)->diem_ly);
    158.                 if((ssv+i)->diem_ly<0||(ssv+i)->diem_ly>10)
    159.                 printf("\n Ban chi co the nhap diem tu 0 den 10.\n");
    160.                 }while((ssv+i)->diem_ly<0||(ssv+i)->diem_ly>10);
    161.                 do
    162.                 {
    163.                 printf("\n Moi ban nhap diem hoa cua sinh vien %d:",i+1);
    164.                 scanf("%f",& (ssv+i)->diem_hoa);
    165.                 if((ssv+i)->diem_hoa<0||(ssv+i)->diem_hoa>10)
    166.                 printf("\n Ban chi co the nhap diem tu 0 den 10.\n");
    167.                 }while((ssv+i)->diem_hoa<0||(ssv+i)->diem_hoa>10);
    168.                 //Nhap diem trung binh
    169.                 (ssv+i)->diem_tb =((ssv+i)->diem_toan + (ssv+i)->diem_ly + (ssv+i)->diem_hoa)/3;
    170.                 printf("\n Ban vua nhap vao sinh vien %s ma so %d co diem trung binh la %f \n ",(ssv+i)->ho_ten,(ssv+i)->maso,(ssv+i)->diem_tb);
    171.  
    172.             printf("\n Neu muon nhap tiep an 1, muon ket thuc an 2: ");
    173.             scanf("%d",&kt);
    174.             if (kt==1)
    175.             {
    176.             i++;
    177.             b++;
    178.             ssv=(sinhvien*)realloc(ssv,b*sizeof(sinhvien));
    179.             }
    180.             }while(kt==1);
    181.                 printf("\n\n-----------------------------------------");
    182.                 if(kt==2)
    183.                 {
    184.                     printf("\n\n");
    185.                     printf("\n Ban da hoan thanh viec nhap du lieu!\n Moi ban quay lai khung lua chon chinh.\n");
    186.                     menu();
    187.                 }
    188.             }
    189.             else
    190.             {
    191.                 b++;
    192.                 ssv=(sinhvien*)realloc(ssv,b*sizeof(sinhvien));
    193.                 do
    194.                 {
    195.             clrscr();
    196.                 printf("\n\n-----------------------------------------\n\n");
    197.                 printf("\n Moi ban nhap ma so cua sinh vien %d:",b);
    198.                 c = getchar();
    199.                 gets(ctam);
    200.                 ssv[b-1].maso = atoi(ctam);
    201.                 printf("\n Moi ban nhap ho va ten cua sinh vien %d:",b);
    202.             //flushall();
    203.                 gets((ssv+b-1)->ho_ten);
    204.                 do
    205.                 {
    206.                 printf("\n Moi ban nhap ngay sinh cua sinh vien %d:",b);
    207.                 scanf("%d",& (ssv+b-1)->ngaysinh);
    208.                 if((ssv+b-1)->ngaysinh>31||(ssv+b-1)->ngaysinh<1)
    209.                 printf("\n Ban chi duoc nhap nam sinh tu 1 den 31.\n");
    210.                 }while ((ssv+b-1)->ngaysinh>31||(ssv+b-1)->ngaysinh<1);
    211.                 do
    212.                 {
    213.                 printf("\n Moi ban nhap thang sinh cua sinh vien %d:",b);
    214.                 scanf("%d",& (ssv+b-1)->thangsinh);
    215.                 if(((ssv+b-1)->thangsinh<1)||((ssv+b-1)->thangsinh>12))
    216.                 printf("\n Ban chi co the nhap thang sinh tu 1 den 12.\n");
    217.                 }while(((ssv+b-1)->thangsinh<1)||((ssv+b-1)->thangsinh>12));
    218.                 do
    219.                 {
    220.                 printf("\n Moi ban nhap nam sinh cua sinh vien %d:",b);
    221.                 scanf("%d",& (ssv+b-1)->namsinh);
    222.                 if((ssv+b-1)->namsinh>2010||(ssv+b-1)->namsinh<=1980)
    223.                 printf("\n Ban chi duoc nhap nam sinh tu 1980 den 2010.\n");
    224.                 }while ((ssv+b-1)->namsinh>2010||(ssv+b-1)->namsinh<=1980);
    225.                 do
    226.                 {
    227.                 printf("\n Moi ban nhap diem toan cua sinh vien %d:",b);
    228.                 scanf("%f",& (ssv+b-1)->diem_toan);
    229.                 if((ssv+b-1)->diem_toan<0||(ssv+b-1)->diem_toan>10)
    230.                 printf("\n Ban chi co the nhap diem tu 0 den 10.\n");
    231.                 }while((ssv+b-1)->diem_toan<0||(ssv+b-1)->diem_toan>10);
    232.                 do
    233.                 {
    234.                 printf("\n Moi ban nhap diem ly cua sinh vien %d:",b);
    235.                 scanf("%f",& (ssv+b-1)->diem_ly);
    236.                 if((ssv+b-1)->diem_ly<0||(ssv+b-1)->diem_ly>10)
    237.                 printf("\n Ban chi co the nhap diem tu 0 den 10.\n");
    238.                 }while((ssv+b-1)->diem_ly<0||(ssv+b-1)->diem_ly>10);
    239.                 do
    240.                 {
    241.                 printf("\n Moi ban nhap diem hoa cua sinh vien %d:",b);
    242.                 scanf("%f",& (ssv+b-1)->diem_hoa);
    243.                 if((ssv+b-1)->diem_hoa<0||(ssv+b-1)->diem_hoa>10)
    244.                 printf("\n Ban chi co the nhap diem tu 0 den 10.\n");
    245.                 }while((ssv+b-1)->diem_hoa<0||(ssv+b-1)->diem_hoa>10);
    246.                 //Nhap diem trung binh
    247.                 (ssv+b-1)->diem_tb =((ssv+b-1)->diem_toan + (ssv+b-1)->diem_ly + (ssv+b-1)->diem_hoa)/3;
    248.                 printf("\n Ban vua nhap vao sinh vien %s ma so %d co diem trung binh la %f \n ",(ssv+b-1)->ho_ten,(ssv+b-1)->maso,(ssv+b-1)->diem_tb);
    249.  
    250.             printf("\n Neu muon nhap tiep an 1, muon ket thuc an 2: ");
    251.             scanf("%d",&kt);
    252.             if (kt==1)
    253.             {
    254.             b++;
    255.             ssv=(sinhvien*)realloc(ssv,b*sizeof(sinhvien));
    256.             }
    257.             }while(kt==1);
    258.                 printf("\n\n-----------------------------------------");
    259.                 if(kt==2)
    260.                 {
    261.                     printf("\n\n");
    262.                     printf("\n Ban da hoan thanh viec nhap du lieu!\n Moi ban quay lai khung lua chon chinh.\n");
    263.                     menu();
    264.                 }
    265.             }
    266.         }
    267.     else if (a==2)
    268.         {
    269.         if (b!=0)
    270.             {
    271.             for (i=0;i<b-1;i++)
    272.             for (j=i+1;j<b;j++)
    273.             {
    274.             ch = strcmpi(ssv[i].ho_ten,ssv[j].ho_ten);
    275.             if (ch > 0)
    276.                 {
    277.                 struct sinhvien temp;
    278.                 temp=ssv[i];
    279.                 ssv[i]=ssv[j];
    280.                 ssv[j]=temp;
    281.                 }
    282.             }       clrscr();
    283.                 printf("\n+------+------------------------------------+----------+-------+-----+-------+");
    284.                 printf("\n| Maso +               HO   VA   TEN                 |T O A N| L Y | H O A |");
    285.                 printf("\n+------+------------------------------------+----------+-------+-----+-------+");
    286.                 for ( i = 0; i < b; i++)
    287.                 {
    288.                     printf("\n| %3d  | ", ssv[i].maso);
    289.                     printf(" %-45s| %4.1f | %4.1f  | %4.1f |", ssv[i].ho_ten,
    290.                             ssv[i].diem_toan, ssv[i].diem_ly, ssv[i].diem_hoa);
    291.                 }
    292.                 printf("\n+------+------------------------------------+----------+-------+-----+-------+");
    293.                 printf("\n Ban da xem danh sach sinh vien! \n xin moi qua ve bang lua chon chinh.");
    294.                 menu();
    295.             }
    296.         else
    297.             {
    298.             clrscr();
    299.                 printf("\n Ban phai nhap du lieu cho cac sinh vien o muc 1, xin moi ban nhap thong tin.");
    300.                 do
    301.                 {
    302.                 printf("\n Muon nhap thong tin an phim 1. \n Muon quay lai lua chon an phim 2.\n Moi ban chon: ");
    303.                 scanf("%d",&t);
    304.                 if (t==1) nhapthongtin();
    305.                 else if (t==2) menu();
    306.                 else if ((t!=1)&&(t!=2)) printf("\n Ban chi co the nhap 1 hoac 2!\n");
    307.                 }while ((t!=1)&&(t!=2));
    308.             }
    309.         }
    310.     else if (a==3)
    311.         menu();
    312.     if ((a!=1)&&(a!=2)&&(a!=3)) printf("\n Ban chi co the nhap 1,2 hoac 3!\n");
    313.     }
    314.     while ((a!=1)&&(a!=2)&&(a!=3));
    315. }
    316.  
    317.  
    318. //HAM SAP XEP DIEM TRUNG BINH
    319. void sapxep_diem()
    320. {
    321.     int c,j,k;
    322.     if (b!=0)
    323.     {
    324.     clrscr();
    325.         printf("-----------------------------------------\n\n");
    326.         printf("\n Diem trung binh cua cac sinh vien la:");
    327.         for (i=0;i<b;i++)
    328.         {
    329.         (ssv+i)->diem_tb =((ssv+i)->diem_toan + (ssv+i)->diem_ly + (ssv+i)->diem_hoa)/3;
    330.         printf("\n %f la diem trung binh cua sinh vien %s co ma so la %d. ",(ssv+i)->diem_tb,ssv[i].ho_ten,ssv[i].maso);
    331.         }
    332.         //sap xep diem
    333.         for (i=0;i<b-1;i++)
    334.         for (j=i+1;j<b;j++)
    335.             {
    336.                 float dtbi= ((ssv+i)->diem_toan + (ssv+i)->diem_ly + (ssv+i)->diem_hoa)/3;
    337.                 float dtbj= ((ssv+j)->diem_toan + (ssv+j)->diem_ly + (ssv+j)->diem_hoa)/3;
    338.                 if(dtbi < dtbj)
    339.                 {
    340.                 struct sinhvien temp;
    341.                   temp = *(ssv+i);
    342.                   *(ssv+i)= *(ssv+j);
    343.                   *(ssv+j)=temp;
    344.                 }
    345.             }
    346.  
    347.         printf("\n\n\n Diem trung binh cua cac sinh vien tu dong sap xep lai theo thu tu giam dan\n\n");
    348.         for (i=0;i<b;i++)
    349.         {
    350.         printf("\n %d. %f la diem trung binh cua sinh vien %s co ma so la %d. ",i+1,(ssv+i)->diem_tb,ssv[i].ho_ten,ssv[i].maso);
    351.         if (i==b-1)
    352.             {
    353.             printf("\n\n-----------------------------------------\n\n");
    354.             printf("\n Moi ban lua chon de tiep tuc chuong trinh.");
    355.             do
    356.             {
    357.             printf("\n Muon quay lai lua chon an phim 1. \n Muon Thoat chuong trinh an phim 2.\n Moi ban chon:");
    358.             scanf("%d",&k);
    359.             if (k==1) menu();
    360.             else if (k==2) exit;
    361.             else if ((k!=1)&&(k!=2)) printf("\n Ban chi co the nhap 1 hoac 2!\n");
    362.             }while ((k!=1)&&(k!=2));
    363.             }
    364.         }
    365.     }
    366.     else
    367.     {
    368.     clrscr();
    369.         printf("\n Ban phai nhap du lieu cho cac sinh vien o muc 1, xin moi ban nhap thong tin.");
    370.     do
    371.     {
    372.         printf("\n Muon nhap thong tin an phim 1. \n Muon quay lai lua chon an phim 2.\n Moi ban chon: ");
    373.         scanf("%d",&c);
    374.         if (c==1) nhapthongtin();
    375.         else if (c==2) menu();
    376.         else if ((c!=1)&&(c!=2)) printf("\n Ban chi co the nhap 1 hoac 2!\n");
    377.     }   while ((c!=1)&&(c!=2));
    378.     }
    379. }
    380.  
    381.  
    382. //HAM SAP XEP THEO TEN VA IN NHUNG SINH VIEN CO DIEM LON HON 7
    383. void sapxep_ten()
    384. {
    385.     int c,j,ch;
    386.     if (b!=0)
    387.     {
    388.     clrscr();
    389.         printf("\n Nhung sinh vien co diem trung binh lon hon 7 la:");
    390.         for (i=0;i<b;i++)
    391.         {
    392.         (ssv+i)->diem_tb =((ssv+i)->diem_toan + (ssv+i)->diem_ly + (ssv+i)->diem_hoa)/3;
    393.         if ((ssv+i)->diem_tb>7)
    394.             printf("\n Sinh vien %s co diem %f",(ssv+i)->ho_ten,(ssv+i)->diem_tb);
    395.  
    396.         }
    397.  
    398.  
    399.         //Ham sap xep ten
    400.         for (i=0;i<b-1;i++)
    401.             for (j=i+1;j<b;j++)
    402.             {
    403.             ch = strcmpi(ssv[i].ho_ten,ssv[j].ho_ten);
    404.             if (ch > 0)
    405.                 {
    406.                 struct sinhvien temp;
    407.                 temp=ssv[i];
    408.                 ssv[i]=ssv[j];
    409.                 ssv[j]=temp;
    410.                 }
    411.             }
    412.  
    413.  
    414.         printf("\n\n Sap xep lai theo ho ten cua cac sinh vien.\n\n");
    415.         printf("\n-----------------------------------------");
    416.         for(i=0;i<b;i++)
    417.         printf("\n %d. %s co ngay sinh la %d-%d-%d.\n\t Diem Trung binh la: %f" ,i+1,(ssv+i)->ho_ten,(ssv+i)->ngaysinh,(ssv+i)->thangsinh,(ssv+i)->namsinh,(ssv+i)->diem_tb);
    418.         printf("\n-----------------------------------------\n\n");
    419.  
    420.         printf("\n Moi ban quay lai khung lua chon chinh!");
    421.         menu();
    422.     }
    423.     else
    424.     {
    425.     clrscr();
    426.         printf("\n Ban phai nhap du lieu cho cac sinh vien o muc 1, xin moi ban nhap thong tin.");
    427.     do
    428.     {
    429.         printf("\n Muon nhap thong tin an phim 1. \n Muon quay lai lua chon an phim 2.\n Moi ban chon: ");
    430.         scanf("%d",&c);
    431.         if (c==1) nhapthongtin();
    432.         else if (c==2) menu();
    433.         else if ((c!=1)&&(c!=2)) printf("\n Ban chi co the nhap 1 hoac 2!\n");
    434.     }   while ((c!=1)&&(c!=2));
    435.     }
    436. }
    437.  
    438. //HAM TIM KIEM THEO TEN
    439. void timkiem()
    440. {
    441.     int c,kt,u;
    442.     char ten[25],a;
    443.     if (b!=0)
    444.     {
    445.    clrscr();
    446.     printf("\n Trong danh sach co %d sinh vien",b);
    447.     printf("\n Moi ban nhap ten muon tim kiem: ");
    448.     a=getchar();
    449.     gets(ten);
    450.     for (i=0;i<b;i++)
    451.     {
    452.         kt=strcmpi(ten,ssv[i].ho_ten);
    453.         if (kt==0)
    454.         {
    455.         (ssv+i)->diem_tb =((ssv+i)->diem_toan + (ssv+i)->diem_ly + (ssv+i)->diem_hoa)/3;
    456.         printf("\n\n-----------------------------------------");
    457.         printf("\n Sinh vien %s co ma so %d.", (ssv+i)->ho_ten,(ssv+i)->maso);
    458.         printf("\n Ngay sinh: %d-%d-%d.",(ssv+i)->ngaysinh,(ssv+i)->thangsinh,(ssv+i)->namsinh);
    459.         printf(" \n Diem trung binh la %f. ",(ssv+i)->diem_tb);
    460.         printf("\n-----------------------------------------\n\n");
    461.         do
    462.         {
    463.         printf("\n\n\n Neu muon tim kiem lai an phim 1.\n Muon quay ve bang lua chon hay chon 2. \n Muon thoat chuong trinh hay chon 3.\n Moi ban chon: ");
    464.         scanf("%d", &u);
    465.         if (u==1) timkiem();
    466.         else if (u==2) menu();
    467.         else if (u==3) exit;
    468.         else if ((u!=1)&&(u!=2)&&(u!=3)) printf("\n Ban chi dc chon 1,2 hoac 3.");
    469.         }while((u!=1)&&(u!=2)&&(u!=3));
    470.          break;
    471.         }
    472.  
    473.     }
    474.     clrscr();
    475.         printf("\n\n-----------------------------------------\n");
    476.         printf("Khong sinh vien nao co ten %s",ten);
    477.         printf("\n-----------------------------------------\n\n");
    478.         do
    479.         {
    480.       clrscr();
    481.         printf("\n\n\n Neu muon tim kiem lai an phim 1.\n Muon quay ve bang lua chon hay chon 2. \n Muon thoat chuong trinh hay chon 3.\n Moi ban chon:");
    482.         scanf("%d", &u);
    483.         if (u==1) timkiem();
    484.         else if (u==2) menu();
    485.         else if (u==3) exit;
    486.         else if ((u!=1)&&(u!=2)&&(u!=3)) printf("\n Ban chi dc chon 1,2 hoac 3.");
    487.         }while((u!=1)&&(u!=2)&&(u!=3));
    488.  
    489.     }
    490.  
    491.     else
    492.     {
    493.    clrscr();
    494.     printf("\n Ban phai nhap du lieu cho cac sinh vien o muc 1, xin moi ban nhap thong tin.");
    495.     do
    496.     {
    497.     printf("\n Muon nhap thong tin an phim 1. \n Muon quay lai lua chon an phim 2.\n Moi ban chon: ");
    498.     scanf("%d",&c);
    499.     if (c==1) nhapthongtin();
    500.     if (c==2) menu();
    501.     if ((c!=1)&&(c!=2)) printf("\n Ban chi co the nhap 1 hoac 2!\n");
    502.     }while ((c!=1)&&(c!=2));
    503.     }
    504. }
    Đã được chỉnh sửa lần cuối bởi nguyenminhnhat605 : 24-12-2008 lúc 06:27 PM.

  10. #10
    Ngày gia nhập
    10 2008
    Bài viết
    99

    Đối với các chương trỉnh quản lí , để tránh việc lãng phí bộ nhớ
    các bạn nên sử dụng cấu trúc dữ liệu , tuỳ thuộc vào mức độ sử dụng mà chọn các loại cấu trúc dữ liệu khác nhau

    Mảng - Vector - Danh sách liên kết - Stack - Queue - Tree

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

  1. Quản lí sinh viên bằng stack dùng danh sách liên kết. Làm sao để nhập nhiều sinh viên?
    Gửi bởi hoainamken 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: 24-08-2011, 10:34 AM
  2. Bài tập quản lý sinh viên trong lập trình C#. Tìm kiếm sinh viên in ra cả danh sách?
    Gửi bởi anhduc12c5 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 24-08-2011, 08:32 AM
  3. Chương trình quản lí sinh viên viết trong visual c++ 2010. Lỗi không chạy khi in danh sách sinh viên theo năm
    Gửi bởi hikaru1015 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 9
    Bài viết cuối: 03-06-2011, 09:31 AM
  4. Chương trình quản lý sinh viên viết bằng C. Làm sao tìm kiếm sinh viên theo tên và sắp xếp?
    Gửi bởi linhdong24 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 24-06-2009, 12:53 AM
  5. Insert Sinh viên mới trong chương trình quản lý sinh viên?
    Gửi bởi matmeoviet trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 21-06-2009, 08:00 AM

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