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

Đề tài: Code quản lý giáo viên trong C++. không thể xóa bớt 1 giáo viên, sửa thế nào?

  1. #1
    Ngày gia nhập
    02 2009
    Nơi ở
    Lập thạch-Vĩnh phúc
    Bài viết
    142

    Mặc định Code quản lý giáo viên trong C++. không thể xóa bớt 1 giáo viên, sửa thế nào?

    Tớ đang làm bài tập về quản lý giáo viên.nhưng đang bị măc chỗ xóa bớt giáo viên chưa được mong các bạn xem giúp

    C++ Code:
    1. #include<iostream.h>
    2. #include<iomanip.h>
    3. #include<fstream.h>
    4. #include<conio.h>
    5. #include<stdlib.h>
    6. #include<ctype.h>
    7. #include<string.h>
    8. #include<stdio.h>
    9.  
    10.     struct GVIEN
    11.       {
    12.         char ht[25],gt[4],ns[11],bm[20],dc[30],sdt[12],cd[20];
    13.         long luong;
    14.       };
    15.     class GV
    16.     {
    17.       private:
    18.     GVIEN gv;
    19.       public:
    20.     void nhap();
    21.     void in();
    22.    
    23.      };
    24.  void GV::nhap()
    25.       {
    26.           cout<<"\n Ho ten: ";
    27.           fflush(stdin);
    28.           gets(gv.ht);
    29.            cout<<"\n Gioi tinh: ";
    30.             fflush(stdin);
    31.           gets(gv.gt);
    32.           cout<<"\n Nam sinh: ";
    33.           fflush(stdin);
    34.           gets(gv.ns);
    35.           cout<<"\nChuc danh: ";
    36.           fflush(stdin);
    37.           gets(gv.cd);
    38.           cout<<"\n Bo mon: ";
    39.           fflush(stdin);
    40.           gets(gv.bm);
    41.           cout<<"\n So dien thoai: ";
    42.           fflush(stdin);
    43.           gets(gv.sdt);
    44.           cout<<"\n Dia chi: ";
    45.           fflush(stdin);
    46.           gets(gv.dc);
    47.           cout<<"\n Luong:";
    48.           cin>>gv.luong;
    49.      }
    50. void GV::in()
    51.      {
    52.       cout<<"\nHo ten: "<<gv.ht;
    53.       cout<<"\nGioi tinh: "<<gv.gt;
    54.       cout<<"\nNam sinh: "<<gv.ns;
    55.       cout<<"\nChuc danh: "<<gv.cd;
    56.       cout<<"\nBo mon giang day: "<<gv.bm;
    57.       cout<<"\nSo dien thoai: "<<gv.sdt;
    58.       cout<<"\nDia chi lien lac: "<<gv.dc;
    59.       cout<<"\nLuong: "<<gv.luong;
    60.      }
    61.  
    62. class qlgv
    63.      {
    64.        private:
    65.     int i,n,sogv;
    66.     char ten_tep[40];
    67.     static int size;
    68.      GV q[100];
    69.       public:
    70.       qlgv(char*ttep);
    71.     void tao_ds();
    72.     void xem_ds();
    73.     void xem_sua();
    74.     void them_ds();
    75.     void xem_xoa();
    76.      };
    77.  int qlgv::size=sizeof(GVIEN);
    78.  qlgv::qlgv(char*ttep)
    79.      {
    80.        strcpy(ten_tep,ttep);
    81.        fstream f;
    82.        f.open(ten_tep,ios::binary|ios::in|ios::ate);
    83.        if(!f.good())
    84.      sogv=0;
    85.        else
    86.        {
    87.      sogv=f.tellg()/size;
    88.        }
    89.       }
    90.  void qlgv::tao_ds()
    91.      {
    92.       fstream f;
    93.     f.open(ten_tep,ios::binary|ios::out|ios::noreplace);
    94.     if(!f.good())
    95.      {
    96.         cout<<"\n Danh sach da ton tai";
    97.         cout<<"\n Co tao lai khong?-C/K";
    98.         char ch=getch();
    99.         if(toupper(ch)!='C')
    100.             return;
    101.         else
    102.         {
    103.           f.close();
    104.           f.open(ten_tep,ios::binary|ios::out|ios::trunc);
    105.         }
    106.       }
    107.        cout<<"\n so gv can nhap vao N=";
    108.        cin>>sogv;
    109.        for(i=1;i<=sogv;i++)
    110.       {
    111.     cout<<"\n Giao vien thu "<<i;
    112.     q[i].nhap();
    113.     f.write((char*)(&q[i]),size);
    114.       }
    115.      f.close();
    116.   }
    117.  
    118.    void qlgv::xem_ds()
    119.      {
    120.          fstream f;
    121.         int ch;
    122.            f.open(ten_tep,ios::binary|ios::out|ios::in|ios::nocreate);
    123.              if(!f.good())
    124.           {
    125.         cout<<"\n Danh sach chua tao";
    126.         getch();
    127.         return;
    128.           }
    129.            cout<<"\n Danh sach gom: "<<sogv<<" giao vien";
    130.          for(int i=1;i<=sogv;++i)
    131.           {
    132.              cout<<"\n  Giao vien thu: "<<i;
    133.              f.seekg((i-1)*size,ios::beg);
    134.              f.read((char*)(&q[i]),size);
    135.              q[i].in();
    136.              getch();
    137.           }
    138.       f.close();
    139. }
    140. void qlgv::them_ds()
    141.      {
    142.        fstream f;
    143.        f.open(ten_tep,ios::binary|ios::app|ios::nocreate);
    144.        if(!f.good())
    145.      {
    146.       cout<<"\n Danh sach chua tao";
    147.        cout<<"\n Co tao moi khong?-C/K";
    148.        char ch=getch();
    149.         if(toupper(ch)!='C')
    150.             return;
    151.         else
    152.         {
    153.           f.close();
    154.           f.open(ten_tep,ios::binary|ios::out);
    155.          }
    156.        }
    157.      cout<<"\n So giao vien can bo sung vao danh sach N=";
    158.      cin>>n;
    159.         for(i=1;i<=n;++i)
    160.          {
    161.           cout<<"\n Bo sung giao vien thu: "<<i;
    162.            q[i].nhap();
    163.             f.write((char*)(&q[i]),size);
    164.         }
    165.           sogv+=n;
    166.           f.close();
    167.      }
    168.  
    169. void qlgv::xem_sua()
    170.     {
    171.      fstream f;
    172.      int ch;
    173.      f.open(ten_tep,ios::binary|ios::out|ios::in|ios::nocreate);
    174.      if(!f.good())
    175.        {
    176.     cout<<"\n Danh sach chua tao";
    177.     getch();
    178.     return;
    179.        }
    180.      cout<<"\n Danh sach gom: "<<sogv<<"giao vien";
    181.      for(i=1;i<=sogv;++i)
    182.        {
    183.      cout<<"\n Can xem_sua giao vien thu: ";
    184.      cin>>i;
    185.      if(i<1||i>sogv)break;
    186.      f.seekg((i-1)*size,ios::beg);
    187.      f.read((char*)(&q[i]),size);
    188.      q[i].in();
    189.      cout<<"\n Co sua khong?-C/K";
    190.      ch=getch();
    191.      if(toupper(ch)=='C')
    192.        {
    193.           f.seekg(-size,ios::cur);
    194.           q[i].nhap();
    195.           f.write((char*)(&q[i]),size);
    196.        }
    197.        }
    198.           f.close();
    199.      }
    200.    void qlgv::xem_xoa()//phuơng thức này chạy nhưng chưa xóa đựoc mong các bạn xem giúp
    201.     {
    202.  
    203.  
    204.      fstream f;
    205.      int ch;
    206.      f.open(ten_tep,ios::binary|ios::out|ios::in|ios::nocreate);
    207.      if(!f.good())
    208.        {
    209.     cout<<"\n Danh sach chua tao";
    210.     getch();
    211.     return;
    212.        }
    213.      cout<<"\n Danh sach gom: "<<sogv<<"giao vien";
    214.      for(i=1;i<=sogv;++i)
    215.        {
    216.      cout<<"\n Can xem_xoa giao vien thu: ";
    217.          cin>>i;
    218.      if(i<1||i>sogv)break;
    219.      f.seekg((i-1)*size,ios::beg);
    220.      f.read((char*)(&q[i]),size);
    221.      q[i].in();
    222.      cout<<"\n Co xoa khong?-C/K";
    223.      ch=getch();
    224.      if(toupper(ch)=='C')
    225.        {
    226.         f.seekg(-size,ios::cur);
    227.           q[i]=q[i+1];
    228.              delete &q[i];
    229.             sogv--;
    230.          cout<<"\nDa xoa!";
    231.          getch();
    232.  
    233.        }
    234.        }
    235.           f.close();
    236.      }
    237.  
    238.  void main()
    239.      {
    240.        int chon;
    241.        clrscr();
    242.        qlgv t("QLGV.txt");
    243.        while(1)
    244.       {
    245.           clrscr();
    246.           cout<<"\n 1.Tao danh sach giao vien moi";
    247.           cout<<"\n 2.Bo sung danh sach giao vien";
    248.           cout<<"\n 3.Tim_sua danh sach giao vien";
    249.           cout<<"\n 4.Xem danh sach giao vien";
    250.           cout<<"\n 5.xoa";
    251.           chon=getch();
    252.           chon=chon-48;
    253.           clrscr();
    254.           if(chon==1)
    255.         t.tao_ds();
    256.           else
    257.              if(chon==2)
    258.             t.them_ds();
    259.           else
    260.              if(chon==3)
    261.             t.xem_sua();
    262.           else
    263.              if(chon==4)
    264.                t.xem_ds();
    265.            else
    266.              if(chon==5)
    267.              t.xem_xoa();
    268.          else
    269.                break;
    270.          }
    271.       clrscr();
    272.       cout<<"\n Finish";
    273.       getch();
    274.     }
    Tôi thề giúp ai giúp đến cùng không bao giờ để bạn thất vọng.Nếu viêc bạn nhờ trông khả năng của tôi.
    C__azx__L

  2. #2
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Đọc code hoa cả mắt.Chắc của bạn bị lỗi chỗ này
    C++ Code:
    1. if(toupper(ch)=='C')
    2.        {
    3.         f.seekg(-size,ios::cur);
    4.          // q[i]=q[i+1];Thay bằng đoạn bên dưới
    5.            for(int j = i;j<sogv;j++)
    6.            {
    7.                q[j] = q[j+1]
    8.            }
    9.            delete &q[i]; //Chẳng thấy cái q này của bạn ở đâu nhỉ
    10.             sogv--;
    11.          cout<<"\nDa xoa!";
    12.          getch();
    13.  
    14.       }
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    my home ^^
    Bài viết
    61

    code dài wá xá dài, nhìn là hết mún đọc! Bạn code lại những đọan cần thiết thui bạn ơi! Còn nếu kiểm tra lỗi thì dùng chức năng debug sửa từ từ cũng đc.
    M|R.S!!!!!!!!!!!

  4. #4
    Ngày gia nhập
    02 2009
    Nơi ở
    Lập thạch-Vĩnh phúc
    Bài viết
    142

    Thaks ban thienthan34 đã giúp đỡ tớ cũng vừa chạy dược code

    C++ Code:
    1. #include<iostream.h>
    2. #include<iomanip.h>
    3. #include<fstream.h>
    4. #include<conio.h>
    5. #include<stdlib.h>
    6. #include<ctype.h>
    7. #include<string.h>
    8. #include<stdio.h>
    9.  
    10.     struct GVIEN
    11.       {
    12.         char ht[25],gt[4],ns[11],bm[20],dc[30],sdt[12],cd[20];
    13.         long luong;
    14.       };
    15.     class GV
    16.     {
    17.       private:
    18.     GVIEN gv;
    19.       public:
    20.     void nhap();
    21.     void in();
    22.    
    23.      };
    24.  void GV::nhap()
    25.       {
    26.           cout<<"\n Ho ten: ";
    27.           fflush(stdin);
    28.           gets(gv.ht);
    29.            cout<<"\n Gioi tinh: ";
    30.             fflush(stdin);
    31.           gets(gv.gt);
    32.           cout<<"\n Nam sinh: ";
    33.           fflush(stdin);
    34.           gets(gv.ns);
    35.           cout<<"\nChuc danh: ";
    36.           fflush(stdin);
    37.           gets(gv.cd);
    38.           cout<<"\n Bo mon: ";
    39.           fflush(stdin);
    40.           gets(gv.bm);
    41.           cout<<"\n So dien thoai: ";
    42.           fflush(stdin);
    43.           gets(gv.sdt);
    44.           cout<<"\n Dia chi: ";
    45.           fflush(stdin);
    46.           gets(gv.dc);
    47.           cout<<"\n Luong:";
    48.           cin>>gv.luong;
    49.      }
    50. void GV::in()
    51.      {
    52.       cout<<"\nHo ten: "<<gv.ht;
    53.       cout<<"\nGioi tinh: "<<gv.gt;
    54.       cout<<"\nNam sinh: "<<gv.ns;
    55.       cout<<"\nChuc danh: "<<gv.cd;
    56.       cout<<"\nBo mon giang day: "<<gv.bm;
    57.       cout<<"\nSo dien thoai: "<<gv.sdt;
    58.       cout<<"\nDia chi lien lac: "<<gv.dc;
    59.       cout<<"\nLuong: "<<gv.luong;
    60.      }
    61.  
    62. class qlgv
    63.      {
    64.        private:
    65.     int i,n,sogv;
    66.     char ten_tep[40];
    67.     static int size;
    68.      GV q[100];
    69.       public:
    70.       qlgv(char*ttep);
    71.     void tao_ds();
    72.     void xem_ds();
    73.     void xem_sua();
    74.     void them_ds();
    75.     void xem_xoa();
    76.      };
    77.  int qlgv::size=sizeof(GVIEN);
    78.  qlgv::qlgv(char*ttep)
    79.      {
    80.        strcpy(ten_tep,ttep);
    81.        fstream f;
    82.        f.open(ten_tep,ios::binary|ios::in|ios::ate);
    83.        if(!f.good())
    84.      sogv=0;
    85.        else
    86.        {
    87.      sogv=f.tellg()/size;
    88.        }
    89.       }
    90.  void qlgv::tao_ds()
    91.      {
    92.       fstream f;
    93.     f.open(ten_tep,ios::binary|ios::out|ios::noreplace);
    94.     if(!f.good())
    95.      {
    96.         cout<<"\n Danh sach da ton tai";
    97.         cout<<"\n Co tao lai khong?-C/K";
    98.         char ch=getch();
    99.         if(toupper(ch)!='C')
    100.             return;
    101.         else
    102.         {
    103.           f.close();
    104.           f.open(ten_tep,ios::binary|ios::out|ios::trunc);
    105.         }
    106.       }
    107.        cout<<"\n so gv can nhap vao N=";
    108.        cin>>sogv;
    109.        for(i=1;i<=sogv;i++)
    110.       {
    111.     cout<<"\n Giao vien thu "<<i;
    112.     q[i].nhap();
    113.     f.write((char*)(&q[i]),size);
    114.       }
    115.      f.close();
    116.   }
    117.  
    118.    void qlgv::xem_ds()
    119.      {
    120.          fstream f;
    121.         int ch;
    122.            f.open(ten_tep,ios::binary|ios::out|ios::in|ios::nocreate);
    123.              if(!f.good())
    124.           {
    125.         cout<<"\n Danh sach chua tao";
    126.         getch();
    127.         return;
    128.           }
    129.            cout<<"\n Danh sach gom: "<<sogv<<" giao vien";
    130.          for(int i=1;i<=sogv;++i)
    131.           {
    132.              cout<<"\n  Giao vien thu: "<<i;
    133.              f.seekg((i-1)*size,ios::beg);
    134.              f.read((char*)(&q[i]),size);
    135.              q[i].in();
    136.              getch();
    137.           }
    138.       f.close();
    139. }
    140. void qlgv::them_ds()
    141.      {
    142.        fstream f;
    143.        f.open(ten_tep,ios::binary|ios::app|ios::nocreate);
    144.        if(!f.good())
    145.      {
    146.       cout<<"\n Danh sach chua tao";
    147.        cout<<"\n Co tao moi khong?-C/K";
    148.        char ch=getch();
    149.         if(toupper(ch)!='C')
    150.             return;
    151.         else
    152.         {
    153.           f.close();
    154.           f.open(ten_tep,ios::binary|ios::out);
    155.          }
    156.        }
    157.      cout<<"\n So giao vien can bo sung vao danh sach N=";
    158.      cin>>n;
    159.         for(i=1;i<=n;++i)
    160.          {
    161.           cout<<"\n Bo sung giao vien thu: "<<i;
    162.            q[i].nhap();
    163.             f.write((char*)(&q[i]),size);
    164.         }
    165.           sogv+=n;
    166.           f.close();
    167.      }
    168.  
    169. void qlgv::xem_sua()
    170.     {
    171.      fstream f;
    172.      int ch;
    173.      f.open(ten_tep,ios::binary|ios::out|ios::in|ios::nocreate);
    174.      if(!f.good())
    175.        {
    176.     cout<<"\n Danh sach chua tao";
    177.     getch();
    178.     return;
    179.        }
    180.      cout<<"\n Danh sach gom: "<<sogv<<"giao vien";
    181.      for(i=1;i<=sogv;++i)
    182.        {
    183.      cout<<"\n Can xem_sua giao vien thu: ";
    184.      cin>>i;
    185.      if(i<1||i>sogv)break;
    186.      f.seekg((i-1)*size,ios::beg);
    187.      f.read((char*)(&q[i]),size);
    188.      q[i].in();
    189.      cout<<"\n Co sua khong?-C/K";
    190.      ch=getch();
    191.      if(toupper(ch)=='C')
    192.        {
    193.           f.seekg(-size,ios::cur);
    194.           q[i].nhap();
    195.           f.write((char*)(&q[i]),size);
    196.        }
    197.        }
    198.           f.close();
    199.      }
    200.    void qlgv::xem_xoa()
    201.     {
    202.  
    203.  
    204.  
    205.      fstream f;
    206.      int ch;
    207.     int azx;
    208.      f.open(ten_tep,ios::binary|ios::out|ios::in|ios::nocreate);
    209.      if(!f.good())
    210.        {
    211.     cout<<"\n Danh sach chua tao";
    212.     getch();
    213.     return;
    214.        }
    215.      cout<<"\n Danh sach gom: "<<sogv<<"giao vien";
    216.          cout<<"\n Can xem_xoa giao vien thu: ";
    217.          cin>>azx;
    218.         for(int j=azx;j<sogv;j++)
    219.         {
    220.             q[j]=q[j+1];
    221.             cout<<"\nDa xoa!";
    222.             delete &q[j];
    223.             getch();
    224.         }
    225.        
    226.         sogv--;
    227.           f.close();
    228.      }
    229.  
    230.  void main()
    231.      {
    232.        int chon;
    233.        clrscr();
    234.        qlgv t("QLGV.txt");
    235.        while(1)
    236.       {
    237.           clrscr();
    238.           cout<<"\n 1.Tao danh sach giao vien moi";
    239.           cout<<"\n 2.Bo sung danh sach giao vien";
    240.           cout<<"\n 3.Tim_sua danh sach giao vien";
    241.           cout<<"\n 4.Xem danh sach giao vien";
    242.           cout<<"\n 5.xoa";
    243.           chon=getch();
    244.           chon=chon-48;
    245.           clrscr();
    246.           if(chon==1)
    247.         t.tao_ds();
    248.           else
    249.              if(chon==2)
    250.             t.them_ds();
    251.           else
    252.              if(chon==3)
    253.             t.xem_sua();
    254.           else
    255.              if(chon==4)
    256.                t.xem_ds();
    257.            else
    258.              if(chon==5)
    259.              t.xem_xoa();
    260.          else
    261.                break;
    262.          }
    263.       clrscr();
    264.       cout<<"\n Finish";
    265.       getch();
    266.     }
    Đã được chỉnh sửa lần cuối bởi congtuazx : 14-05-2009 lúc 10:11 PM. Lý do: bớt
    Tôi thề giúp ai giúp đến cùng không bao giờ để bạn thất vọng.Nếu viêc bạn nhờ trông khả năng của tôi.
    C__azx__L

  5. #5
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    C++ Code:
    1. for(int j=azx;j<sogv;j++)
    2.         {
    3.             q[j]=q[j+1];
    4.             cout<<"\nDa xoa!"; //Cái này nếu xóa 1 người thì nó hiện ra sogv-azx lần chữ Da xoa ! . Nên để ra ngoài vòng for
    5.             delete &q[j];
    6.             getch();
    7.         }
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  6. #6
    Ngày gia nhập
    02 2009
    Nơi ở
    Lập thạch-Vĩnh phúc
    Bài viết
    142

    Mặc định Code quản lý giáo viên trong C++. không thể xóa bớt 1 giáo viên, sửa thế nào?

    Thanks bạn.Tớ còn chõ mắc nữa là mỗi lần xóa đi thì khi thoaats ra chạy lại chuơng trình thì lại vẫn như cũ.tớ muốn ghi kết quả vừa xóa vào tệp để khi chạy lại thì những gì xóa không còn nữa,tớ vẫn chưa làm được bạn xem giúp tớ
    Tôi thề giúp ai giúp đến cùng không bao giờ để bạn thất vọng.Nếu viêc bạn nhờ trông khả năng của tôi.
    C__azx__L

  7. #7
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Sau khi xóa xong thì bạn thực hiện ghi lại vào tệp.Có 2 cách:
    1.Để phần ghi vào tệp đó ở trong hàm xóa luôn.
    2.Có hàm ghi vào tệp.Sau khi gọi hàm xóa thì gọi hàm ghi tệp.
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

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

  1. Giúp mình sửa lại code quản lý điểm sinh viên dùm cái. Mình ko biết sửa thế nào cả
    Gửi bởi ronghappy13 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 04-01-2013, 08:49 PM
  2. Tạo danh sách sinh viên trên C++. Chỉnh sửa, xóa sinh viên thì làm thế nào?
    Gửi bởi hiepsiao trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 3
    Bài viết cuối: 28-08-2011, 10:26 AM
  3. Bài tập C++ xóa sinh viên trong dssv , ai test dùm em , xóa sv thứ 3 mà nó toàn xóa sv thứ 4
    Gửi bởi prt_awm trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 08-11-2010, 02:24 PM
  4. Quản lý nhân viên - Tìm kiếm, thêm, xóa, liệt kê thông tin nhân viên. (Code C)
    Gửi bởi thanhphongcttv trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 14-10-2009, 02:34 PM
  5. Lập trình C | Code quản lý sinh viên lỗi sửa như thế nào?
    Gửi bởi rong3sao trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 11-04-2009, 09:08 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