Bài giảng Vi xử lý tổng quát - Chương 8: Cấu trúc
Bạn đang xem tài liệu "Bài giảng Vi xử lý tổng quát - Chương 8: Cấu trúc", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_vi_xu_ly_tong_quat_chuong_8_cau_truc.ppt
Nội dung text: Bài giảng Vi xử lý tổng quát - Chương 8: 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) • 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
- Định nghĩa kiểu cấu trúc struct { ; ; ; };
- Ví dụ struct products { char name [30]; float price; } ;
- Khai báo biến cấu trúc struct { ; ; ; }danh sách tên biến cấu trúc;
- 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;
- CÁC THAO TÁC TRÊN BIẾN KIỂU CẤU TRÚC
- Truy xuất đến từng trường của biến cấu trúc • Cú pháp: .
- 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 #include #include struct SinhVien { char MSSV[10]; char HoTen[40]; unsigned int NamSinh ; char DiaChi[40]; };
- 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; }
- Ví dụ (tt) void main() { SinhVien SV, s; cout >SV.MSSV; cout >SV.HoTen; cout >SV.NamSinh; cout >SV.DiaChi; InSV(SV); getch(); }
- 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 (,).
- Ví dụ: struct NgayThang { unsigned int Ngay; unsigned int Thang; unsigned int Nam; }; Khởi tạo biến cấu trúc NgaySinh: NgayThang NgaySinh ={29, 8, 1986};
- 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:
- Ví dụ struct danhsach { int sbd; char hoten[25]; float toan,ly,hoa; } danhsach bangdiem[50];
- 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; };
- void main() { danhsach bangdiem[NUMREC]; int i; clrscr(); cout > bangdiem[i].sbd; cin.ignore(100,'\n'); cout =MAXNAME-1) cin.ignore(100,'\n'); cout > bangdiem[i].toan; cout > bangdiem[i].ly; cout > bangdiem[i].hoa; }
- 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(); }