Chủ Nhật, 5 tháng 5, 2024

42. Struct - Dữ Liệu Kiểu Cấu Trúc trong C++

Struct hay cấu trúc là một kiểu dữ liệu mà người dùng tự định nghĩa, là giải pháp khi chúng ta cần giải quyết các bài toán thực tế khi mà đối tượng cần lưu lại trong chương trình có rất nhiều thông tin.

Ví dụ khi muốn lưu thông tin của một sinh viên: tên, năm sinh, email, điểm... thì không có kiểu dữ liệu nào trong C++ phù hợp cả, mà bạn cần tập hợp nhiều kiểu dữ liệu có sẵn vào làm một.

Cú pháp :

struct ten_struct{
     data_type1 data_field1;
     data_type2 data_field2;
     ....
     data_typen data_fieldn;
};



Ví dụ chúng ta sẽ xây dựng một cấu trúc lưu sinh viên gồm :

    Họ tên - Chuỗi
    Email - Chuỗi
    Chuyên ngành - Chuỗi
    Điểm trung bình - Số thực

Ta sẽ xây dựng cấu trúc sinh viên như sau : 



struct SinhVien{
    string hoten;
    string email;
    string chuyenNganh;
    double diemTrungBinh;
};



Sau khi xây dựng xong cấu trúc thì bạn có thể dùng nó như kiểu dữ liệu thông thường và khai báo các biến thuộc kiểu cấu trúc này.

Để truy cập vào các trường dữ liệu của cấu trúc bạn dùng toán tử '.'
 

Chúng ta thử với đoạn code sau tren IDE Online:

#include <iostream>
#include <string>

using namespace std;

struct SinhVien{
    string hoten;
    string email;
    string chuyenNganh;
    double diemTrungBinh;
};
typedef struct SinhVien SinhVien;
//Thay struct SinhVien = SinhVien

int main()
{
    SinhVien s;
    s.hoten = "Tran Van An";
    s.email = "tranvanadatvietlt@dvmail.com";
    s.chuyenNganh = "Cong Nghe Thong Tin";
    s.diemTrungBinh = 8.1;
    cout <<"Thong tin sinh vien : " << endl;
    cout <<"Ho ten : "<< s.hoten << endl;
    cout <<"Email : "<< s.email << endl;
    cout <<"Lop : "<< s.chuyenNganh << endl;
    cout <<"Diem Trung Binh : "<< s.diemTrungBinh << endl;

    return 0;
}

Đây là kết quả:


 

Phần sau chúng ta sẽ áp dụng vào chương trình tào lao phiên bản 2.

Phần này chúng ta sẽ gải thích một số lệnh mới.

1. Trước hết là khai báo cấu trúc SinhVien

struct SinhVien{
    string hoten;
    string email;
    string chuyenNganh;
    double diemTrungBinh;
};

Chúng ta có thể thêm bất cứ thông tin gì, ví dụ địa chỉ, cấu trúc sẽ trở thành


struct SinhVien{
    string hoten;
    string email;
   
string diaChi;
    string chuyenNganh;
    double diemTrungBinh;
};

2. Tiếp theo là lệnh:

typedef struct SinhVien SinhVien;


Trong C/C++ khi khai báo bạn cần thêm từ khóa struct ở trước, nếu bạn không muốn khai báo từ khóa struct mỗi khi dùng cấu trúc thì có thể typedef để định nghĩa lại kiểu cho cấu trúc.

Lệnh trên có nghĩa là thay vì phải khai báo struct SinhVien thì chúng ta có thể khai báo y như một biến là SinhVien

3. Lệnh tiếp theo:

SinhVien s; 

Ta khai báo một biến s với định dạng kiểu SinhVien

Ta hoàn toàn có thể khai báo:

struct SinhVien s;

Cả hai cách khai báo đều được vì chúng ta đã sử dụng typedef ở trên.


Phần tiếp theo


Phần trước

 


Không có nhận xét nào:

Đăng nhận xét