1 / 18

CHƯƠNG VIII:CẤU TRÚC

CHƯƠNG VIII:CẤU TRÚC. KIỂU CẤU TRÚC (STRUCTURE). Khái niệm Kiểu cấu trúc (còn gọi kiểu cấu trúc là kiểu record) là kiểu dữ liệu bao gồm nhiều thành phần có kiểu khác nhau, mỗi thành phần được gọi là một trường (field)

joylyn
Download Presentation

CHƯƠNG VIII:CẤU TRÚC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CHƯƠNG VIII:CẤU TRÚC

  2. KIỂU CẤU TRÚC (STRUCTURE) Khái niệm • Kiểu cấu trúc (còn gọi kiểu cấu trúc là kiểu record) là kiểu dữ liệu bao gồm nhiều thành phần có kiểu khác nhau, mỗi thành phần được gọi là một trường (field) • Sự khác biệt giữa kiểu cấu trúc và kiểu mảng là: các phần tử của mảng có cùng kiểu,phần tử của kiểu cấu trúc có thể có kiểu khác nhau

  3. Định nghĩa kiểu cấu trúc struct <Tên cấu trúc> { <Kiểu> <Trường 1> ; <Kiểu> <Trường 2> ; …….. <Kiểu> <Trường n> ; };

  4. Ví dụ struct products { char name [30]; float price; } ;

  5. Khai báo biến cấu trúc • struct <Tên cấu trúc> • { • <Kiểu> <Trường 1> ; • <Kiểu> <Trường 2> ; • …….. • <Kiểu> <Trường n> ; • }danh sách tên biến cấu trúc;

  6. Ví dụ: Để khai báo các đối tượng apple, orange và melon trong ví dụ trên, ta cũng có thể làm theo cách sau: struct products { char name [30]; float price; } apple, orange, melon;

  7. CÁC THAO TÁC TRÊN BIẾN KIỂU CẤU TRÚC

  8. Truy xuất đến từng trường của biến cấu trúc • Cú pháp: <Biến cấu trúc>.<Tên trường>

  9. Ví dụ:Viết chương trình cho phép đọc dữ liệu từ bàn phím cho biến mẩu tin SinhVien và in biến mẩu tin đó lên màn hình: #include<iostream.h> #include<conio.h> #include<string.h> struct SinhVien { char MSSV[10]; char HoTen[40]; unsigned int NamSinh ; char DiaChi[40]; };

  10. Ví dụ (tt) void InSV(SinhVien sv) { cout<<"MSSV: “<<sv.MSSV<<endl; cout<<”Ho va ten: “<<sv.HoTen<<endl; cout<<“ Nam Sinh:”<<sv.NamSinh <<endl; cout<<”Dia Chi: “<<sv.DiaChi; }

  11. Ví dụ (tt) void main() { SinhVien SV, s; cout<<"Nhap MSSV: "; cin>>SV.MSSV; cout<<"Nhap Ho va ten: "; cin>>SV.HoTen; cout<<"Nam sinh: "; cin>>SV.NamSinh; cout<<"Dia chi: "; cout>>SV.DiaChi; InSV(SV); getch(); }

  12. Khởi tạo giá trị cho biến cấu trúc • Việc khởi tạo giá trị cho biến cấu trúc được thực hiện trong lúc khai báo biến cấu trúc. • Các trường của cấu trúc được khởi tạo đặt giữa 2 dấu { }, chúng được phân cách nhau bởi dấu phẩy (,).

  13. Ví dụ: struct NgayThang { unsigned char Ngay; unsigned char Thang; unsigned int Nam; }; Khởi tạo biến cấu trúc NgaySinh: NgayThang NgaySinh ={29, 8, 1986};

  14. Mảng cấu trúc • Khi cần lưu trữ thông tin của nhiều đối tượng, thì biến cấu trúc là một công cụ rất thuận lợi. • Ví dụ: Cần lưu trữ thông tin họ tên, điểm môn toán, điểm môn hóa, điểm môn lý của các thí sinh trong một kỳ thi. • Để làm công việc trên, thay vì phải sử dụng 3 mảng một chiều để lưu trữ ta có thể dùng một mảng một chiều kiểu cấu trúc để lưu trữ các thông tin này • Khi đó mỗi phần tử của mảng là một biến kiểu cấu trúc. Ta có thể khai báo một mảng cấu trúc như sau:

  15. Ví dụ struct danhsach { int sbd; char hoten[25]; float toan,ly,hoa; } danhsach bangdiem[50];

  16. Viết chương trình cho phép nhập và in bảng điểm của thí sinh lên màn hình const int MAXNAME=25,NUMREC=3; struct danhsach { int sbd; char hoten[MAXNAME]; float toan,ly,hoa; };

  17. void main() { danhsach bangdiem[NUMREC]; int i; clrscr(); cout <<"NHAP BANG DIEM CUA SINH VIEN\n"; for (i=0;i<NUMREC;i++) { cout <<"So bao danh: "; cin>> bangdiem[i].sbd; cin.ignore(100,'\n'); cout <<"Ho va ten: "; cin.getline(bangdiem[i].hoten,MAXNAME); if(strlen(bangdiem[i].hoten)>=MAXNAME-1) cin.ignore(100,'\n'); cout <<"Diem toan: "; cin >> bangdiem[i].toan; cout <<"Diem ly: "; cin >> bangdiem[i].ly; cout <<"Diem hoa "; cin >> bangdiem[i].hoa; }

  18. clrscr(); cout <<" ------BANG DIEM CUA SINH VIEN-----\n"; cout <<"So bao danh Ho ten Diem toan Diem ly Diem hoa\n"; for (i=0;i<NUMREC;i++) { cout <<setw(5)<<bangdiem[i].sbd<<setw(20) <<bangdiem[i].hoten<<setw(10) <<bangdiem[i].toan<<setw(12) <<bangdiem[i].ly<<setw(14) << bangdiem[i].hoa<<endl; } getch(); }

More Related