Professional Documents
Culture Documents
Phan 2 - Chuong 9 (Cau Truc)
Phan 2 - Chuong 9 (Cau Truc)
Phan 2 - Chuong 9 (Cau Truc)
Chng IX:
KIU CU TRC
Hc xong chng ny, sinh vin s nm c cc vn sau: Khi nim v kiu cu trc. Cch s dng kiu cu trc. Con tr cu trc.
y l mng c 15 phn t
Lp trnh cn bn
- <Tn cu trc>: l mt tn c t theo quy tc t tn ca danh biu; tn ny mang ngha s l tn kiu cu trc. - <Kiu> <Trng i> (i=1..n): mi trng trong cu trc c d liu thuc kiu g (tn ca trng phi l mt tn c t theo quy tc t tn ca danh biu). V d 1: qun l ngy, thng, nm ca mt ngy trong nm ta c th khai bo kiu cu trc gm 3 thng tin: ngy, thng, nm.
struct NgayThang { unsigned char Ngay; unsigned char Thang; unsigned int Nam; };
typedef struct { unsigned char Ngay; unsigned char Thang; unsigned int Nam; } NgayThang;
V d 2: Mi sinh vin cn c qun l bi cc thng tin: m s sinh vin, h tn, ngy thng nm sinh, gii tnh, a ch thng tr. Lc ny ta c th khai bo mt struct gm cc thng tin trn.
struct SinhVien { char MSSV[10]; char HoTen[40]; struct NgayThang NgaySinh; int Phai; char DiaChi[40]; }; typedef struct { char MSSV[10]; char HoTen[40]; NgayThang NgaySinh; int Phai; char DiaChi[40]; } SinhVien;
- i vi cu trc c nh ngha theo cch 1: struct <Tn cu trc> <Bin 1> [, <Bin 2>]; - i vi cc cu trc c nh ngha theo cch 2: <Tn cu trc> <Bin 1> [, <Bin 2>]; V d: Khai bo bin NgaySinh c kiu cu trc NgayThang; bin SV c kiu cu trc SinhVien.
struct NgayThang NgaySinh; struct SinhVien SV; NgayThang NgaySinh; SinhVien SV;
Trang 99
Lp trnh cn bn
Trang 100
Lp trnh cn bn
Lu :
- Cc bin cu trc c th gn cho nhau. Thc cht y l thao tc trn ton b cu trc khng phi trn mt trng ring r no. Chng trnh trn dng s=SV l mt v d. - Vi cc bin kiu cu trc ta khng th thc hin c cc thao tc sau y: o S dng cc hm xut nhp trn bin cu trc. o Cc php ton quan h, cc php ton s hc v logic. V d: Nhp vo hai s phc v tnh tng ca chng. Ta bit rng s phc l mt cp (a,b) trong a, b l cc s thc, a gi l phn thc, b l phn o. (i khi ngi ta cng vit s phc di dng a + ib trong i l mt n v o c tnh cht i2=-1). Gi s phc c1=(a1, b1) v c2=(a2,b2) khi tng ca hai s phc c1 v c2 l mt s phc c3 m c3=(a1+a2, b1+b2). Vi hiu bit nh vy ta c th xem mi s phc l mt cu trc c hai trng, mt trng biu din cho phn thc, mt trng biu din cho phn o. Vic tnh tng ca hai s phc c tnh bng cch ly phn thc cng vi phn thc v phn o cng vi phn o.
#include<conio.h> #include<stdio.h> #include<string.h> typedef struct { float Thuc; float Ao; } SoPhuc; /* Hm in s phc ln mn hnh*/ void InSoPhuc(SoPhuc p) { printf("%.2f + i%.2f\n",p.Thuc,p.Ao); } int main() { SoPhuc p1,p2,p; clrscr(); printf("Nhap so phuc thu nhat:\n"); printf("Phan thuc: ");scanf("%f",&p1.Thuc); printf("Phan ao: ");scanf("%f",&p1.Ao); printf("Nhap so phuc thu hai:\n"); printf("Phan thuc: ");scanf("%f",&p2.Thuc); printf("Phan ao: ");scanf("%f",&p2.Ao); printf("So phuc thu nhat: "); InSoPhuc(p1); printf("So phuc thu hai: ");
Trang 101
Lp trnh cn bn
InSoPhuc(p2); p.Thuc = p1.Thuc+p2.Thuc; p.Ao = p1.Ao + p2.Ao; printf("Tong 2 so phuc: "); InSoPhuc(p); getch(); return 0; }
Trang 102
Lp trnh cn bn
p = &Ngay;
Kt qu:
IV. BI TP
IV.1 Mc ch yu cu
Lm quen v bit cch s dng kiu d liu cu trc kt hp vi cc kiu d liu hc. Phn bit kiu d liu mng v kiu cu trc. Thc hin cc bi tp trong phn ni dung.
Trang 103
Lp trnh cn bn
IV.2 Ni dung
1. Hy nh ngha kiu:
struct Hoso{ char HoTen[40]; float Diem; char Loai[10]; };
Vit chng trnh nhp vo h tn, im ca n hc sinh. Xp loi vn ha theo cch sau: im Xp loi 9, 10 Gii 7, 8 Kh 5, 6 Trung bnh di 5 Khng t In danh sch ln mn hnh theo dng sau:
XEP LOAI VAN HOA
HO VA TEN DIEM XEPLOAI Nguyen Van A 7 Kha Ho Thi B 5 Trung binh Dang Kim C 4 Khong dat ........................................................................................................ 2. Xem mt phn s l mt cu trc c hai trng l t s v mu s. Hy vit chng trnh thc hin cc php ton cng, tr, nhn, chia hai phn s. (Cc kt qu phi ti gin ). 3. To mt danh sch cn b cng nhn vin, mi ngi ngi xem nh mt cu trc bao gm cc trng Ho, Ten, Luong, Tuoi, Dchi. Nhp mt s ngi vo danh sch, sp xp tn theo th t t in, in danh sch sp xp theo mu sau:
DANH SACH CAN BO CONG NHAN VIEN | STT |HO VA TEN | LUONG | TUOI | DIACHI | 1 | Nguyen Van | 333.00 | 26 Tho | | 2 | Dang Kim B | 23 | Vinh Long | | Can | |
290.00
Trang 104