Tải bản đầy đủ (.pdf) (5 trang)

CPP6 cautruc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (794.05 KB, 5 trang )

Nội dung
Giới thiệu kiểu cấu trúc
Khai báo kiểu cấu trúc
Kiểu cấu trúc lồng nhau
Sử dụng kiểu cấu trúc
Bài tập

Lương Trần Hy Hiến
Khoa Toán – Tin học
Đại học Sư phạm TPHCM

1

Giới thiệu kiểu cấu trúc

2

Giới thiệu kiểu cấu trúc

Các kiểu dữ liệu cơ sở chưa đủ mềm dẻo cho
các bài toán thực tế
sự vật, hiện tượng trong thực tế phức tạp, có
nhiều tính chất khác nhau
Người lập trình cần có định nghĩa các kiểu dữ
liệu phù hợp với bài toán cụ thể
dễ sử dụng
có sự liên hệ giữa các tính chất khác nhau

Tạo ra kiểu dữ liệu phức tạp dựa trên các kiểu
dữ liệu đã có
dữ liệu có cấu trúc


Tạo ra các chương trình con riêng để làm việc
với dữ liệu mới
Sự phát triển
Struct – Cấu trúc (lập trình thủ tục)
Object – Đối tượng (lập trình hướng đối
tượng)
3

4


Giới thiệu kiểu cấu trúc

Giới thiệu kiểu cấu trúc(tt)

Mô tả đối tượng là nhân viên, thông tin bao gồm:
họ tên, quê quán, năm sinh, thâm niên công tác,
địa chỉ, giới tính
Thể hiện trên máy tính, với mỗi thông tin
chúng ta cần một biến tương ứng
để mô tả một nhân viên chúng ta cần 6 biến:
string hoten, quequan, diachi;
int namsinh, TNCT, gioitinh;

Mô tả hai nhân viên
cần 12 biến
string hoten1, quequan1, diachi1;
int namsinh1, TNCT1, gioitinh1;
string hoten2, quequan2, diachi2;
int namsinh2, TNCT2, gioitinh2;

Làm sao đặt lại năm sinh của nhân viên thứ nhất
???
namsinh1 = 1979;
Làm sao đặt lại quê quán của nhân viên thứ hai
???
quequan2 = “Khánh Hòa”;
5

Giới thiệu kiểu cấu trúc(tt)

6

Giới thiệu kiểu cấu trúc

Nhận xét:
Tập các biến string hoten1, quequan1,
diachi1;

Một cấu trúc là một tập hợp các biến có liên
quan với nhau có thể khác kiểu.
Trong C++, kiểu cấu trúc là kiểu do người dùng
định nghĩa. Nó được sử dụng như là các kiểu cơ
bản khác của C++.
Sự khác nhau giữa cấu trúc và mảng:
Mảng = tập hợp các biến cùng kiểu <> cấu
trúc = tập hợp các biến có thể khác kiểu.
Tất cả các biến trong mảng chỉ có một tên <>
các biến trong cấu trúc có thể khác tên.

int namsinh1, TNCT1, gioitinh1 thuộc về cùng một nhóm

(nhân viên thứ nhất)

Tập các biến string hoten2, quequan2,
diachi2;
int namsinh2, TNCT2, gioitinh2 thuộc về cùng một nhóm
(nhân viên thứ hai)
Cần cơ chế hỗ trợ điều này
gom nhóm các biến lại với
nhau để dễ hiểu, dễ kiểm soát.
7

8


Khai báo kiểu cấu trúc

Ví dụ

Cú pháp

Tạo kiểu cấu trúc NhanVien
Tên cấu trúc
struct NhanVien{
string hoten, quequan, diachi;
NhanVien
int namsinh, TNCT, gioitinh;
có 6 thành
phần
};
Tạo kiểu cấu trúc Diem

Tên cấu trúc
struct Diem{
Diem có 2
int x;
thành phần
int y;
};

struct Tên_Cấu_trúc{
Kiểu thành_phần_1;
Kiểu thành_phần_2;

};
Hoặc theo C
typedef struct {
// các thành phần của struct
} Tên_Cấu_trúc;
9

10

Sử dụng kiểu cấu trúc

Ví dụ

Tên_Cấu_trúc trở thành một kiểu do người dùng định nghĩa và có
thể được sử dụng để định nghĩa biến như các kiểu khác của C++
Tên_Cấu_trúc Tên_Biến;
Để truy cập đến một thành phần của biến cấu trúc dùng toán tử “.”
Tên_Biến_Cấu_Trúc.Tên_Thành_Phần

VD:
NhanVien nv1, nv2;
nv1.namsinh = 1979; // Gánnăm sinh cho nhân viên 1
nv2.quequan = “Khánh Hòa”; // đặt quê quán cho nhân viên 2

Tạo kiểu cấu trúc mô tả đối tượng ngày
Tên cấu trúc
struct Ngay{
Ngay có 3
int ngay;
thành phần
int thang;
int nam;
};
Tạo kiểu cấu trúc mô tả đối tượng phân số
struct PhanSo{
int tu;
PhanSo có 2
Tên cấu trúc
int mau;
thành phần
};

hoten

quequan Diachi

hoten

quequan Diachi


namsinh

TNCT

namsinh

TNCT

nv1
11

gioitinh

gioitinh

nv2
12


Ví dụ
Diem p1, p2;

Ví dụ
x=10

PhanSo ps1, ps2;

y=5


p1

p1.x = 10; p1.y = 5;
p2.x = 7; p2.y = 8;
x=7

mau=3

ps1
ps1.tu = 1; ps1.mau = 3;
ps2.tu = 7; ps2.mau = 13;

y=8

p2

tu=7

mau=13

ps2

Ngay n1, n2;

cin >> ps1.tu >> ps1.mau;
ngay=1

n1.ngay = 1; n1.thang = 10;
n1.nam = 1986;
n2.ngay = 27; n2.thang = 7;

n1.nam = 2009;

tu=1

thang=10

nam=1986

n1

Biến kiểu int
Biến kiểu int

ngay=27

thang=7

nam=2009

n2
13

14

Sử dụng kiểu cấu trúc

Kiểu cấu trúc lồng nhau

Có thể gán hai biến thuộc cùng một kiểu cấu trúc cho
nhau

PhanSo ps1, ps2;

Một khi kiểu cấu trúc đã được định nghĩa thì kiểu cấu
trúc có thể được sử dụng như bất kỳ kiểu cơ bản nào
của C++
trong định nghĩa kiểu cấu trúc mới có thể sử
dụng kiểu cấu trúc cũ.
struct NhanVien{
string hoten, quequan, diachi;
int namsinh, TNCT, gioitinh;
};
struct PhongBan{
NhanVien truongphong;
int soNV;
string tenphong;
};

ps1.tu = 1; ps1.mau = 3;
ps2 = ps1; //ps2.tu = ps1.tu; ps2.mau = ps1.mau;
Ngay n1, n2;
n1.ngay = 1; n1.thang = 10; n1.nam = 1986;
n2 = n1; // ???
15

16


Mảng các đối tượng cấu trúc

Bài tập


struct PhongBan{
NhanVien truongphong;
int soNV;
string tenphong;
NhanVien DSNhanVien[100];
};

1) Viết bài tập phân số sử dụng kiểu cấu trúc
2) Viết các kiểu cấu trúc mô tả các đối tượng
điểm, đoạn thẳng, tam giác, hình chữ nhật,
hình thang, đa giác.
3) Viết các hàm tính chu vi của các đối tượng
trên.

17

Bài tập 4

18

Bài tập 5

Tạo kiểu cấu trúc MyDate chứa thông tin ngày
tháng năm.
Viết hàm kiểm tra một cấu trúc có thông tin ngày
tháng năm hợp lệ hay không.
Viết hàm tính xem một ngày là ngày thứ mấy
trong tuần.


Xây dựng kiểu cấu trúc sinh viên chứa MyDate,
chứa điểm trung bình
Xây dựng hàm sắp xếp một danh sách (mảng)
sinh viên theo thứ tự điểm trung bình từ cao
xuống thấp.
Xây dựng hàm tìm kiếm sinh viên theo mã sinh
viên.

19

20



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×