You are on page 1of 7

Ni dung

TRNG I HC BCH KHOA H NI


VIN CNG NGH THNG TIN V TRUYN THNG

10.1. Khi nim cu trc


10.2. Khai bo v s dng cu trc
10.3. X l d liu cu trc
10.4. Mng cu trc

TIN HC I CNG
Phn 3. Lp trnh C

Bi 10. Cu trc

Ni dung

10.1. Khi nim cu trc

10.1. Khi nim cu trc


10.2. Khai bo v s dng cu trc
10.3. X l d liu cu trc
10.4. Mng cu trc

Kiu d liu cu trc (struct)


L kiu d liu phc hp, bao gm nhiu thnh
phn c th thuc cc kiu d liu khc nhau
Cc thnh phn: gi l trng d liu (field)

V d
Thng tin v kt qu hc tp mn Tin i cng
ca sinh vin: TenSV, MaSV, Diem.
Thng tin v cu th: Ten, Tuoi, CLB, SoAo,
Vitri,
3

10.2. Khai bo v s dng cu trc

10.2.1. Khai bo kiu d liu cu trc

10.2.1. Khai bo kiu d liu cu trc


10.2.2. Khai bo bin cu trc
10.2.3. nh ngha kiu d liu vi typedef

Khai bo cu trc

V d

struct tn_cu_trc{
struct sinh_vien{
<khai bo cc trng d liu>
char ma_so_sinh_vien[10];
};
char ho_va_ten[30];
float diem_tinDC;
};
struct point_3D{
float x;
float y;
float z;
};
5

10.2.2. Khai bo bin cu trc

10.2.2. Khai bo bin cu trc

C php:

Cc cu trc c th c khai bo lng nhau

struct tn_cu_trc tn_bin_cu_trc;

struct diem_thi {
float dToan, dLy, dHoa;
};
struct thi_sinh{
char SBD[10];
char ho_va_ten[30];
struct diem_thi ket_qua;
} thi_sinh_1, thi_sinh_2;

V d:
struct sinh_vien a, b, c;

Kt hp khai bo
struct [tn_cu_trc] {
<khai bo cc trng d liu>;
} tn_bin_cu_trc;

10.2.2. Khai bo bin cu trc

10.2.3. nh ngha kiu d liu vi typedef

C th khai bo trc tip cc trng d liu


ca mt cu trc bn trong cu trc khc

Mc ch
t tn mi cho kiu d liu cu trc
Gip khai bo bin quen thuc v t sai hn

struct thi_sinh{
char SBD[10];
char ho_va_ten[30];
struct [diem_thi]{
float dToan, dLy, dHoa;
} ket_qua;
} thi_sinh_1, thi_sinh_2;

C php
typedef struct <tn_c> <tn_mi>;

hoc

typedef struct [tn_c] {


<khai bo cc trng d liu>;
} danh_sch_cc_tn_mi;

Ch : cho php t tn_mi trng tn_c


9

10.2.3. nh ngha kiu d liu vi typedef


V d:
struct point_3D{
float x, y, z;
};
struct point_3D M;
typedef struct point_3D point_3D;
point_3D N;

10

10.2.3. nh ngha kiu d liu vi typedef


V d

typedef struct {
float x, y, z;
}point_3D;
point_3D M;
point_3D N;

typedef struct point_2D{


float x, y;
}point_2D, diem_2_chieu, ten_bat_ki;
point_2D X;
diem_2_chieu Y;
ten_bat_ki Z;
point_2D, diem_2_chieu, ten_bat_ki l cc tn cu trc,
khng phi tn bin

11

12

10.3. X l d liu cu trc

10.3.1. Truy cp cc trng d liu

10.3.1. Truy cp cc trng d liu


10.3.2. Php gn gia cc bin cu trc

C php
tn_bin_cu_trc.tn_trng

Lu
Du . l ton t truy cp vo trng d liu
trong cu trc
Nu trng d liu l mt cu trc => s dng
tip du . truy cp vo thnh phn mc su
hn

13

14

10.3.1. Truy cp cc trng d liu

10.3.1. Truy cp cc trng d liu

V d:
Xy dng mt cu trc biu din im trong
khng gian 2 chiu. Nhp gi tr cho mt
bin kiu cu trc ny, sau hin th gi tr
cc trng d liu ca bin ny ra mn hnh.

#include<stdio.h>
#include<conio.h>
typedef struct{
char ten[5];
int x,y;
}toado;
void main(){
toado t;
printf("Nhap thong tin toa do\n");

Cu trc: tn im, ta x, ta y
Nhp, hin th tng trng ca bin cu trc
nh cc bin d liu khc

15

16

10.3.1. Truy cp cc trng d liu

10.3.2. Php gn gia cc bin cu trc

printf("Ten diem: ");gets(t.ten);


printf("Toa do x: ");scanf("%d",&t.x);
printf("Toa do y: ");scanf("%d",&t.y);
printf("Gia tri cac truong\n");
printf("%-5s%3d%3d\n",t.ten,t.x,t.y);
getch();

Mun sao chp d liu t bin cu trc ny


sang bin cu trc khc cng kiu
gn ln lt tng trng trong hai bin cu trc
=> th cng
C cung cp php gn hai bin cu trc cng
kiu:
bin_cu_trc_1 = bin_cu_trc_2;

17

18

10.3.2. Php gn gia cc bin cu trc

10.3.2. Php gn gia cc bin cu trc

V d

#include<stdio.h>
#include<conio.h>
typedef struct{
char hoten[20];
int diem;
}sinhvien;
void main(){
sinhvien a,b,c;
printf("Nhap thong tin sinh vien\n");
printf("Ho ten: ");gets(a.hoten);
printf("Diem:");scanf("%d",&a.diem); 20

Xy dng cu trc gm h tn v im TC ca
sinh vin
a, b, c l 3 bin cu trc.
Nhp gi tr cho bin a.
Gn b=a, cn gn tng trng ca a cho c.
b?c

19

10.3.2. Php gn gia cc bin cu trc

10.4. Mng cu trc

b=a;
strcpy(c.hoten,a.hoten);
c.diem=a.diem;
printf(Bien a: ");
printf("%-20s%3d\n",a.hoten,a.diem);
printf(Bien b: ");
printf("%-20s%3d\n",b.hoten,b.diem);
printf(Bien c: ");
printf("%-20s%3d\n",c.hoten,c.diem);
getch();
}

L tp hp cc phn t c cng kiu d liu l kiu


cu trc
Mc ch:
Lu tr mt tp hp cc phn t c cng kiu.
Mi phn t l mt tp hp cc thnh phn c
th khc nhau: thng tin cc sinh vin trong lp,
i bng

21

22

7.4. Mng cu trc

10.4. Mng cu trc

C php:

V d

struct ten_cau_truc ten_mang_ctruc[so_ptu];

V d:
struct sinh_vien
{
char ho_ten[20];
float diem_thi;
};
struct sinh_vien

Khai bo mt cu trc gm h tn v im thi


Tin i cng

Khai bo mng tn l Tin1 gm 60 phn t c


kiu trn
Nhp thng tin cho mng trn v hin th kt
qu.

lop[80];
24

Bi tp

Bi tp

Vit 1 chng trnh thc hin nhng cng vic


sau:

Vit 1 chng trnh thc hin nhng cng


vic sau (tip):

Yu cu ngi dng nhp vo mt s nguyn dng


n vi 5 n 20 (c kim tra tnh hp l ca gi tr
c nhp vo, nu gi tr n nhp vo khng tha
mn iu kin th yu cu nhp li)
Yu cu ngi dng nhp vo thng tin ca n sinh
vin gm nhng mc sau
H v tn: c kiu d liu l xu k t gm khng qu 30 k t
Lp: xu k t c di khng qu 5 k t
im thi Tin i cng: l mt s nguyn c gi tr t 0 n 10

Yu cu ngi dng nhp vo t bn phm


mt s thc. a ra mn hnh danh sch cc
sinh vin c im thi Tin i cng nh hn
gi tr s thc va nhp vo.
a ra mn hnh danh sch sinh vin c
sp xp theo chiu gim dn ca im thi Tin
i cng.

a ra mn hnh danh sch cc sinh vin cng thng


tin ca h m ngi dng va nhp vo.

You might also like