Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo

Sự cần thiết sử dụng file trong C++

 Câu lệnh cin : nhập dữ liệu từ bàn phím và

đưa vào các biến

 Câu lệnh cout : hiển thị giá trị các biểu thức ra

màn hình

 Khi kết thúc chương trình thì các biến, các biểu

thức không còn nữa → dữ liệu bị mất

 Mong muốn của người sử dụng: có thể lưu trữ

các biến, các kết quả tính toán ra tập tin

(file), nhờ vậy kết quả tính toán sẽ không bị

mất và có thể đọc dữ liệu có trong file để xử

lí tiếp

 → giải pháp : thao tác với các tập tin (cụ thể

là dạng văn bản)

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 1

Trang 1

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 2

Trang 2

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 3

Trang 3

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 4

Trang 4

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 5

Trang 5

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 6

Trang 6

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 7

Trang 7

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 8

Trang 8

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 9

Trang 9

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 26 trang xuanhieu 6320
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo

Bài giảng Tin học đại cương - Bài 11: Nhập, xuất file, struct - Nguyễn Thị Phương Thảo
 TIN ĐẠI CƯƠNG
NHẬP - XUẤT FILE, STRUCT
 Nguyễn Thị Phương Thảo
 Bộ môn KTMT và M, Khoa CNTT
 Trường Đại học Thủy Lợi
 1
 Nội dung chính
1. Thao tác với các tập tin
2. Bài tập
 2
 Sự cần thiết sử dụng file trong C++
 . Câu lệnh cin : nhập dữ liệu từ bàn phím và
 đưa vào các biến
 . Câu lệnh cout : hiển thị giá trị các biểu thức ra
 màn hình
 . Khi kết thúc chương trình thì các biến, các biểu
 thức không còn nữa → dữ liệu bị mất
 . Mong muốn của người sử dụng: có thể lưu trữ
 các biến, các kết quả tính toán ra tập tin
 (file), nhờ vậy kết quả tính toán sẽ không bị
 mất và có thể đọc dữ liệu có trong file để xử
 lí tiếp
. → giải pháp : thao tác với các tập tin (cụ thể
 là dạng văn bản)
 3
 1. Thao tác với các tập tin
 . C++ cung cấp các lớp (class) sau để đọc - ghi
 dữ liệu với file
 ofstream : ghi dữ liệu vào file
 ifstream : đọc dữ liệu từ file
 fstream : cả đọc và ghi file
 . Các lớp này được định nghĩa trong thư viện
 fstream và đặt trong không gian tên std
→ khai báo thư viện fstream ở đầu chương trình :
 #include 
 4
 Ghi ra file bằng ofstream
◮ Tạo đối tượng và gắn nó với một file trong thiết bị lưu trữ
◮ Khi thay cout bởi tên đối tượng, dữ liệu sẽ được ghi vào file
 đại diện bởi đối tượng đó, thay vì in ra màn hình
◮ Cách 1 : tạo một đối tượng chưa gắn với tập tin cụ thể nào,
 sau đó dùng hàm open để mở một tập tin và gắn nó với đối
 tượng vừa tạo
Ví dụ :
 5
 Ghi ra file bằng ofstream
. Cách 2 : mở một tập tin đồng thời gắn nó với tên đối
 tượng
Ví dụ : ofstream ofs("thudo.txt") ;
. Chú ý : sau khi thao tác xong, sử dụng hàm close() để
 đóng file và giải phóng đối tượng
. Kiểm tra việc mở tập tin
 - Sử dụng hàm is_open() : trả về giá trị true nếu việc mở file
 thành công
 -Sử dụng hàm fail() : trả về giá trị true nếu việc mở file thất bại
 6
 Đọc file bằng ifstream
. tương tự như ghi file, có 2 cách
 ifstream ifs; 
 ifs.open("thudo.txt") ;
 Và
 ifstream ifs("thudo.txt") ;
Ví dụ :
 7
 Đọc và ghi file bằng fstream
 Ghi file : sử dụng fstream tương tự như ofstream, chỉ lưu ý khi
 mở file để ghi thì thêm fstream : :outofstr
Mở file để ghi dùng Mở file để ghi dùng
ofstream fstream
ofstream ofs; fstream ofs;
ofs.open(“thudo.txt”); ofs.open(“thudo.txt”, fstream::out);
ofs << ”Madrid" << endl; ofs << ”Madrid" << endl;
ofs << "Paris" << endl; ofs << "Paris" << endl;
ofs.close(); ofs.close();
 8
 Đọc và ghi file bằng fstream
Đọc file: sử dụng fstream tương tự như ifstream, chỉ lưu ý khi
mở file để đọc thì thêm fstream::inifstream fstream
 Mở file để đọc
 ifstream ifs; fstream ifs;
 ifs.open(“hello.txt”); ifs.open(“hello.txt”, fstream::in);
 string dong;
 string dong; while (!ifs.eof())
 while (!ifs.eof()) {
 { getline(ifs, dong);
 getline(ifs, dong); cout << dong << endl;
 cout << dong << endl; }
 } ifs.close();
 ifs.close();
 9
Ví dụ: tạo 1 file để ghi lời chào mừng của bạn
 10
Ví dụ: Đọc và hiển thị nội dung file vừa tạo ra màn
 hình
 11
 2. Bài tập
Bài 1
Viết ra file so_chan.txt tất cả các số chẵn từ
0 đến 30 (mỗi số trên 1 dòng). Sau đó đọc từ
file so_chan.txt trên, thêm 1 vào mỗi giá trị,
viết kết quả vào file so_le.txt.
 12
KIỂU DỮ LIỆU STRUCT
 Sự cần thiết
 Ví dụ : Trong kì thi tuyển sinh ĐH, phòng đào tạo phải
 nhập dữ liệu cho các học sinh, bao gồm:
 - Họ đệm, Tên, Địa chỉ (các chuỗi kí tự)
 - Điểm 3 môn xét tuyển, Tổng điểm (các số thực)
 Sau đó phải sắp xếp Tổng điểm theo thứ tự giảm dần
 Tất cả các dữ liệu khác như Tên, Điểm các môn cũng phải
 thay đổi thứ tự theo thứ tự của Tổng điểm
→ Giải pháp: các dữ liệu Họ đệm, Tên, Điểm các môn, Tổng
 điểm... luôn đi kèm với nhau khi sắp xếp
→ Xây dựng một kiểu dữ liệu mới bao gồm tất cả các dữ liệu
 kể trên
 14
 3. Kiểu dữ liệu tự tạo
. C++ cung cấp một số kiểu dữ liệu cơ bản (số
 nguyên, số thực, logic, . . .)
. C++ cũng cho phép kết hợp các dữ liệu cơ bản
 để xây dựng các kiểu dữ liệu phức tạp hơn. Ví
 dụ:
 - Học sinh : Họ đệm, Tên, Địa chỉ, Điểm 3 môn, Tổng điểm
 - Điểm trên mặt phẳng : tọa độ x, tọa độ y
 15
 Kiểu dữ liệu tự tạo
. Ngoài khai báo dữ liệu, ta còn có thể định
 nghĩa các phép toán, hàm. . . đi kèm với kiểu dữ
 liệu đó
Ví dụ : trên kiểu dữ liệu Học sinh, viết hàm tính
Tổng điểm, xây dựng toán tử so sánh. . .
. Nhiều kiểu dữ liệu tự tạo được sử dụng rất
 phổ biến (string, vector. . .)
 16
 4. Cấu trúc
Là kiểu dữ liệu gộp giống như mảng
Tuy nhiên cấu trúc và mảng khác nhau:
 Mảng là tập các giá trị có cùng kiểu
 Cấu trúc là tập các giá trị có kiểu khác nhau
Định nghĩa cấu trúc:
 Trước khi khai báo biến (trước main())
 Phạm vi toàn cục
 Không cấp phát bộ nhớ
 3
 Khai báo và sử dụng struct
Cú pháp :
 struct {
 } ;
Ví dụ : Khai báo kiểu dữ liệu struct
 struct Point { //kiểu dữ liệu struct tên là Point
 double x, y; //các dữ liệu thành phần
 } ;
 Sử dụng:
 //một biến kiểu Point
 Point diemA;
 //thành phần x = 2.5
 diemA.x = 2.5;
 //thành phần y = 1.8
 diemA.y = 1.8; 18
 Cấu trúc
Ví dụ:
Khai báo cấu trúc:
struct sinhvien //Khai báo cấu trúc sinhvien
{
string hoten; // tên thành viên
string lop; 
float dtb;
};
• Khai báo biến cho kiểu mới này
 sinhvien sv1, sv2;
 Giống như khai báo các kiểu đơn giản
 Biến sv1, sv2 có kiểu là sinhvien
 Nó chứa các giá trị thành viên
 4
 Truy cập các thành viên cấu trúc
• Sử dụng toán tử . để truy cập tới các thành viên
 ◦ sv1.hoten
 ◦ sv1.lop
 ◦ sv1.dtb
• Các biến thành viên
 ◦ Là thành phần của biến cấu trúc
 ◦ Các cấu trúc khác nhau có thể có các biến thành viên cùng 
 tên
 5
 Ví dụ về cấu trúc
Định nghĩa cấu trúc sinh viên gồm tên, tuổi
và điểm. Viết chương trình nhập thông tin
cho 2 sinh viên và in ra thông tin của sinh
viên có điểm cao hơn
 6
Ví dụ về cấu trúc
 6
Ví dụ về cấu trúc
 6
 Phép gán cấu trúc
• Cho trước một cấu trúc tên là 2D_points
• Khai báo hai biến cấu trúc:
 2D_points A, B;
 Cả hai biến là kiểu cấu trúc 2D_points
 Cho phép thực hiện phép gán đơn giản: 
 A = B;
 Việc này sao chép mỗi biến thành viên của B thành 
biến thành viên của A
 10
 Cấu trúc là đối số hàm/giá trị trả về
• Cấu trúc là đối số của hàm:
 ◦ Truyền giá trị
 ◦ Truyền tham chiếu
 ◦ Hoặc kết hợp
• Cũng có thể được trả về bởi hàm:
 ◦ Kiểu trả về là kiểu cấu trúc
 ◦ Lệnh trả về trong định nghĩa hàm gửi biến 
 cấu trúc trở về cho lời gọi
 5. Bài tập
Tự tạo các kiểu dữ liệu mới sau đây.
 1. Kiểu dữ liệu Point mô tả một điểm trên mặt phẳng toạ độ
 2. Kiểu dữ liệu Line mô tả một đoạn thẳng trên mặt phẳng
 toạ độ (gồm hai điểm đầu và cuối)
 3. Kiểu dữ liệu TamGiac mô tả một tam giác trên mặt
 phẳng toạ độ (gồm những thành phần gì ?)
 4. Kiểu dữ liệu GiáoViên lưu trữ thông tin về các giáo viên
 trong trường, gồm : họ tên, địa chỉ, số điện thoại, năm
 vào trường
 5. Kiểu dữ liệu SinhViên lưu trữ thông tin về các sinh viên
 trong trường (gồm những thành phần gì ?)
 26

File đính kèm:

  • pdfbai_giang_tin_hoc_dai_cuong_bai_11_nhap_xuat_file_struct_ngu.pdf