You are on page 1of 2

BTTH Kĩ Thuật Lập Trình Khoa CNTT, ĐH KHTN, Tp HCM

BTTH Tuần 10
Nhập xuất file nhị phân
Mục tiêu: Sinh viên thực hiện các thao tác trên file nhị phân bằng ngôn ngữ C.

Cho cấu trúc sinh viên như bên dưới:

typedef struct tagSinhVien

int MSSV; // Mã số sinh viên

char HoTen[50]; // Họ và tên

float DTB; // Điểm trung bình


} SINHVIEN;

Dùng chương trình Notepad hoặc Wordpad hoặc WinWord, tạo file sinhvien.txt có nội dung
như sau:

 Dòng đầu tiên: Số lượng sinh viên


 Các dòng sau đó chứa thông tin của từng sinh viên. Cụ thể:
 Dòng thứ hai: Mã số sinh viên thứ nhất
 Dòng thứ ba: Họ tên sinh viên thứ nhất
 Dòng thứ tư: Điểm trung bình của sinh viên thứ nhất
 Ba dòng tiếp theo là thông tin của sinh viên thứ hai

v.v…

Xây dựng chương trình hoàn chỉnh, xuất ra hệ thống menu cho người dùng lựa chọn một trong
các chức năng sau:

1. Nhập thông tin sinh viên.


Mô tả:
 Viết hàm đọc thông tin của từng sinh viên và lưu vào mảng cấu trúc SINHVIEN (sử
dụng con trỏ để cấp phát động, khi nào ko sử dụng nữa thì giải phòng vùng nhớ).
 Viết hàm sắp xếp mảng tăng dần theo MSSV.
 Viết hàm ghi mảng sau khi sắp xếp vào file sinhvien.bin theo kiểu file nhị phân. Chỉ ghi
sanh sách sinh viên, không cần ghi số lượng sinh viên.
Hướng dẫn: dùng hàm write(địa chỉ của mảng struct SV, kích thước của mảng struct
SV).

1 ddkhoa@fit.hcmus.edu.vn
BTTH Kĩ Thuật Lập Trình Khoa CNTT, ĐH KHTN, Tp HCM

2. Đọc danh sách sinh viên từ file sinhvien.bin và in danh sách ra màn hình theo thứ tự tăng
dần MSSV hoặc tăng dần theo DTB.
Mô tả:
 Viết hàm đọc file nhị phân, lưu vào mảng cấu trúc SINHVIEN (sử dụng con trỏ để cấp
phát động, khi nào ko sử dụng nữa thì giải phòng vùng nhớ).
 Viết hàm xuất mảng cấu trúc SINHVIEN ra màn hình.
 Viết hàm sắp xếp tăng dần theo DTB.

(Sinh viên sử dụng chương trình Notepad hoặc Wordpad hoặc WinWord mở file
sinhvien.bin ra xem thử và xem có giống với file văn bản sinhvien.txt không?)

3. Tìm kiếm sinh viên theo MSSV, với MSSV nhập từ bàn phím.
Mô tả: Không được sử dụng mảng động để lưu danh sách sinh viên để tìm kiếm, mà phải viết
hàm đọc từng sinh viên từ file sinhvien.bin, so sánh với MSSV cần tìm, nếu khớp thì xuất
sinh viên đó ra màn hình.

THAO TÁC VỚI CON TRỎ CHỈ VỊ:

4. Xuất thông tin sinh viên có MSSV bé nhất và lớn nhất trong file sinhvien.bin.
Mô tả: sử dụng hàm di chuyển con trỏ chỉ vị trong file sinhvien.bin.

5. Nhập vào số thứ tự i, dùng hàm di chuyển con trỏ chỉ vị để đọc thông tin của sinh viên thứ i
trong file sinhvien.bin. Nếu i<0 thì xuất sinh viên đầu tiên, i>số lượng sinh viên thì xuất sinh
viên cuối cùng.
Mô tả: số lượng sinh viên được tính bằng cách lấy kích thước của file chia cho
sizeof(SINHVIEN).

6. Xóa thông tin sinh viên theo MSSV, với MSSV nhập từ bàn phím.
Mô tả: Mở file sinhvien.bin để đọc danh sách sinh viên lưu vào mảng cấu trúc SINHVIEN,
thực hiện việc xóa và mở lại file sinhvien.bin để ghi kết quả.

Ví dụ: file sinhvien.txt có nội dung như sau:


1
1012345
Nguyen Van Teo
4.5

Tài liệu tham khảo


[1] Cplusplus, Input/Output with files, http://www.cplusplus.com/doc/tutorial/files/, 2011.

2 ddkhoa@fit.hcmus.edu.vn

You might also like