Dữ liệu kiểu cấu trúc và hợp

39 471 0
Dữ liệu kiểu cấu trúc và hợp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương Dữ liệu kiểu cấu trúc hợp CHƯƠNG DỮ LIỆU KIỂU CẤU TRÚC VÀ HỢP Kiểu cấu trúc Cấu trúc tự trỏ danh sách liên kết Kiểu hợp Kiểu liệt kê Để lưu trữ giá trị gồm nhiều thành phần liệu giống ta có kiểu biến mảng Thực tế nhiều liệu tập kiểu liệu khác tập hợp lại, để quản lý liệu kiểu C++ đưa kiểu liệu cấu trúc Một ví dụ liệu kiểu cấu trúc bảng lý lịch nhân lưu bảng gồm nhiều kiểu liệu khác họ tên, tuổi, giới tính, mức lương … I KIỂU CẤU TRÚC Khai báo, khởi tạo Để tạo kiểu cấu trúc NSD cần phải khai báo tên kiểu (là tên gọi NSD tự đặt), tên với thành phần liệu có kiểu cấu trúc Một kiểu cấu trúc khai báo theo mẫu sau: struct { thành phần ; } ; − Mỗi thành phần giống biến riêng kiểu, gồm kiểu tên thành phần Một thành phần gọi trường − Phần tên kiểu cấu trúc phần danh sách biến có khơng Tuy nhiên khai báo kí tự kết thúc cuối phải dấu chấm phẩy (;) − Các kiểu cấu trúc phép khai báo lồng nhau, nghĩa thành phần kiểu cấu trúc lại trường có kiểu cấu trúc − Một biến có kiểu cấu trúc phân bố nhớ cho thực liên tục theo thứ tự xuất khai báo 145 Chương Dữ liệu kiểu cấu trúc hợp − Khai báo biến kiểu cấu trúc giống khai báo biến kiểu sở dạng: struct ; // kiểu cũ C ; // C++ Các biến khai báo 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 thành phần nguyên chứa tử số mẫu số struct Phanso { int tu ; int mau ; }; hoặc: struct Phanso { int tu, mau ; } − Kiểu ngày tháng gồm 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 } ; biến holiday khai báo kèm kiểu khởi tạo số 2000 Các giá trị khởi tạo gán cho thành phần theo thứ tự khai báo, tức ng = 1, th = nam = 2000 − Kiểu Lop dùng chứa thông tin lớp học gồm tên lớp sĩ số sinh viên Các biến kiểu Lop khai báo daihoc caodang, daihoc khởi tạo giá trị {"K41T", 60} với ý nghĩa tên lớp đại học K41T sĩ số 60 sinh viên struct Lop { char tenlop[10], 146 Chương Dữ liệu kiểu cấu trúc hợp int soluong; }; struct Lop daihoc = {"K41T", 60}, caodang ; hoặc: Lop daihoc = {"K41T", 60}, caodang ; − Kiểu Sinhvien gồm có trường hoten để lưu trữ họ tên sinh viên, ns lưu trữ ngày sinh, gt lưu trữ giới tính dạng số (qui ước 1: nam, 2: nữ) cuối trường diem lưu trữ điểm thi sinh viên Các trường có kiểu khác 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 với cấu trúc Sinhvien có biến x, trỏ p mảng K41T với 60 phần tử kiểu Sinhvien Một biến y khai báo thêm kèm theo khởi tạo giá trị {"NVA", {1,1,1980}, 1}, tức họ tên sinh viên y "NVA", ngày sinh 1/1/1980, giới tính nam điểm thi để trống Đây kiểu khởi tạo thiếu giá trị, giống khởi tạo mảng, giá trị để trống phải nằm cuối giá trị khởi tạo (tức thành phần bỏ khởi tạo không nằm xen kẽ thành phần khởi tạo).Ví dụ cịn minh hoạ cho cấu trúc lồng nhau, cụ thể kiểu cấu trúc Sinhvien có thành phần kiểu cấu trúc thành phần ns Truy nhập thành phần kiểu cấu trúc Để truy nhập vào thành phần kiểu cấu trúc ta sử dụng cú pháp: tên biến.tên thành phần tên biến → tên thành phần biến 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; 147 Chương Dữ liệu kiểu cấu trúc hợp }; Lop daihoc = "K41T", caodang ; caodang.tenlop = daihoc.tenlop ; // gán tên lớp cđẳng tên lớp đhọc caodang.siso++; // tăng sĩ số lớp caodang lên − Đối với biến trỏ: tên biến → tên thành phần Ví dụ: struct Sinhvien { char hoten[25] ; Ngaythang ns; int gt; float diem ; } x, *p, K41T[60]; Sinhvien y = {"NVA", {1,1,1980}, 1} ; y.diem = 5.5 ; // gán điểm thi cho sinh viên y p = new Sinhvien ; // cấp nhớ chứa sinh viên strcpy(p→hoten, y.hoten) ; // gán họ tên y cho sv trỏ p cout x.ns.th >> x.ns.nam; cin >> x.gt; cin >> x.diem cout

Ngày đăng: 30/09/2013, 03:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan