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<<left<<setw(5)<<"ID"<<setw(20)<<"TEN"<<setw(5)<<"GIOITINH"
  <<setw(5)<<"DKT1"
  <<setw(5)<<"DKT2"<<setw(5)<<"DCC"<<setw(5)<<"DGK"<<setw(5)<<"DCK"
  <<setw(5)<<"TONG"<<"\n";
   cout<<"==========================================\n";
  while(i<=biendem){
     if(st[i].mssv!=""){
        cout<<left<<setw(5)<<st[i].mssv<<setw(20)<<st[i].tensv<<setw(5)
       <<st[i].sex;
       cout<<setw(5)<<st[i].diemkt1<<setw(5)<<st[i].diemkt2<<setw(5)<<st[i].diemcc
      <<setw(5)<<st[i].diemgk<<setw(5)<<st[i]. diemck<<setw(5)
      <<st[i].tongdiem;

      cout<<"\n";}
      i=i+1;

}


}


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

Quảng cáo

Đị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;

}

Quảng cáo

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

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.


bai_tap_struct_trong_cplusplus.jsp


Tài liệu giáo viên