Giáo trình FoxPro - Phần bài tập
Tài liệu gồm rất nhiều các bài tập về lập trình FoxPro nhằm giúp cho người lập trình có thêm nhiều cách để giải quyết một chương trình trong FoxPro
Bạn đang xem nội dung tài liệu Giáo trình FoxPro - Phần bài tập, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bµi tËp qu¶n lý tuyÓn sinh
I. HÖ thèng b¶ng d÷ liÖu:
HOSOTS.DBF: L•u hå s¬ ®¨ng ký tuyÓn sinh
Field
name
Type, Width,
Dec
Description
MAHOSO C(10) M· hå s¬ ®¨ng ký
SBD C(10) Sè b¸o danh
HODEM C(20) Hä vµ tªn ®Öm
TEN C(7) Tªn
NGAYSI
NH
D(8) Ngµy sinh
QUEQUA
N
C(50) Hé khÈu th•êng
tró
GIOITIN
H
L(1) Giíi tÝnh (T-nam,
F-n÷)
KHOITHI C(1) Khèi thi (A, B,
C...)
KHUVUC C(5) Khu vùc ®¨ng ký
dù thi
MANGA
NH
C(5) Mµ ngµnh ®¨ng
ký dù thi
TINH.DBF: L•u danh s¸ch c¸c tØnh thµnh c¶ n•íc
Field
name
Type, Width,
Dec
Description
MATIN
H
C(5) M· tØnh, thµnh phè
TENTIN
H
C(30) Tªn tØnh, thµnh phè
KHUVU
C
C(5) Thuéc khu vùc nµo
DIEMU
T
N(3,1) §iÓm •u tiªn theo
khu vùc
DIENUT.DBF: L•u c¸c diÖn •u tiªn vµ ®iÓm •u tiªn
Field
name
Type Width,
Dec
Description
DIENUT N(2,0) C¸c diÖn •u tiªn
DIEMUT N(3,1) §iÓm •u tiªn
t•¬ng øng
DIEMTHI.DBF: L•u ®iÓm thi vµ kÕt qu¶ thi cña c¸c thÝ sinh
Field
name
Type,
Width,
Dec
Descriptio
n
SBD C(10) Sè b¸o danh
KHOITHI C(1) Khèi thi
DIEM1 N(4,1) §iÓm m«n 1
DIEM2 N(4,1) §iÓm m«n 2
DIEM3 N(4,1) §iÓm m«n 3
DIEMUT N(3,1) §iÓm céng •u
tiªn
MUCKYLU
AT
N(1,0) Møc kû luËt
TONGDIE
M
N(4,1) Tæng ®iÓm
KETQUA C(5) KÕt qu¶ (§ç,
Tr•ît)
GHICHU C(10) Ghi chó
KHOITHI.DBF: L•u danh s¸ch c¸c khèi thi
Field
name
Type,
Width, Dec
Description
KHOITHI C(1) Khèi thi
MON1 C(10) Tªn m«n thi thø
nhÊt
MON2 C(10) Tªn m«n thi thø 2
MON3 C(10) Tªn m«n thi thø 3
KYLUAT.DBF: L•u c¸c møc kû luËt ®•îc ®Æt ra
Field
name
Type,
Width, Dec
Description
MUC N(1,0) Møc kû luËt (kÓ tõ
møc 0)
HINHTHU
C
C(20) H×nh thøc kû luËt
VIPHAM.DBF: L•u danh s¸ch c¸c thÝ sinh vi ph¹m quy chÕ
Field
name
Type, Width,
Dec
Descript
ion
SBD C(10) Sè b¸o danh
MONTHI C(10) M«n thi
MUC N(1,0) Møc kû luËt
ii. NhËp néi dung cho c¸c b¶ng:
TINH.DBF: NhËp 10 tØnh – thµnh phè
DIENUT.DBF: C¸c diÖn •u tiªn tõ 0 (kh«ng •u tiªn) ®Õn 10.
KHOITHI.DBF: C¸c khèi thi A, B, C, D...
KYLUAT.DBF: C¸c møc kû luËt:
0: Kh«ng bÞ kû luËt (kh«ng vi ph¹m quy chÕ thi).
1: Trõ 25% ®iÓm thi m«n ®ã.
2: Trõ 50% ®iÓm thi m«n ®ã.
3: Trõ 100% ®iÓm thi m«n ®ã, cÊm thi c¸c m«n cßn l¹i.
HOSOTS.DBF: NhËp ®Çy ®ñ 15 thÝ sinh ®¨ng ký dù thi.
VIPHAM.DBF: NhËp 5 thÝ sinh vi ph¹m quy chÕ thi.
DIEMTHI: NhËp ®Çy ®ñ ®iÓm thi cho 14 thÝ sinh chÝnh thøc ®i thi (1 thÝ sinh bá thi nhËp vµo
môc ghi chó lµ “BO THI”).
iii. NhËp vµ söa néi dung b¶n ghi
1. ChÌn thªm mét tØnh vµo vÞ trÝ thø 4 trong b¶ng TINH.DBF
2. Bæ sung thªm khèi thi V gåm c¸c m«n TOAN, LY, VE vµo tÖp KHOITHI.DBF.
3. Thªm mét b¶n ghi tr¾ng vµo cuèi tÖp HOSOTS.DBF, sau ®ã söa néi dung b¶n ghi ®ã thµnh
kh«ng rçng.
4. ChÌn mét b¶n ghi tr¾ng vµo vÞ trÝ thø 3 trong b¶ng DIEMTHI.DBF, sau ®ã dïng lÖnh chØ hiÖn
néi dung b¶n ghi ®ã vµ söa ®æi thµnh b¶n ghi l•u ®iÓm thi cña thÝ sinh võa bæ sung ë c©u 3.
5. H·y liÖt kª nh÷ng thÝ sinh tháa m·n c¸c ®iÒu kiÖn sau trong tÖp HOSOTS.DBF:
a. Lµ thÝ sinh n÷.
b. Lµ thÝ sinh thuéc khu vùc 1 (KV1).
c. §¨ng ký thi khèi A.
d. Lµ thÝ sinh thuéc khu vùc 2 (KV2) vµ thi khèi A.
e. Lµ thÝ sinh thi khèi C hoÆc lµ n÷.
6. H·y liÖt kª nh÷ng thÝ sinh tháa m·n c¸c ®iÒu kiÖn sau trong tÖp DIEMTHI.DBF:
a. Lµ thÝ sinh thi khèi A
b. Kh«ng cã ®iÓm •u tiªn.
c. Kh«ng bÞ kû luËt.
d. Cã ®iªm thi c¶ 3 m«n trªn trung b×nh.
e. BÞ liÖt mét trong 3 m«n thi.
7. LiÖt kª c¸c h×nh thøc kû luËt trong tÖp KYLUAT.DBF.
8. LiÖt kª c¸c thi sinh vi ph¹m quy chÕ thi trong b¶ng VIPHAM.DBF.
9. LiÖt kª tÊt c¶ c¸c khèi thi vµ m«n thi trong tÖp HOITHI.DBF.
10. Dïng c¸c lÖnh LIST, BROW ®Ó lµm c¸c c«ng viÖc sau:
LiÖt kª c¸c tr•êng KHUVUC, DIEMUT cña tÖp TINH.DBF.
LiÖt kª c¸c tr•êng DIENUT, DIEMUT cña tÖp DIENUT.DBF.
LiÖt kª tr•êng SBD, KHUVUC cña tÖp HOSOTS.DBF.
LiÖt kª tr•êng SBD, DIENUT, DIEMUT cña tÖp DIEMTHI.DBF
H·y ®èi chiÕu vµ so s¸nh gi÷a c¸c tr•êng trong c¸c b¶ng võa liÖt kª ®Ó thay ®æi sao cho thÝ
sinh ®•îc h•ëng ®óng ®iÓm •u tiªn: §óng diÖn •u tiªn, ®óng khu vùc ®•îc •u tiªn, nÕu thÝ sinh
®•îc h•ëng c¶ hai møc th× chän møc •u tiªn cã ®iÓm •u tiªn cao nhÊt.
iv. Qu¶n lý cÊu tróc tÖp vµ b¶n ghi
1. H·y söa l¹i cÊu tróc tÖp KYLUAT.DBF nh• sau:
Field
name
Type Width,
Dec
Description
MUC N(1,0) Møc kû luËt (kÓ tõ
møc 0)
HINHTHU
C
C(20) H×nh thøc kû luËt
DIEMPHA
T
N(5,3) Sè phÇn tr¨m ®iÓm
bÞ trõ
2. Bæ sung vµo tÖp HOSOTS tr•êng DIENUT N(1,0) l•u diÖn •u tiªn cña thÝ sinh. Sau ®ã h·y
cËp nhËt diÖn •u tiªn cho tÊt c¶ c¸c thÝ sinh ®¨ng ký.
3. H·y sao chÐp cÊu tróc c¸c tÖp sau:
Sao chÐp dù phßng cÊu tróc tÖp HOSOTS.DBF thµnh tÖp HOSOTS2.DBF.
Sao chÐp cÊu tróc tÖp DIEMTHI.DBF thµnh tÖp DO.DBF ®Ó sau nµy l•u hå s¬ c¸c thÝ sinh
thi ®ç.
Sao chÐp nh÷ng thÝ sinh ®•îc céng ®iÓm •u tiªn cña tÖp DIEMTHI.DBF thµnh tÖp
UUTIEN.DBF.
Sao chÐp toµn bé cÊu tróc cña tÊt c¶ c¸c tÖp CSDL ®· thiÕt kÕ ë bµi 1 thµnh c¸c b¶n ghi cña
tÖp CAUTRUC.DBF
4. Sao chÐp toµn bé cÊu tróc vµ b¶n ghi cña tÖp HOSOTS.DBF thµnh tÖp HOSOTS2.DBF ®Ó lµm
b¶n l•u dù phßng.
5. Sao chÐp toµn bé nh÷ng thÝ sinh ë khu vùc 1 (KV1) cña tÖp HOSOTS.DBF thµnh tÖp
KV1.DBF
6. Sao chÐp c¸c tr•êng SBD, HODEM, TEN, NGAYSINH cña tÖp HOSOTS.DBF thµnh tÖp
HOTEN.DBF.
7. §¸nh dÊu xãa tÊt c¶ nh÷ng thÝ sinh thuéc khu vùc 1 (KV1) vµ khu vùc 2 (KV2) tõ tÖp
HOSOTS.DBF.
- H·y liÖt kª néi dung tÖp HOSOTS.DBF mµ kh«ng cho hiÖn c¸c b¶n ghi ®· ®¸nh dÊu xãa
(H·y dïng hai ph•¬ng ph¸p).
- H·y kh«i phôc c¸c b¶n ghi lµ thÝ sinh thuéc khu vùc 2 (KV2) ®· bÞ ®¸nh dÊu xãa.
- Xãa tÊt c¶ c¸c b¶n ghi bÞ ®¸nh dÊu xãa.
8. H·y xãa hÕt nh÷ng thÝ sinh ®•îc •u tiªn ®iÓm trong tÖp DIEMTHI.DBF.
9. H·y bæ sung vµo tÖp HOSOTS.DBF c¸c thÝ sinh ®· bÞ xãa (thuéc KV1) tõ tÖp dù phßng
KV1.DBF.
10. H·y bæ sung vµo tÖp DIEMTHI.DBF c¸c thÝ sinh ®· bÞ xãa (®•îc céng ®iÓm •u tiªn) tõ tÖp
UUTIEN.DBF.
v. Qu¶n lý tÖp
1. LÖnh DIR
2. LÖnh DISPLAY FILES [ON ]
[LIKE ] [TO PRINTER]
3. LÖnh DELETE FILE
hoÆc ERASE
4. LÖnh COPY FILE TO
5. LÖnh RENAME TO
6. LÖnh TYPE [TO PRINTERTO FILE ]
7. LÖnh RUN
hoÆc !
8. LÖnh SET DEFAULT TO
9. C¸c hµm lµm viÖc víi tÖp:
BOF(): Cho gi¸ trÞ .T. nÕu ta ra lÖnh chuyÓn con trá b¶n ghi lªn trªn b¶n ghi ®Çu tiªn.
EOF(): Cho gi¸ trÞ .T. nÕu con trá b¶n ghi ®· ®Æt ë cuèi tÖp (b¶n ghi cuèi cïng cña tÖp ch•
ph¶i lµ cuèi tÖp, b¶n ghi ë cuèi tÖp dïng ®Ó l•u th«ng tin vÓ tæng sè b¶n ghi cña tÖp).
RECNO(): Cho sè thø tù cña b¶n ghi hiÖn hµnh. NÕu con trá ®· ë cuèi tÖp th× hµm sÏ cho
tæng sè b¶n ghi céng 1.
RECCOUNT(): Cho tæng sè b¶n ghi cña tÖp CSDL.
FCOUNT(): Cho sè tr•êng cña tÖp CSDL ®ang më.
FIELD(n): Cho biÕt tªn cña tr•êng thø n (d•íi d¹ng ch÷ hoa) trong tÖp CSDL ®ang më.
FSIZE(‘Tªn_tr•êng’): Cho ®é réng cña ‘Tªn_tr•êng’ trong tÖp CSDL.
DBF(): Cho biÕt tªn cïng c¶ ®•êng dÉn cña tÖp CSDL ®ang më.
FILE(‘§•êng_dÉn\Tªn_tÖp’): Cho gi¸ trÞ .T. nÕu ‘Tªn_tÖp’ ®•îc chØ ra ®· cã trªn ®Üa.
vi. T×m kiÕm tuÇn tù – s¾p xÕp vËt lý trªn CSDL
1. H·y t×m vµ ®•a ra mµn h×nh th«ng tin vÒ thÝ sinh cã sè b¸o danh lµ A02 trong tÖp
HOSOTS.DBF.
2. H·y t×m vµ ®•a ra mµn h×nh th«ng tin vÒ thÝ sinh tªn lµ NAM trong tÖp HOSOTS.DBF. §¸nh
dÊu xãa thÝ sinh nµy.
3. S¾p xÕp l¹i tÖp TINH.DBF t¨ng dÇn theo MATINH.
(Gîi ý: S¾p xÕp tÖp TINH.DBF t¨ng dÇn theo MATINH vµ l•u vµo tÖp míi tªn lµ TINH1.DBF.
Sau ®ã xãa tÖp TINH.DBF råi ®æi tªn tÖp TINH1.DBF thµnh TINH.DBF).
4. T•¬ng tù c©u 3, h·y s¾p xÕp l¹i tÖp DIEMTHI.DBF t¨ng dÇn theo SBD.
5. H·y s¾p xÕp tÖp HOSOTS.DBF sang tÖp míi lµ HOSO_SX.DBF theo thø tù t¨ng dÇn TEN,
HODEM, SBD vµ chØ lÊy c¸c tr•êng SBD, HODEM, TEN, NGAYSINH, GIOITINH.
6. H·y bæ sung thªm tr•êng TONG_DTHI N(4,1) vµo tÖp DIEMTHI.DBF ®Ó l•u tæng ®iÓm thi
cña 3 m«n. Söa tr•êng TONGDIEM thanh TONGCONG.
a. TÝnh TONG_DTHI theo quy t¾c sau:
- NÕu thi khèi D vµ khèi V th× DIEM3 nh©n hÖ sè 2, c¸c ®iÓm m«n kh¸c nh©n hÖ sè 1.
TONG_DTHI=DIEM1+DIEM2+DIEM3*2.
- C¸c khèi kh¸c nh• A, B, C... th× ®iÓm c¸c m«n nh©n hÖ sè 1.
TONG_DTHI=DIEM1+DIEM2+DIEM3.
(T¹m thêi ch•a tÝnh ®Õn viÖc ph¹t vi ph¹m quy chÕ thi cña thÝ sinh vµ bá qua
MUCKYLUAT)
b. TÝnh TONGCONG theo quy t¾c sau:
TONGCONG=TONG_DTHI+DIEMUT
(Chó ý: Cã 2 h×nh thøc •u tiªn ®iÓm lµ theo khu vùc vµ theo diÖn •u tiªn. Do vËy DIEMUT
®· ph¶i ®•îc chän lùa tõ 2 h×nh thøc trªn, c«ng viÖc nµy ®· lµm ë bµi tËp 2 c©u 10).
7. H·y bæ sung tr•êng DIEMCHUAN N(4,1) vµo c¸c tÖp KHOITHI.DBF vµ DIEMTHI.DBF ®Ó
l•u ®iÓm chuÈn cña kú thi tuyÓn sinh. Sau ®ã nhËp c¸c ®iÓm chuÈn cho tõng khèi thi ë c¶ 2 tÖp.
8. KÕt qu¶ thi (l•u vµo tr•êng KETQUA trong tÖp DIEMTHI.DBF) lµ “DO” hay “KHONG
DO”. T¹m thêi ta quy ®Þnh thÝ sinh “DO” nÕu tháa m·n tÊt c¶ c¸c ®iÒu kiÖn sau:
- Cã ®iÓm thi c¶ 3 m«n lín h¬n 1.
- Cã ®iÓm TONGCONG lín h¬n hoÆc b»ng DIEMCHUAN.
9. S¾p xÕp l¹i tÖp DIEMTHI.DBF theo chiÒu t¨ng dÇn cña KHOITHI, SBD.
vii. S¾p xÕp theo tÖp chØ sè
1. T¹o tÖp c¸c tÖp chØ sè chuÈn sau ®Ó chØ sè hãa tÖp CSDL HOSOTS.DBF:
a. IDXMA.IDX: ChØ sè hãa theo MAHOSO.
b. IDXSBD.IDX: ChØ sè hãa theo SBD.
c. IDXHODEM.IDX: ChØ sè hãa theo HODEM.
d. IDXTEN.IDX: ChØ sè hãa theo TEN.
e. IDXNS.IDX: ChØ sè hãa theo NGAYSINH.
f. IDXKV.IDX: ChØ sè hãa theo KHUVUC.
g. IDXKHOI.IDX: ChØ sè hãa theo KHOITHI.
2. Më tÊt c¶ tÖp chØ sè ®· t¹o ë c©u 1, lÊy tÖp IDXSBD.IDX lµm tÖp chØ sè chñ.
a. Cho hiÖn néi dung tÖp HOSOTS.DBF theo khãa s¾p xÕp lµ SBD.
b. §æi chØ sè chñ lµ tÖp IDXTEN.IDX råi hiÖn néi dung tÖp HOSOTS.DBF.
c. Cho hiÖn néi dung tÖp HOSOTS.DBF theo ®óng trËt tù vËt lý cña nã mµ kh«ng cÇn ®ãng
c¸c tÖp chØ sè ®· më.
3. Cã thÓ cho hiÖn néi dung tÖp HOSOTS.DBF theo c¶ 3 khãa s¾p xÕp lµ TEN, HODEM, SBD
®•îc kh«ng? NÕu ®•îc h·y cho hiÖn néi dung tÖp theo d¹ng ®ã.
4. H·y chØ sè hãa tÖp HOSOTS.DBF theo c¸c khãa sau:
a. SBD.
b. TEN, HODEM, SBD.
c. KHOITHI, TEN, HODEM
5. H·y chØ sè hãa tÖp DIEMTHI.DBF theo c¸c khãa sau:
a. KHOITHI, SBD
b. KHOITHI, KETQUA.
6. H·y chØ sè hãa tÖp TINH.DBF theo MATINH, TENTINH, KHUVUC b»ng tÖp chØ sè kÕt hîp
®éc lËp. Sau ®ã ®ãng tÖp chØ sè råi bæ sung mét vµi tØnh thµnh vµo tÖp TINH.DBF. Cho chØ sè
hãa råi hiÖn néi dung tÖp TINH.DBF xem thø tù s¾p xÕp cã cßn ®¶m b¶o kh«ng.
7. Thùc hiÖn c¸c thao t¸c ®æi ®Ýnh môc chñ, ®ãng, xãa ®Ýnh môc víi c¸c tÖp chØ sè CDX ®· t¹o.
viii. S¾p xÕp theo tÖp chØ sè (tiÕp)
1. T¹o tÖp chØ sè kÕt hîp kh«ng ®éc lËp ®Ó chØ sè hãa tÖp TINH.DBF theo thø tù khãa
KHUVUC, MATINH.
2. §èi víi tÖp DO.DBF:
a. H·y bæ sung c¸c thÝ sinh tróng tuyÓn tõ tÖp DIEMTHI.DBF.
b. ChØ sè hãa b»ng tÖp chØ sè kÕt hîp kh«ng ®éc lËp theo thø tù khãa: KHOITHI, SBD.
3. H·y chØ sè hãa tÖp HOSOTS.DBF sao cho cã thÓ:
a. T×m mét hå s¬ c¨n cø vµo SBD.
b. T×m mét hå s¬ c¨n cø vµo TEN.
c. T×m mét hå s¬ c¨n cø vµo MAHOSO
ix. §Æt läc vµ tÝnh to¸n trªn CSDL
1. H·y so s¸nh lÖnh ®Æt läc b¶n ghi SET FILTER TO víi c¸c thµnh phÇn FOR, WHILE trong
c¸c có ph¸p lÖnh nh• LIST, DISPLAY, BROWSE...
2. H·y so s¸nh lÖnh ®Æt läc tr•êng SET FIELDS TO víi thµnh phÇn FIELDS trong c¸c có ph¸p
lÖnh nh• LIST, DISPLAY, BROWSE...
3. Thùc hiÖn l¹i c¸c lÖnh LIST, DISPLAY, BROWSE trong c¸c c©u hái cña bµi tËp 2.
3. H·y ®Õm xem cã bao nhiªu thÝ sinh bá thi (c¨n cø vµo hå s¬ ®¨ng ký trong tÖp HOSOTS.DBF
vµ hå s¬ dù thi trong tÖp DIEMTHI.DBF).
4. H·y tæng hîp thÝ sinh trong tÖp HOSOTS.DBF theo tõng khu vùc.
x. Lµm viÖc víi nhiÒu CSDL
1. Ta quay l¹i bµi to¸n qu¶n lý tuyÓn sinh ®¹i häc:
a. H·y cËp nhËt khèi thi cña thÝ sinh theo ®¨ng ký trong tÖp HOSOTS.DBF vµo tÖp
DIEMTHI.DBF.
b. H·y cËp nhËt vµo tr•êng MUCKYLUAT cña tÖp DIEMTHI.DBF nh÷ng thÝ sinh vi ph¹m quy
chÕ thi tõ tÖp VIPHAM.DBF.
2. H·y t¹o ra tÖp BAODIEM.DBF bao gåm c¸c tr•êng sau ®Ó l•u thÝ sinh thi ®ç: SBD,
HODEM, TEN, NGAYSINH, KHOITHI, DIEM1, DIEM2, DIEM3, DIEMCONG,
TONGDIEM, KETQUA (C¸c tr•êng ®•îc lÊy tõ tÖp HOSOTS.DBF vµ tÖp DIEMTHI.DBF).
Cho biÕt cã bao nhiªu ng•êi thi ®ç.
3. H·y t¹o quan hÖ gi÷a hai tÖp HOSOTS.DBF vµ tÖp DIEMTHI.DBF ®Ó liÖt kª c¸c b¶n ghi theo
mÉu sau:
SBD HODEM TEN KHOITHI DIEM1 DIEM2 DIEM3 KETQUA
4. H·y t¹o mèi quan hÖ gi÷a tÖp VIPHAM.DBF vµ c¸c tÖp DIEMTHI.DBF vµ tÖp
KYLUAT.DBF ®Ó liÖt kª c¸c thÝ sinh vi ph¹m kû luËt theo mÉu sau:
SBD HODEM TEN MONTHI MUC HINHTHUC