Cấu trúc là tập hợp các biến kiểu dữ liệu khác nhau, được nhóm lại với nhau dưới một tên duy nhất.
Đặc điểm của cấu trúc
Các đặc điểm của cấu trúc trong ngôn ngữ lập trình C như sau -
-
Có thể sao chép nội dung của tất cả các phần tử cấu trúc của các kiểu dữ liệu khác nhau sang một biến cấu trúc khác cùng loại bằng cách sử dụng toán tử gán.
-
Để xử lý các kiểu dữ liệu phức tạp, tốt hơn nên tạo cấu trúc trong một cấu trúc khác, được gọi là cấu trúc lồng nhau.
-
Có thể chuyển toàn bộ cấu trúc, các phần tử riêng lẻ của cấu trúc và địa chỉ của cấu trúc cho một hàm.
-
Có thể tạo con trỏ cấu trúc.
Chương trình
Sau đây là chương trình C để lưu trữ hệ thống kiểm kê bằng cách sử dụng các cấu trúc -
#include<stdio.h> #include<conio.h> void main(){ struct date{ int day; int month; int year; }; struct details{ char name[20]; int price; int code; int qty; struct date mfg; }; struct details item[50]; int n,i; printf("Enter number of items:"); scanf("%d",&n); fflush(stdin); for(i=0;i<n;i++){ fflush(stdin); printf("Item name:"); scanf("%s",item[i].name); fflush(stdin); printf("Item code:"); scanf("%d",&item[i].code); fflush(stdin); printf("Quantity:"); scanf("%d",&item[i].qty); fflush(stdin); printf("price:"); scanf("%d",&item[i].price); fflush(stdin); printf("Manufacturing date(dd-mm-yyyy):"); scanf("%d-%d-%d",&item[i].mfg.day,&item[i].mfg.month,&item[i].mfg.year); } printf(" ***** INVENTORY *****\n"); printf("------------------------------------------------------------------\n"); printf("S.N.| NAME | CODE | QUANTITY | PRICE |MFG.DATE\n"); printf("------------------------------------------------------------------\n"); for(i=0;i<n;i++) printf("%d %-15s %-d %-5d %-5d%d/%d/%d\n",i+1,item[i].name,item[i].code,item[i].qty,item[i].price,item[i].mfg.day,item[i].mfg.month,item[i].mfg.year); printf("------------------------------------------------------------------\n"); getch(); }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Enter number of items:5 Item name:pen Item code:12 Quantity:50 price:25 Manufacturing date(dd-mm-yyyy):12-02-2020 Item name:pencil Item code:15 Quantity:100 price:30 Manufacturing date(dd-mm-yyyy):11-03-2020 Item name:book Item code:34 Quantity:30 price:60 Manufacturing date(dd-mm-yyyy):15-04-2020 Item name:bag Item code:39 Quantity:20 price:70 Manufacturing date(dd-mm-yyyy):12-03-2021 Item name:sharpner Item code:33 Quantity:20 price:40 Manufacturing date(dd-mm-yyyy):12-04-2021 ***** INVENTORY ***** ------------------------------------------------------------------ S.N.| NAME | CODE | QUANTITY | PRICE |MFG.DATE ------------------------------------------------------------------ 1 pen 12 50 25 12/2/2020 2 pencil 15 100 30 11/3/2020 3 book 34 30 60 15/4/2020 4 bag 39 20 70 12/3/2021 5 sharpner 33 20 40 12/4/2021