Giáo trình C++_Dữ liệu cấu trúc và hợp
Số trang: 39
Loại file: pdf
Dung lượng: 416.86 KB
Lượt xem: 31
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tham khảo tài liệu giáo trình c++_dữ liệu cấu trúc và hợp, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Giáo trình C++_Dữ liệu cấu trúc và hợpChương 5. Dữ liệu kiểu cấu trúc và hợp CHƯƠNG 5 DỮ LIỆU KIỂU CẤU TRÚC VÀ HỢP Kiểu cấu trúc Cấu trúc tự trỏ và danh sách liên kết Kiểu hợp Kiểu liệt kê Để lưu trữ các giá trị gồm nhiều thành phần dữ liệu giống nhau ta có kiểu biếnmảng. Thực tế rất nhiều dữ liệu là tập các kiểu dữ liệu khác nhau tập hợp lại, để quảnlý dữ liệu kiểu này C++ đưa ra kiểu dữ liệu cấu trúc. Một ví dụ của dữ liệu kiểu cấutrúc là một bảng lý lịch trong đó mỗi nhân sự được lưu trong một bảng gồm nhiều kiểudữ liệu khác nhau như họ tên, tuổi, giới tính, mức lương …I. KIỂU CẤU TRÚC 1. Khai báo, khởi tạo Để tạo ra một kiểu cấu trúc NSD cần phải khai báo tên của kiểu (là một tên gọi doNSD tự đặt), tên cùng với các thành phần dữ liệu có trong kiểu cấu trúc này. Một kiểucấu trúc được khai báo theo mẫu sau: struct { các thành phần ; } ; Mỗi thành phần giống như một biến riêng của kiểu, nó gồm kiểu và tên thành phần. Một thành phần cũng còn được gọi là trường. Phần tên của kiểu cấu trúc và phần danh sách biến có thể có hoặc không. Tuy nhiên trong khai báo kí tự kết thúc cuối cùng phải là dấu chấm phẩy (;). Các kiểu cấu trúc được phép khai báo lồng nhau, nghĩa là một thành phần của kiểu cấu trúc có thể lại là một trường có kiểu cấu trúc. Một biến có kiểu cấu trúc sẽ được phân bố bộ nhớ sao cho các thực hiện của nó được sắp liên tục theo thứ tự xuất hiện trong khai báo. 145Chương 5. Dữ liệu kiểu cấu trúc và hợp Khai báo biến kiểu cấu trúc cũng giống như khai báo các biến kiểu cơ sở dưới dạng: struct ; // kiểu cũ trong C hoặc ; // trong C++ Các biến được khai báo cũng có thể đi kèm khởi tạo: biến = { giá trị khởi tạo } ;Ví dụ: Khai báo kiểu cấu trúc chứa phân số gồm 2 th ành phần nguyên chứa tử số và mẫu số. struct Phanso { int tu ; int mau ; }; hoặc: struct Phanso { int tu, mau ; } Kiểu ngày tháng gồm 3 thành phần nguyên chứa ngày, tháng, năm. struct Ngaythang { int ng ; int th ; int nam ; } holiday = { 1,5,2000 } ; một biến holiday cũng được khai báo kèm cùng kiểu này và được khởi tạo bởi bộsố 1. 5. 2000. Các giá trị khởi tạo này lần lượt gán cho các thành phần theo đúng thứ tựtrong khai báo, tức ng = 1, th = 5 và nam = 2000. Kiểu Lop dùng chứa thông tin về một lớp học gồm tên lớp và sĩ số sinh viên. Các biến kiểu Lop được khai báo là daihoc và caodang, trong đó daihoc được khởi tạo bởi bộ giá trị {K41T, 60} với ý nghĩa tên lớp đại học là K41T và sĩ số là 60 sinh viên. struct Lop { char tenlop[10],146Chương 5. Dữ liệu kiểu cấu trúc và hợp int soluong; }; struct Lop daihoc = {K41T, 60}, caodang ; hoặc: Lop daihoc = {K41T, 60}, caodang ; Kiểu Sinhvien gồm có các trường hoten để lưu trữ họ và tên sinh viên, ns lưu trữ ngày sinh, gt lưu trữ giới tính dưới dạng số (qui ước 1: nam, 2: nữ) và cuối cùng trường diem lưu trữ điểm thi của sinh viên. Các trường trên đều có kiểu khác nhau. struct Sinhvien { char hoten[25] ; Ngaythang ns; int gt; float diem ; } x, *p, K41T[60]; Sinhvien y = {NVA, {1,1,1980}, 1} ; Khai báo cùng với cấu trúc Sinhvien có các biến x, con trỏ p và mảng K41T với60 phần tử kiểu Sinhvien. Một biến y được khai báo thêm và kèm theo khởi tạo giá trị{NVA, {1,1,1980}, 1}, tức họ tên của sinh viên y là NVA, ngày sinh là 1/1/1980,giới tính nam và điểm thi để trống. Đây là kiểu khởi tạo thiếu giá trị, giống như khởitạo mảng, các giá trị để trống phải nằm ở cuố i bộ giá trị khởi tạo (tức các thành phầnbỏ khởi tạo không được nằm xen kẽ giữa những thành phần được khởi tạo).Ví dụ nàycòn minh hoạ cho các cấu trúc lồng nhau, cụ thể trong kiểu cấu trúc Sinhvien có mộtthành phần cũng kiểu cấu trúc là thành phần ns. 2. T ruy nhập các thành phần kiểu cấu trúc Để truy nhập vào các thành phần kiểu cấu trúc ta sử dụng cú pháp: tên biến.tênthành phần hoặc tên biến tên thành phần đối với biến con trỏ cấu trúc. Cụ thể: Đối với biến thường: tên biến.tên thành phần Ví dụ: struct Lop { char tenlop[10]; int siso; ...
Nội dung trích xuất từ tài liệu:
Giáo trình C++_Dữ liệu cấu trúc và hợpChương 5. Dữ liệu kiểu cấu trúc và hợp CHƯƠNG 5 DỮ LIỆU KIỂU CẤU TRÚC VÀ HỢP Kiểu cấu trúc Cấu trúc tự trỏ và danh sách liên kết Kiểu hợp Kiểu liệt kê Để lưu trữ các giá trị gồm nhiều thành phần dữ liệu giống nhau ta có kiểu biếnmảng. Thực tế rất nhiều dữ liệu là tập các kiểu dữ liệu khác nhau tập hợp lại, để quảnlý dữ liệu kiểu này C++ đưa ra kiểu dữ liệu cấu trúc. Một ví dụ của dữ liệu kiểu cấutrúc là một bảng lý lịch trong đó mỗi nhân sự được lưu trong một bảng gồm nhiều kiểudữ liệu khác nhau như họ tên, tuổi, giới tính, mức lương …I. KIỂU CẤU TRÚC 1. Khai báo, khởi tạo Để tạo ra một kiểu cấu trúc NSD cần phải khai báo tên của kiểu (là một tên gọi doNSD tự đặt), tên cùng với các thành phần dữ liệu có trong kiểu cấu trúc này. Một kiểucấu trúc được khai báo theo mẫu sau: struct { các thành phần ; } ; Mỗi thành phần giống như một biến riêng của kiểu, nó gồm kiểu và tên thành phần. Một thành phần cũng còn được gọi là trường. Phần tên của kiểu cấu trúc và phần danh sách biến có thể có hoặc không. Tuy nhiên trong khai báo kí tự kết thúc cuối cùng phải là dấu chấm phẩy (;). Các kiểu cấu trúc được phép khai báo lồng nhau, nghĩa là một thành phần của kiểu cấu trúc có thể lại là một trường có kiểu cấu trúc. Một biến có kiểu cấu trúc sẽ được phân bố bộ nhớ sao cho các thực hiện của nó được sắp liên tục theo thứ tự xuất hiện trong khai báo. 145Chương 5. Dữ liệu kiểu cấu trúc và hợp Khai báo biến kiểu cấu trúc cũng giống như khai báo các biến kiểu cơ sở dưới dạng: struct ; // kiểu cũ trong C hoặc ; // trong C++ Các biến được khai báo cũng có thể đi kèm khởi tạo: biến = { giá trị khởi tạo } ;Ví dụ: Khai báo kiểu cấu trúc chứa phân số gồm 2 th ành phần nguyên chứa tử số và mẫu số. struct Phanso { int tu ; int mau ; }; hoặc: struct Phanso { int tu, mau ; } Kiểu ngày tháng gồm 3 thành phần nguyên chứa ngày, tháng, năm. struct Ngaythang { int ng ; int th ; int nam ; } holiday = { 1,5,2000 } ; một biến holiday cũng được khai báo kèm cùng kiểu này và được khởi tạo bởi bộsố 1. 5. 2000. Các giá trị khởi tạo này lần lượt gán cho các thành phần theo đúng thứ tựtrong khai báo, tức ng = 1, th = 5 và nam = 2000. Kiểu Lop dùng chứa thông tin về một lớp học gồm tên lớp và sĩ số sinh viên. Các biến kiểu Lop được khai báo là daihoc và caodang, trong đó daihoc được khởi tạo bởi bộ giá trị {K41T, 60} với ý nghĩa tên lớp đại học là K41T và sĩ số là 60 sinh viên. struct Lop { char tenlop[10],146Chương 5. Dữ liệu kiểu cấu trúc và hợp int soluong; }; struct Lop daihoc = {K41T, 60}, caodang ; hoặc: Lop daihoc = {K41T, 60}, caodang ; Kiểu Sinhvien gồm có các trường hoten để lưu trữ họ và tên sinh viên, ns lưu trữ ngày sinh, gt lưu trữ giới tính dưới dạng số (qui ước 1: nam, 2: nữ) và cuối cùng trường diem lưu trữ điểm thi của sinh viên. Các trường trên đều có kiểu khác nhau. struct Sinhvien { char hoten[25] ; Ngaythang ns; int gt; float diem ; } x, *p, K41T[60]; Sinhvien y = {NVA, {1,1,1980}, 1} ; Khai báo cùng với cấu trúc Sinhvien có các biến x, con trỏ p và mảng K41T với60 phần tử kiểu Sinhvien. Một biến y được khai báo thêm và kèm theo khởi tạo giá trị{NVA, {1,1,1980}, 1}, tức họ tên của sinh viên y là NVA, ngày sinh là 1/1/1980,giới tính nam và điểm thi để trống. Đây là kiểu khởi tạo thiếu giá trị, giống như khởitạo mảng, các giá trị để trống phải nằm ở cuố i bộ giá trị khởi tạo (tức các thành phầnbỏ khởi tạo không được nằm xen kẽ giữa những thành phần được khởi tạo).Ví dụ nàycòn minh hoạ cho các cấu trúc lồng nhau, cụ thể trong kiểu cấu trúc Sinhvien có mộtthành phần cũng kiểu cấu trúc là thành phần ns. 2. T ruy nhập các thành phần kiểu cấu trúc Để truy nhập vào các thành phần kiểu cấu trúc ta sử dụng cú pháp: tên biến.tênthành phần hoặc tên biến tên thành phần đối với biến con trỏ cấu trúc. Cụ thể: Đối với biến thường: tên biến.tên thành phần Ví dụ: struct Lop { char tenlop[10]; int siso; ...
Tìm kiếm theo từ khóa liên quan:
kỹ thuật lập trình giáo trình C++ giáo trình môn lập trình tài liệu học lập trình bài giảng môn lập trìnhTài liệu có liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 310 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 250 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 223 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 189 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 160 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 127 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 121 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 115 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 113 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 111 0 0