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

Bài giảng Lập trình C: Chương 6 - Ngô Công Thắng

15 10 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 15
Dung lượng 132,49 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Lập trình C - Chương 6: Kiểu cấu trúc và kiểu liệt kê cung cấp cho người học các kiến thức: Kiểu cấu trúc (struct), kiểu liệt kê (enum). Đây là tài liệu hữu ích dành cho các bạn sinh viên đang theo học và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.

Trang 1

Ch ươ ng 6 Ki u c u trúc và ki u li t kê ể ấ ể ệ

I Ki u c u trúc (struct) ể ấ

II Ki u li t kê (enum) ể ệ

Trang 2

I Ki u c u trúc ể ấ

1 Khái ni m v ki u c u trúc ệ ề ể ấ

2 Khai báo ki u c u trúc ể ấ

3 Khai báo bi n c u trúc ế ấ

4 Truy nh p các thành ph n c a c u trúc ậ ầ ủ ấ

5 Kh i t o bi n c u trúc ở ạ ế ấ

6 Phép gán bi n c u trúc ế ấ

7 M ng c u trúc ả ấ

Trang 3

1 Khái ni m v ki u c u trúc ệ ề ể ấ

Ngoài các ki u d li u có s n trong C, ng i ể ữ ệ ẵ ườ

l p trình còn có th t o ra nh ng ki u d li u ậ ể ạ ữ ể ữ ệ

c a riêng mình: Ki u c u trúc và ki u li t kê ủ ể ấ ể ệ

M t c u trúc là m t nhóm các ph n t có th ộ ấ ộ ầ ử ể

có ki u d li u khác nhau Các ph n t này ể ữ ệ ầ ử

g i là các thành ph n c a c u trúc Ki u c u ọ ầ ủ ấ ể ấ trúc trong C t ng đ ng v i ki u b n ghi ươ ươ ớ ể ả trong Pascal.

Trang 4

2 Khai báo ki u c u trúc ể ấ

Khai báo c u trúc là mô t v các thành ph n ấ ả ề ầ

c a c u trúc Cú pháp nh sau: ủ ấ ư

struct Tên_ki u_c u trúc ể ấ

{

Ki u_1 Tên_thành_ph n_1; ể ầ

};

T khoá ừ

Các thành ph n ầ

c a c u trúc ủ ấ

D u ch m ph y k t ấ ấ ẩ ế thúc khai báo ki u c u ể ấ

trúc

Trang 5

2 Khai báo ki u c u trúc (ti p) ể ấ ế

 Ví d : Đ l u tr thông tin v nhân s c a phòng t ụ ể ư ữ ề ự ủ ổ

ch c v i các thông tin v h tên, ngày sinh, đ a ch , ứ ớ ề ọ ị ỉ

l ng ta khai báo m t ki u c u trúc nh sau:ươ ộ ể ấ ư

struct nhansu

{

char hoten[30];

char ngaysinh[10];

char diachi[40];

float luong;

Trang 6

2 Khai báo ki u c u trúc (ti p) ể ấ ế

 Sau khi khai báo ki u c u trúc ta có th dùng tên ể ấ ể

ki u c u trúc nh tên các ki u d li u c b n.ể ấ ư ể ữ ệ ơ ả

 Ki u c a các thành ph n c a c u trúc có th là ki u ể ủ ầ ủ ấ ể ể

c u trúc, t c là trong c u trúc có th ch a c u trúc ấ ứ ấ ể ứ ấ khác Ví d :ụ

struct ngaythang

{

int ngay,thang,nam;

};

struct nhansu

{

char hoten[30];

ngaythang ngaysinh;

char diachi[40];

float luong;

};

Trang 7

3 Khai báo bi n c u trúc ế ấ

Vi c khai báo ki u c u trúc không t o ra ệ ể ấ ạ vùng nh ch a c u trúc mà ch mô t v c u ớ ứ ấ ỉ ả ề ấ trúc xem có nh ng gì ữ

Mu n có vùng nh ch a c u trúc ta ph i khai ố ớ ứ ấ ả báo bi n c u trúc Cú pháp: ế ấ

Tên_ki u_c u_trúc Tên_bi n_c u trúc; ể ấ ế ấ

Ví d : ụ

nhansu ng1,ng2;

Trang 8

4 Truy nh p các thành ph n c u trúc ậ ầ ấ

 Đ truy nh p các thành ph n c a c u trúc ta dùng ể ậ ầ ủ ấ toán t ch m Cú pháp:ử ấ

Tên_bi n_c u_trúc.Tên_thành_ph nế ấ ầ

Ví d :

struct thisinh

{

char SBD[15];

float toan,ly,hoa;

};

//Khai bao bien cau truc

thisinh ts;

//Nhap du lieu cho thi sinh

printf("So bao danh: “); scanf(“%s”,&ts.SBD);

printf(“Diem Toan: “); scanf(“%f”,&ts.toan);

printf(“Diem Ly: “); scanf(“%f”,&ts.ly);

printf(“Diem Hoa: “); scanf(“%f”,&ts.hoa);

Trang 9

5 Kh i t o bi n c u trúc ở ạ ế ấ

 Khi khai báo bi n c u trúc ta có th kh i t o giá tr cho các ế ấ ể ở ạ ị thành ph n c a c u trúc nh kh i t o cho các ph n t c a ầ ủ ấ ư ở ạ ầ ử ủ

m ng ả

Ví d : ụ

//Khai bao kieu cau truc

struct thisinh

{

char SBD[15];

float toan,ly,hoa;

};

//Khai bao va khoi tao bien cau truc

Trang 10

6 Phép gán bi n c u trúc ế ấ

 Ta có th gán m t bi n c u trúc cho m t bi n c u ể ộ ế ấ ộ ế ấ trúc cùng ki u Ví d :ể ụ

//Khai bao kieu cau truc

struct thisinh

{

char SBD[15];

float toan,ly,hoa;

};

//Khai bao bien cau truc

thisinh ts1={"NNHA23456",7,8,9};

thisinh ts2;

ts2=ts1;

Trang 11

7 M ng c u trúc ả ấ

 Sau khi khai báo ki u c u trúc thì tên ki u c u trúc ể ấ ể ấ

đ c dùng nh các ki u d li u khác Ch ng h n, ượ ư ể ữ ệ ẳ ạ dùng c u trúc làm ki u ph n t c a m ng.ấ ể ầ ử ủ ả

Ví d :

//Khai bao kieu cau truc

struct thisinh

{

char SBD[15];

float toan,ly,hoa;

};

//Khai bao bien cau truc

thisinh ds[100];

strcpy(ds[0].SBD,"NNHA23456");

ds[0].toan=8;

Trang 12

Ví dụ

Vi t ch ng trình qu n lý đi m môn h c c a sinh ế ươ ả ể ọ ủ viên M i sinh viên có các thông tin v h tên, l p, ỗ ề ọ ớ

đi m ki m tra 1, đi m ki m tra 2, trung bình ki m ể ể ể ể ể tra, đi m thi, đi m môn h c Nh p vào m t danh ể ể ọ ậ ộ sách n sinh viên Hi n danh sách ra màn hình theo ệ

d ng b ng v i các c t STT, H và tên, L p, TB ạ ả ớ ộ ọ ớ KTra, Đ.Thi, Đi m MH Khi nh p d li u ch nh p ể ậ ữ ệ ỉ ậ

H tên, L p, Đi m Ktra1, Đi m Ktra2, còn TB ọ ớ ể ể KTra = (Đi m KTra1 + Đi m Ktra2)/2, Đi m MH = ể ể ể 0,3xTB KTra + 0,7xĐi m Thi.ể

Trang 13

II Ki u li t kê ể ệ

 Ki u li t kê là ki u d li u do ng i l p trình t ể ệ ể ữ ệ ườ ậ ự

đ nh nghĩa b ng cách li t kê t t c các giá tr Các ị ằ ệ ấ ả ị giá tr c a ki u li t kê là các tên t đ t.ị ủ ể ệ ự ặ

 Đ đ nh nghĩa ki u li t kê ta dùng t khóa enum ể ị ể ệ ừ theo cú pháp sau:

enum Tên_ki u_li t_kê {Danh sách các tên t đ t}; ể ệ ự ặ

Ví d :ụ enum boolean {TRUE, FALSE};

enum mausac {Xanh, Do, Tim, Vang};

enum days_of_week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};

Trang 14

II Ki u li t kê (ti p) ể ệ ế

Sau khi khai báo ki u li t kê ta có th khai ể ệ ể báo các bi n ki u li t nh các bi n ki u khác: ế ể ệ ư ế ể Tên_ki u_li t_kê Danh_sách_các_bi n; ể ệ ế

Ví d : ụ Gi s các ki u li t kê đã đ c khai ả ử ể ệ ượ báo trên, ta khai báo các bi n li t kê: ở ế ệ

days_of_week day1, day2;

Đ đ a giá tr vào bi n li t kê ta dùng l nh ể ư ị ế ệ ệ gán:

Ví d : ụ day1 = Mon; day2 = Sat;

Trang 15

II Ki u li t kê (ti p) ể ệ ế

 Các giá tr ki u li t kê đ c l u tr nh các s ị ể ệ ượ ư ữ ư ố nguyên ki u int, giá tr tên đ u tiên là 0, giá tr tên ể ị ầ ị

ti p theo là 1,…ế

Ví d :ụ V i ki u li t kê days_of_week trên thì Sun ớ ể ệ ở

có giá tr 0, Mon có giá tr 1, Tue có giá tr 3,…ị ị ị

 Ta có th thay đ i giá tr s c a các giá tr tênể ổ ị ố ủ ị

 Cho các giá tr tên có giá tr s b t đ u t m t s khác 0 ị ị ố ắ ầ ừ ộ ố

Ví d : enum mausac {Xanh=5, Do, Tim, Vang}; ụ

V i khai báo này Xanh có giá tr 5, Do có giá tr 6, Tim ớ ị ị

có giá tr 7, Vàng có giá tr 8 ị ị

Ngày đăng: 11/05/2021, 04:42

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm