Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
488,5 KB
Nội dung
Trường Đại Học Bách Khoa Hà Nội Viện: Điện Tử - Viễn Thông Bộ Môn: Điện tử - Kỹ thuật máy tính Ngôn ngữ lập trình C/C++ Chương 1: Ôn tập ngôn ngữ C Các kiểu liệu có cấu trúc Các kiểu liệu có cấu trúc Kiểu liệt kê: enum Kiểu ghi: struct Kiểu hợp: union Kiểu ghi có trường mức bit: bit field struct Kiểu enum Ý nghĩa: kiểu liệu mà miền giá trị số giá trị mà ta muốn liệt kê VD: giá trị logic (true, false), ngày tuần, mức tính thuế thu nhập,v.v Các thao tác bản: Định nghĩa: tạo kiểu liệu trước khai báo sử dụng Khai báo: khai báo biến kiểu enum định nghĩa Gán giá trị: cập nhật giá trị cho biến kiểu enum Kiểu enum – Định nghĩa Cách định nghĩa: Kiểu liệt kê định nghĩa với từ khóa enum, có hai cách dùng để định nghĩa: Cách 1: không cần dùng từ khóa typedef Cách 2: có sử dụng từ khóa typedef Kiểu enum – Định nghĩa Cách 1: không dùng từ khóa typedef enum tên_kiểu {phần_tử_1, phần_tử_2, …, phần_tử_N}; VD: enum ngayTrongTuan {ThuHai, ThuBa, ThuTu, ThuNam, ThuSau, ThuBay, ChuNhat}; enum gioitinh {Nam, Nu}; Kiểu enum – Định nghĩa Cách 2: sử dụng từ khóa typedef typedef enum { phần_tử_1, phần_tử_2, …, phần_tử_N } tên_kiểu ; VD: typedef enum {True, False} boolean; Kiểu enum – Khai báo Khai báo biến kiểu enum tương tự cách khai báo biến thông thường: Cú pháp: tên_kiểu v; tên_kiểu v1,v2; VD: ngayTrongTuan d1, d2; //Khai báo biến enum gioitinh gt = Nam; //Khai báo khởi tạo giá trị Kiểu enum – Khai báo Kiểu enum – Gán giá trị Bản chất giá trị liệt kê kiểu enum số nguyên, với phần tử liệt kê có giá trị 0, phần tử thứ hai có giá trị 1, v.v Các giá trị đặt tường minh định nghĩa hay khai báo VD: typedef enum {True=1, False=0} boolean; enum Colors {BLUE=1,RED=3,GREEN=2} c; Ví dụ Viết chương trình nhập giá trị nguyên biểu ngày tuần Chương trình kiểm tra giá trị để in ngày tương ứng Việc làm lặp lại giá trị nhập vào -1 kết thúc chương trình 10 Ví dụ #include case wednesday: printf("Hom la thu tu\n");break; #include case thursday: main(){ printf("Hom la thu nam\n");break; enum day {monday, tuesday, wednesday, case friday: thursday, friday, saturday, sunday}; printf("Hom la thu sau\n");break; enum day d; case saturday: { printf("Hom la thu bay\n");break; printf("Nhap hom nay:(nhap -1 de case sunday: thoat)"); printf("Hom la chu nhat\n");break; scanf("%d",&d); default: switch (d) { if (d !=-1) printf("Du lieu khong hop case monday: le\n"); printf("Hom la thu hai\n");break; } } while (d != -1); case tuesday: getch(); printf("Hom la thu ba\n");break; }// end main 11 Kiểu struct Ý nghĩa: cấu trúc cho phép bên chứa trường liệu mà có kiểu liệu khác Các thao tác bản: 12 Định nghĩa Khai báo biến Truy nhập vào trường Gán giá trị Kiểu struct – Định nghĩa Có hai cách để định nghĩa kiểu struct: 13 Cách 1: không sử dụng từ khóa typedef Cách 2: sử dụng từ khóa typedef Kiểu struct – Định nghĩa Cách 1: không sử dụng từ khóa typedef struct tên_kiểu { Khai báo trường; }; VD: struct ngaysinh { int ngay; int thang; int nam; }; 14 struct nguoi { char ten[30]; int tuoi; char gioitinh; // ‘M’ cho nam, ‘F’ cho nữ struct ngaysinh sinhngay; }; Kiểu struct – Định nghĩa Cách 2: sử dụng từ khóa typedef typedef struct { Khai báo trường; } tên_kiểu ; VD: typedef struct { char sohieu[30] ; char chuyennganh; int soluong; } lophoc ; 15 Kiểu struct – Khai báo Tương tự kiểu enum, việc khai báo biến kiểu struct theo cách: Cách 1: khai báo sau định nghĩa kiểu struct Cách 2: kết hợp khai báo định nghĩa kiểu 16 Kiểu struct – Khai báo Cách 1: [struct] tên_kiểu v; [struct] tên_kiểu v1,v2; lophoc lh1, lh2; struct ngaysinh ns; Cách 2: struct tên_kiểu { Khai báo trường; } v1, v2; 17 struct ngaysinh { int ngay; int thang; int nam; } ns1, ns2; Truy nhập vào trường Có cách truy nhập: Cách 1: dùng biến thông thường, sử dụng cú pháp “tên_biến.tên_trường” Cách 2: dùng biến trỏ, sử dụng cú pháp “tên_biến->tên_trường” typedef struct { char sohieu[30] ; char chuyennganh; int soluong; } lophoc ; lophoc lh; lophoc * p = & lh; scanf(“%s”, lh.sohieu); scanf(“%c”, &p->chuyennganh); scanf(“%d”, &p->soluong); 18 Kiểu struct - Gán giá trị Hai biến kiểu struct gán cho Việc gán cho thay cho việc gán tất trường hai biến cho VD: lophoc lh1, lh2; lh1=lh2; 19 lh1.sohieu = lh2.sohieu; lh1.chuyennganh= lh2.chuyennganh; lh1.soluong = lh2.soluong; Ví dụ Viết chương trình quản lý danh sách nhân viên với chức năng: 20 Nhập vào danh sách N nhân viên (N số cho trước) In nội dung danh sách Ví dụ: #include #define N int main(){ struct person { char name[30]; int age; char sex; //'M' for male //and 'F' for female } ; //end struct struct person pList[N]; int i; printf("Nhap danh sach nhan vien\n"); for (i=0;i