Bài tập quản lý sinh viên trong C++ (Phần 3)



Bước 5: Quan sát các bản ghi

Định nghĩa phương thức viewall(sinhvien st[], int biendem) để hiển thị danh sách các bản ghi trong tập hợp. Để hiển thị danh sách các bản ghi, chúng ta cần một vòng lặp WHILE để "vọc" mảng các đối tượng sinh viên này.

Dưới đây là code cho bước 5:

//ham de quan sat tat ca cac ban ghi
void viewall(struct sinhvien st[], int biendem){
   int i=0;
  cout<

Bước 6: Xóa bản ghi

Định nghĩa phương thức delete(struct sinhvien st[], int& biendem) để xóa một bản ghi cụ thể từ mảng các đối tượng sinh viên. Người dùng sẽ được nhắc id của sinh viên mà họ muốn xóa. Sau đó, id này sẽ được kiểm tra lại để đảm bảo rằng sẽ không còn tồn tại trong danh sách.

Hoạt động xóa bắt đầu bằng việc kiểm tra xem bản ghi đó là bản ghi cuối cùng, ở đầu hoặc ở giữa trong dánh sách. Nếu là bản ghi cuối cùng, chúng ta xóa bản ghi đó bằng việc cung cấp nó tới phương thức clean(struct sinhvien st[], int index). Bản ghi cuối cùng là bản ghi có chỉ mục bằng biendem – 1. Nếu là bản ghi ở đầu hoặc ở giữa danh sách, chúng ta cần sử dụng một vòng lặp. Sau khi phần tử bị xóa, biến biendem giảm 1, tức là số phần tử trong danh sách giảm.

Dưới đây là code cho bước 6:

void xoa_banghi(struct sinhvien st[], int& biendem){
  string id;
  int index;
  if (biendem > 0)
   {
    cout<<"Nhap ID cua sinh vien:";
    cin>>id;
    index = search(st, id,biendem);     if (index!=-1)
     {
       if (index == (biendem-1)) //xoa ban ghi cuoi cung
        {          clean(st, index);
          --biendem;
          cout<<"Ban ghi da bi xoa.\n";
       }  else //xoa ban ghi dau tien hoac o giua
    {
      for (int i = index; i < biendem-1; i++)
        {
          st[i] = st[i + 1];
          clean(st, biendem);
          --biendem ;
         }    }  }
else cout<<"Ban ghi khong ton tai. Kiem tra ID va thu lai.\n"; }
else cout<<"Khong co ban ghi nao bi xoa\n";
} 
void clean(struct sinhvien st[],int index)
{
st[index].mssv ="";
strcpy(st[index].tensv,"");
st[index].sex =NULL;
st[index].diemkt1 = 0;
st[index].diemkt2 = 0;
st[index].diemcc = 0;
st[index].diemgk = 0;
st[index].diemck = 0;
st[index].tongdiem = 0;}

Bạn trở lại trang cha để tìm hiểu tiếp các bước.


bai_tap_struct_trong_cplusplus.jsp