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



Bước 3: Thêm bản ghi mới tới danh sách

Định nghĩa hàm them_banghi(struct sinhvien[] st, int& biendem) để thêm một bản ghi mới vào mảng các đối tượng sinh viên. Phương thức này nhận hai tham số: tham số đầu tiên là mảng các đối tượng sinh viên st và tham số thứ hai là số item trong mảng. Đầu tiên hàm này kiểm tra xem đó có là bản ghi mới không (sử dụng hàm search được định nghĩa trong bước tiếp theo) trước khi cho phép bản ghi đó được phụ thêm vào mảng để tránh xuất hiện các bản sao. Khi item mới được nhập thì giá trị của biến biendem tăng thêm 1, nghĩa là số bản ghi trong danh sách tăng lên.

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

void them_banghi(struct sinhvien st[],int& biendem){again:
cout<<"\nNhap ID cua sinh vien: ";
cin>>st[biendem].mssv;
if(search(st,st[biendem].mssv,biendem)!=-1){
cout<<"ID nay da ton tai\n";goto again;
}cout<<"Nhap ten sinh vien: "; 
cin>>st[biendem].stname;
cout<<"Nhap gioi tinh cua sinh vien (F hoac M):";cin>>st[biendem].sex;
cout<<"Nhap diem kiem tra 1: ";cin>>st[biendem].diemkt1;
cout<<"Nhap diem kiem tra 2: ";cin>>st[biendem].diemkt2;
cout<<"Nhap diem chuyen can: ";cin>>st[biendem].diemcc;
cout<<"Nhap diem thi giua ky: ";cin>>st[biendem].diemgk;
cout<<"Nhap diem thi cuoi ky: ";cin>>st[biendem].diemck;
st[biendem].tongdiem=st[biendem].diemkt1+st[biendem].diemkt2+st[biendem].diemcc+st[biendem].diemgk+st[biendem].diemck;++biendem;
}

Bước 4: Tìm vị trí bản ghi

Định nghĩa hàm search(struct sinhvien st[], strng id, int biendem) để tìm kiếm chỉ mục của bản ghi nào đó. Phuong thức này là hữu ích khi chúng ta cần tìm vị trí của bản ghi trong mảng các đối tượng sinh viên. Nếu tìm thấy, phương thức trả về chỉ mục của phần tử đó, và nếu không tìm thấy thì trả về -1.

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

int search(struct sinhvien st[], string id,int biendem){ int found =-1;
for (int i = 0; i < biendem && found==-1; i++)
{if (st[i].mssv == id) found=i;else found=-1 ;
}return found; }

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


bai_tap_struct_trong_cplusplus.jsp