1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Tin học đại cương Bài 7: Cấu trúc

31 43 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 1,39 MB

Nội dung

Bài giảng Tin học đại cương Bài 6: Cấu trúc trình bày khái niệm cấu trúc; khai báo và sử dụng cấu trúc; xử lý dữ liệu cấu trúc; mảng cấu trúc; một số bài tập vận dụng.

KHOA CÔNG NGHệ THÔNG TIN FACULTY OF INFORMATION TECHNOLOGY TIN HỌC ĐẠI CƯƠNG PHẦN 2: LẬP TRÌNH BẰNG NGƠN NGỮ C BÀI 7: CẤU TRÚC (struct) Bài 7: Cấu trúc (struct) 7.1 Khái niệm cấu trúc 7.2 Khai báo sử dụng cấu trúc 7.3 Xử lí liệu cấu trúc 7.4 Mảng cấu trúc 7.5 Bài tập Bài 7: Cấu trúc (struct) 7.1 Khái niệm cấu trúc 7.2 Khai báo sử dụng cấu trúc 7.3 Xử lí liệu cấu trúc 7.4 Mảng cấu trúc 7.5 Bài tập 7.1 Khái niệm cấu trúc Trong C, structure (gọi tắt struct) ~ kiểu liệu ghi (record) Pascal Kiểu liệu cấu trúc (struct) kiểu liệu phức hợp bao gồm nhiều thành phần, thành phần thuộc kiểu liệu khác Các thành phần liệu cấu trúc gọi trường liệu (field) 7.1 Khái niệm cấu trúc (tiếp) “Mô tả” đối tượng có nhiều phần thơng tin, ví dụ quản lý hồ sơ cán bộ, sinh viên… Ví dụ: Cấu trúc mơ tả sinh viên:   Cần lưu giữ thông tin liên quan đến sinh viên họ tên, tuổi, kết học tập… Mỗi thông tin thành phần lại có kiểu liệu khác Họ tên có kiểu liệu xâu kí tự Tuổi có kiểu liệu số nguyên Kết học tập có kiểu liệu số thực Bài 7: Cấu trúc (struct) 7.1 Khái niệm cấu trúc 7.2 Khai báo sử dụng cấu trúc 7.3 Xử lí liệu cấu trúc 7.4 Mảng cấu trúc 7.5 Bài tập 7.2.1 Khai báo kiểu liệu cấu trúc Cú pháp: struct ten_cau_truc { ; }; Ví dụ: struct Sinh_Vien { char ma_so_sinh_vien[10]; char ho_va_ten[30]; float diem_TinDC; }; 7.2.2 Khai báo biến cấu trúc Cú pháp: ten_cau_truc ten_bien_cau_truc; Hoặc: struct ten_cau_truc ten_bien_cau_truc; Ví dụ: Sinh_Vien a, b, c; Hoặc: struct Sinh_Vien a, b, c; 7.2.3 Khai báo kết hợp Có thể kết hợp vừa khai báo kiểu liệu cấu trúc vừa khai báo biến cấu trúc: struct [ten_cau_truc] { //khai_bao_cac_truong; } ten_bien_cau_truc; Ví dụ: struct Thi_Sinh { char SBD[10]; // so bao danh char ho_va_ten[30]; float ket_qua; } ts1, ts2; Struct lồng Struct lồng Ví dụ: struct Dia_Chi{//địa int so_nha; char ten_pho[20]; char thanh_pho[20]; }; struct Nhan_Su{ //nhân char ho_ten[20]; Dia_Chi address; //trường address có kiểu địa float he_so_luong; }; 10 Vấn đề vào liệu cho biến struct Cũng liệu kiểu mảng, nhập/xuất liệu trực tiếp cho struct mà cần phải nhập/xuất liệu cho trường struct Ví dụ, để nhập liệu cho biến sv1, viết printf(“Nhap SBD:”); sau: scanf(“%d”,&sv1.sbd); printf(“Nhap ho ten:”); fflush(stdin); //xoá đệm, không sv1.sbd nhận giá trị “3” !!! gets(sv1.ho_ten); printf(“Nhap diem thi:”); scanf(“%f”,&sv1.diem_thi); //In kết hình: printf(“SBD:%d\nHo ten:%s\nDiem: %d”,sv1.sbd,sv1.ho_ten,sv1.diem_thi); 17 7.3.2 Phép gán biến cấu trúc Giả sử ta có biến cấu trúc a b có kiểu liệu cấu trúc Phép gán cấu trúc có cú pháp tương tự phép gán thơng thường: bien_cau_truc_1 = bien_cau_truc_2; 18 7.3.3 Con trỏ cấu trúc Cú pháp: struct ten_cau_truc *ten_bien_con_tro_ctruc; Có cách truy nhập vào trường liệu cấu trúc từ biến trỏ cấu trúc (*ten_bien_con_tro_ctruc).ten_truong_du_lieu Hoặc: ten_bien_con_tro_ctruc->ten_truong_du_lieu 19 Con trỏ struct Ví dụ: struct SinhVien *p; //hoac SinhVien *p; struct SinhVien sv, *psv;//psv trỏ printf(“Nhap SBD:”);scanf(“%d”,&sv.sbd); psv = &sv;//lấy địa biến sv printf(“SBD vua nhap:%d”, psv->sbd); printf(“Nhap lai SBD:”); scanf(“%d”,&(psv->sbd)); printf(“SBD vua nhap:%d”, (*psv).sbd); 20 Chú ý Trong ví dụ trước, rút số nhận xét:   &sv cho ta địa struct sv *psv nội dung ghi có địa psv psv->sbd (*psv).sbd tương đương 21 Bài 7: Cấu trúc (struct) 7.1 Khái niệm cấu trúc 7.2 Khai báo sử dụng cấu trúc 7.3 Xử lý liệu cấu trúc 7.4 Mảng cấu trúc 7.5 Bài tập 22 7.4 Mảng cấu trúc Cú pháp: struct ten_cau_truc ten_mang_ctruc[so_ptu]; Ví dụ: struct sinh_vien { char ho_ten[20]; float diem_thi; }; struct sinh_vien lop_Tin5[80]; 23 Truyền tham số struct cho hàm Hàm C cho phép truyền tham số struct Hãy xem ví dụ sau (hàm viết thơng tin sinh viên hình): void in_sinh_vien(sinh_vien sv){ printf(“\nHo ten: %s\nDiem thi: %4.1f, sv.ho_ten, sv.diem_thi); } Trong ví dụ trên, sv truyền theo kiểu “tham trị” Muốn truyền “tham biến”, sử dụng trỏ struct 24 Ví dụ #include #include #include void main() { struct sinh_vien { char ma_sv[10]; char ho_ten[20]; float diem_thi; }; struct sinh_vien sv[3]; int i; clrscr(); 25 Ví dụ (tiếp) for(i=0;i

Ngày đăng: 26/06/2020, 22:15

HÌNH ẢNH LIÊN QUAN

thông tin một sinh viên ra màn hình): - Bài giảng Tin học đại cương  Bài 7: Cấu trúc
th ông tin một sinh viên ra màn hình): (Trang 24)
 Đưa ra màn hình danh sách các sinh viên cùng Đưa ra màn hình danh sách các sinh viên cùng thông tin của họ mà người dùng vừa nhập vào.thông tin của họ mà người dùng vừa nhập vào. - Bài giảng Tin học đại cương  Bài 7: Cấu trúc
a ra màn hình danh sách các sinh viên cùng Đưa ra màn hình danh sách các sinh viên cùng thông tin của họ mà người dùng vừa nhập vào.thông tin của họ mà người dùng vừa nhập vào (Trang 29)
 Đưa ra màn hình danh sách sinh viên được sắp Đưa ra màn hình danh sách sinh viên được sắp xếp theo chiều giảm dần của điểm thi Tin đại xếp theo chiều giảm dần của điểm thi Tin đại  - Bài giảng Tin học đại cương  Bài 7: Cấu trúc
a ra màn hình danh sách sinh viên được sắp Đưa ra màn hình danh sách sinh viên được sắp xếp theo chiều giảm dần của điểm thi Tin đại xếp theo chiều giảm dần của điểm thi Tin đại (Trang 30)

TỪ KHÓA LIÊN QUAN