Struct trong c (Bài 9)

Struct trong c được sử dụng để định nghĩa kiểu dữ liệu mới dựa trên kiểu dữ liệu hiện có và có đặc điểm tập hợp nhiều thành phần có kiểu dữ liệu khác nhau.

Ví dụ định nghĩa kiểu dữ liệu tên SinhVien gồm các thành phần như họ tên (kiểu chuỗi), nơi sinh (kiểu chuỗi), điểm trung bình (kiểu số), ….

Sử dụng kiểu dữ liệu mở rộng struct trong các yêu cầu như: Chương trình quản lý nhân sự, mỗi nhân sự gồm họ tên, giới tính, ngày sinh, nơi sinh, bằng cách,… Chương trình quản lý điểm của sinh viên. Các thông tin cần quản lý gồm mã sinh viên, họ tên, môn học, điểm,…

Struct trong c – Cú pháp khai báo

struct Kiểu_Dữ_Liệu_Mới {
  Kiểu_Dữ_Liệu  Thành_Phần_1;
  Kiểu_Dữ_Liệu  Thành_Phần_2;
  ...
  Kiểu_Dữ_Liệu  Thành_Phần_n;
};

Trong đó Kiểu_Dữ_Liệu có thể là int, long, float, double, char. Bên dưới là một ví dụ về định nghĩa kiểu dữ liệu date gồm các thành phần như ngày, tháng và năm

struct date {
 int ngay;
 int thang;
 int nam;
};

Struct trong c – Sử dụng

Khai báo biến kiểu struct

Kiểu_Dữ_Liệu_Mới Tên_Biến;

Ví dụ khai báo biến kiểu date

date d;

Truy cập các thành phần bên trong struct

Tên_Biến.Tên_Thành_Phần;

Ví dụ truy cập các thành phần của biến d

printf("%d", d.ngay);   //Hiển thị ngày
printf("%d", d.thang);  //Hiển thị tháng
printf("%d", d.nam);   //Hiển thị năm

Bài tập vận dụng: Định nghĩa kiểu dữ liệu môn học biết rằng mỗi môn học gồm tên môn, số giờ.

Struct trong c – Tổng kết

Định nghĩa kiểu dữ liệu mới với struct

Sử dụng kiểu dữ liệu struct

Struct trong c – Bài tập thực hành

Bài thực hành số 1: Viết chương trình c lưu tên và tuổi của 5 nhân viên sử dụng mảng cấu trúc (struct). Chương trình cho phép tìm kiếm thông tin nhân viên theo tên.

Bài thực hành số 2:  Cho một danh sách lưu thông tin của các thí sinh khi thi tuyển vào lớp 10 ban A, thông tin gồm :

  • Số báo danh (chuỗi, 5 ký tự)
  • Họ tên (chuỗi, tối đa 25 ký tự)
  • Điểm toán (số thực)
  • Điểm lý (số thực)
  • Điểm anh văn (số thực)
  • Điểm tổng (số nguyên, trong đó điểm tổng= điểm toán+ điểm lý + điểm anh văn).

Yêu cầu thực hiện:

  • Nhập danh sách thí sinh và điểm
  • Hiển thông tin những thí sinh có tổng điểm >= 18 và không có môn nào dưới 5
  • Cập nhật điểm thí sinh theo mã số (mã số được nhập vào)

Xem giáo trình môn lập trình c

Trả lời