Bài tập hướng dẫn sử dụng struct c++

Trong ngôn ngữ lập trình C++, các lớp và cấu trúc [struct] là các bản thiết kế được sử dụng để tạo ra thể hiện của một lớp. Struct trong C++ được sử dụng cho các đối tượng nhẹ như Hinhtron, Color, Point v.v.

Không giống như lớp, struct trong C++ kiểu giá trị hơn là kiểu tham chiếu. Nó rất hữu ích nếu bạn có dữ liệu không có ý định sửa đổi sau khi tạo struct.

Struct trong C++ là một tập hợp các loại dữ liệu khác nhau. Nó tương tự như lớp chứa các loại dữ liệu khác nhau.

Nội dung chính

Cú pháp

struct structure_name {

// khai báo thành viên.  
}

Trong khai báo trên, một cấu trúc được khai báo bằng cách đặt trước từ khóa struct theo sau là định danh [tên cấu trúc]. Bên trong các dấu ngoặc nhọn, chúng ta có thể khai báo các biến thành viên của các loại khác nhau. Ví dụ:

struct Student {

char name[20];
int id;
int age;  
}

Trong trường hợp trên, Student là một cấu trúc chứa ba biến name, id và age. Khi cấu trúc được khai báo, không có bộ nhớ được phân bổ. Khi biến của cấu trúc được tạo, thì bộ nhớ được cấp phát.

Làm thế nào để tạo thể hiện của struct

Biến cấu trúc có thể được định nghĩa là:

Ở đây, s là một biến cấu trúc của kiểu Student. Khi biến cấu trúc được tạo, bộ nhớ sẽ được phân bổ. Cấu trúc sinh viên chứa một biến char và hai biến số nguyên. Do đó, bộ nhớ cho một biến char là 1 byte và hai int sẽ là 2 * 4 = 8. Tổng bộ nhớ chiếm bởi biến s là 9 byte.

Cách truy cập biến struct

Biến của struct có thể được truy cập bằng cách sử dụng thể hiện của struct theo sau bởi toán tử [.] Và sau đó là trường của struct. Ví dụ:

  • Chương trình C để đọc, in tên và thông tin khác của các sinh viên bởi sử dụng struct trong C

/**
  • Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam *
  • @author cafedevn
  • Contact: cafedevn@gmail.com
  • Fanpage: //www.facebook.com/cafedevn
  • Instagram: //instagram.com/cafedevn
  • Twitter: //twitter.com/CafedeVn
  • Linkedin: //www.linkedin.com/in/cafe-dev-407054199/ */
# include # define SIZE 50 struct student { char name[30]; int rollno; int sub[3]; }; int main[] { int i, j, max, count, total, n, a[SIZE], ni; struct student st[SIZE]; printf["Nhap so luong sinh vien: "]; scanf["%d", &n]; /* vong lap for de nhap ten va ma sinh vien*/ for [i = 0; i < n; i++] { printf["\nNhap ten va ma sv cho sinh vien %d: ", i]; scanf["%s", &st[i].name]; scanf["%d", &st[i].rollno]; } /* vong lap for de doc mon hoc thu i cua sinh vien thu i*/ for [i = 0; i < n; i++] { for [j = 0; j = maximumLiteracyRate] { maximumLiteracyRate = st[i].literacyRate; ml++; } if [st[i].income > maximumIncome] { maximumIncome = st[i].income; mi++; } } printf["\nThanh pho co ti le biet doc viet cao nhat: %s", st[ml].name]; printf["\nThanh pho co tong thu nhap cao nhat: %s", st[mi].name]; return [0]; }

  • Chương trình C để sử dụng struct bên trong union và hiển thị nội dung các phần tử của struct

/**
  • Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam *
  • @author cafedevn
  • Contact: cafedevn@gmail.com
  • Fanpage: //www.facebook.com/cafedevn
  • Instagram: //instagram.com/cafedevn
  • Twitter: //twitter.com/CafedeVn
  • Linkedin: //www.linkedin.com/in/cafe-dev-407054199/ */
# include # include int main[] { struct student { char name[30]; char sex[1]; int rollno; float mark; }; union details { struct student st; }; union details set; printf["Nhap thong tin sinh vien:"]; printf["\nNhap ten sinh vien: "]; scanf["%s", &set.st.name]; printf["\nNhap ma sinh vien: "]; scanf["%d", &set.st.rollno]; printf["\nNhap gioi tinh: "]; scanf["%s", &set.st.sex]; printf["\nNhap diem thi:"]; scanf["%f", &set.st.mark]; printf["\nHien thi thong tin sinh vien: \n"]; printf["\Ho ten: %s", set.st.name]; printf["\nMSV: %d", set.st.rollno]; printf["\nGioi tinh: %s", set.st.sex]; printf["\nDiem thi: %f", set.st.mark]; return[0]; }

  • Chương trình C để tìm kích cỡ của struct

/**
  • Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam *
  • @author cafedevn
  • Contact: cafedevn@gmail.com
  • Fanpage: //www.facebook.com/cafedevn
  • Instagram: //instagram.com/cafedevn
  • Twitter: //twitter.com/CafedeVn
  • Linkedin: //www.linkedin.com/in/cafe-dev-407054199/ */
# include struct stud { int roll; char name[10]; int marks; }; int main[] { int size; struct stud s; size = sizeof[s]; printf["\nKich co cua struct: %d", size]; return[0]; }

  • Chương trình C để sắp xếp các struct dựa vào phần tử của Struct và sau đó hiển thị thông tin

/**
  • Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam *
  • @author cafedevn
  • Contact: cafedevn@gmail.com
  • Fanpage: //www.facebook.com/cafedevn
  • Instagram: //instagram.com/cafedevn
  • Twitter: //twitter.com/CafedeVn
  • Linkedin: //www.linkedin.com/in/cafe-dev-407054199/ */
# include # include struct tennis { char pname[20]; char tname[20]; int avg; } player[3], temp; int main[] { int i, j, n; for [i = 0; i < 3; i++] { printf["\nNhap ten nguoi choi: "]; scanf["%s", &player[i].pname]; printf["\nNhap ten truong: "]; scanf["%s", &player[i].tname]; printf["\nNhap diem so: "]; scanf["%d", &player[i].avg]; printf["\n"]; } n = 3; for [i = 1; i < n; i++] for [j = 0; j < n - i; j++] { if [strcmp[player[j].tname, player[j + 1].tname] > 0] { temp = player[j]; player[j] = player[j + 1]; player[j + 1] = temp; } } for [i = 0; i < n; i++] { printf["\n%s\t%s\t%d",player[i].pname,player[i].tname,player[i].avg]; } return[0]; }

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!

Chủ Đề