Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 1/12
BBààii TT pp TThh cc HHàànnhh
CC uu TTrrúúcc DD LLii uu && GGii ii TThhuu tt
Kh i: Cao ð ng ngh và Trung C p
Năm 2009
Hư ng d n:
• Bài t p th c hành d a trên giáo trình: C & Data Structure
• Bài t p th c hành ñư c chia theo làm nhi u Module
• M i Module ñư c thi t k cho th i lư ng 4-6 ti t th c hành t i l p v i
s hư ng d n c a gi ng viên.
• Tùy theo s ti t phân b , m i tu n h c có th th c hi n nhi u Module.
• Sinh viên ph i làm t t c các bài t p trong các Module tu n tương ng.
Nh ng sinh viên chưa hòan t t ph n bài t p t i l p có trách nhi m t làm
ti p t c nhà.
• Các bài có d u (*) là các bài t p nâng cao dành cho sinh viên khá gi i.
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 2/12
Module 1
Bài 1
Vi t hàm tính t ng S=1+1/2+1/3…+ 1/N. S d ng hàm ñ tính S khi ngư i dùng nh p N.
Bài 2
Nh p 2 s a và n. Tính S =a^1 + a^2 + a^3 + …+ a^n.
Bài 3
Vi t chương trình tính t ng sau: S= 1 + 1/1! +1/2! + 1/3! + … + 1/n!
Bài 4
Vi t chương trình tính t ng sau: S= 1/1! +(1+2)/2! + (1+2+3)/3! + … + (1+2+3+…n)/n!
Bài 5
Vi t chương trình tính t ng sau: S= 1 + x/1! +x
2
/2! + x
3
/3! + … + x
n
/n!
Bài 6
Vi t chương trình tính t ng sau: S= 1 - x +x^2- x^3+ … (-1)x^n
Bài 7
Vi t m t hàm tính t ng các ch s c a m t s nguyên.
Vi t chương trình nh p vào m t s nguyên, dùng hàm trên ki m tra xem s ñó có chia h t cho 3 không.
(M t s chia h t cho 3 khi t ng các ch s c a nó chia h t cho 3)
Bài 8
Bài toán tính ti n lãi g i ngân hàng: Nh p ti n v n ban ñ u, s tháng g i N và lãi su t hàng tháng. Tính
s ti n nh n ñư c sau m i tháng g i bi t r ng ti n lãi hàng tháng ñư c g p vào ti n v n. S ti n nh n
ñư c sau m i tháng s hi n th trên màn hình d ng:
Tháng 1: 100
Tháng 2: 102
…
Ví d , ti n v n là100, lãi su t tháng là 2%. Sau 1 tháng g i s có s ti n là:
S ti n=100 + 100*0.02 = 102
Sau 2 tháng g i s có s ti n là: S ti n=102 + 102*0.02 = 104.04
Công th c tính ti n thu ñư c sau m i tháng g i là: S ti n := Ti n v n + Ti n v n * Lãi su t
S ti n này l i tr thành ti n v n c a tháng sau, t c là:
Ti n v n := S ti n;
Qúa trình c l p ñi l p l i t tháng 1 ñ n tháng N.
Bài 9
Tr l i bài toán tính ti n g i ngân hàng có ti n lãi hàng tháng g p vào v n (bài t p trên). Câu h i bây gi
là: c n g i t i thi u là bao nhiêu tháng ñ có ñư c s ti n > S cho trư c.
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 3/12
Module 2
Bài 1
Nh p 2 s n và k nguyên. Tính t h p ch p k c a n theo công th c như sau
C(k,n)=n!/(k!*(n-k)!)
Bài 2
Tìm các s Fibonaci. Dãy s Fibonaci { 1, 1, 2, 3, 5, 8, 13, 21,… } ñư c là dãy ñư c nh c nhi u trong
kh i k thu t, nó ñư c xây d ng như sau:
U0=1, U1=1 , Uk=Uk-1 + Uk-2 v i m i k= 2, 3, 4, ..
a. Vi t chương trình xu t ra màn hình s Fibonaci v trí th n (s d ng ñ quy)
b. Vi t chương trình xu t ra màn hình s Fibonaci v trí th n (KHÔNG s d ng ñ quy)
c. Vi t chương trình nh p s nguyên n và xu t ra n s Fibonaci ñ u tiên
Bài 3
a. Nh p 2 s nguyên dương m và n. Tính Ư c s chung nh nh t và b i s chung l n nh t c a m
và n (s d ng ñ quy)
b. Nh p 2 s nguyên dương m và n. Tính Ư c s chung nh nh t và b i s chung l n nh t c a m
và n (không s d ng ñ quy)
Bài 4
Vi t hàm nh p s giây và ñ i thành gi : phút : giây.
Ví d : nh p 3665 giây -> 1 gi 1 phút 5 giây
Bài 5
a. Vi t hàm ki m tra 1 s có ph i là s nguyên t hay không (s ch chia h t cho 1 và chính nó)
b. Vi t hàm hi n th t t c các s nguyên t bé hơn s n nh p t bàn phím
c. Vi t hàm hi n th t t c các s nguyên t bé hơn s n nh p t bàn phím, in lên màn hình m i
dòng 19 s
d. Vi t hàm hi n th t t n s s nguyên t ñ u tiên tính t 2 (n nh p t bàn phím). . Ví d n=8 thì k t
qu là: 2,3,5,7,11,13,17,19
Bài 6
Tìm s n bé nh t thoã s =1 + 2 + 3 +… + n >10000 vã hãy cho bi t khi ñó s có giá tr là bao nhiêu ?
Bài 7
Vi t hàm dùng ñ phân tích m t s nguyên dương ra th a s nguyên t .
Ví d : khi nh p n =100 thì hi n th : 100=5*5*2*2
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 4/12
Module 3
Bài 1
VCT nh p vào 2 phân s a/b và c/d.
Hãy tính t ng c a phân s này, yêu c u là phân s k t qu ph i d ng t i gi n.
ví d :1/6+1/3=1/2
Bài 2
Vi t m t hàm ñ o ngư c th t các ph n t c a m t m ng s nguyên.
Ví d : m ng nh p vào 1 2 3 4 5 7 9 10. sau khi ñ o m ng thành 10 9 7 5 4 3 2 1
Bài 3
Vi t chương trình nh p vào m t m ng s t nhiên. Hãy xu t ra màn hình:
- Dòng 1 : g m các s l , t ng c ng có bao nhiêu s l .
- Dòng 2 : g m các s ch n, t ng c ng có bao nhiêu s ch n.
- Dòng 3 : g m các s nguyên t .
- Dòng 4 : g m các s không ph i là s nguyên t
Bài 4
Vi t chương trình nh p vào m t m ng, hãy xu t ra màn hình:
- Ph n t l n nh t c a m ng.
- Ph n t nh nh t c a m ng.
- Tính t ng c a các ph n t trong m ng .
- Tính trung bình c ng
- Tính t ng c a các ph n t là s nguyên t trong m ng .
- Tính s lư ng ph n t là s nguyên t trong m ng .
- Ph n t âm l n nh t c a m ng.
- Ph n t dương nh nh t c a m ng.
- T ng các ph n t có căn b c hai nguyên .
- G m các s l , t ng c ng có bao nhiêu s l .
- G m các s ch n, t ng c ng có bao nhiêu s ch n.
- Ki m tra tính ñ i x ng cũa m ng
- Tìm phân t là s nguyên t ñ u tiên trong m ng
- Tìm 2 phân t là 2 s nguyên t ñ u tiên trong m ng
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 5/12
Module 4
Bài 1
T ch c và xây d ng 2 hàm : Gi iPT_bac1 và Gi iPT_bac2 v i các tham s h p lý.
S d ng 2 hàm này ñ gi i pt b c 2.
Bài 2
T ch c hàm v i các tham s h p lý dùng ñ tính:
• M t hàm dùng ñ tính chu vi và di n tính hình tròn t bán kính
• M t hàm dùng ñ tính chu vi và di n tính hình ch nh t t chi u dài-r ng
• M t hàm dùng ñ tính MAXMIN c a 2 s integer.
• M t hàm dùng ñ tính b i s chung nh nh t – USC l n nh t c a 2 s nguyên dương.
Bài 3
Vi t chương trình tính lương cho các công nhân t i xư ng may. M i công nhân s có gi vào và gi ra
trong m t ngày. Ti n lương ñư c tính như sau:
• T 5h-8h: m i gi 20,000 ñ
• T 8h-11h: m i gi 15,000 ñ
• T 11h-14h: m i gi 30,000 ñ
• T 14h-17h: m i gi 22,000 ñ
• T 17h-24h: m i gi 40,000 ñ
Chú ý: Xây d ng hàm v i tham s h p lý.
Bài 4
Vi t chương trình xây d ng và qu n lý danh sách liên k t ñơn. Thành ph n qu n lý g m con tr pHead
và pTail (ñ u và cu i xâu). Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng
hàm). Thành ph n d li u trong m i Node là giá tr ki u integer.
• Thêm m t node vào ñ u danh
sách
• Thêm m t node vào cu i danh
sách
• Thêm nhi u node vào ñ u danh
sách
• Thêm nhi u node vào cu i danh
sách
• Hi n th giá tr node th n
• Tìm m t node d a theo giá tr
nh p vào
• Thêm m t node vào sau m t
node nào ñó (nh p giá tr ñ tìm)
• ð m s lư ng node trong xâu
• Hi n th danh sách các node
trong xâu
• H y m t node (nh p giá tr c n
tìm)
• H y tòan b danh sách
• Tính t ng giá tr tòan b danh
sách
• Tìm giá tr l n nh t và nh nh t
trong danh sách
• S p x p danh sách v i giá tr
tăng d n (t ch n thu t tóan)
Bài 5
Vi t chương trình xây d ng và qu n lý danh sách liên k t ñơn. Thành ph n qu n lý xâu ch g m con tr
pHead (ñ u xâu). Hi n th menu th c hi n các ch c năng tương t bài t p trên.
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 6/12
Module 5
Bài 1
Vi t chương trình xây d ng và qu n lý danh sách liên k t vòng ñơn. Thành ph n qu n lý g m con tr
pHead. Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n
d li u trong m i Node là giá tr ki u integer.
• Hi n th toàn b danh sách
• Thêm m t node vào danh sách
• Tìm m t node trong danh sách
(giá tr nh p vào)
• Hi n th các node là s nguyên t
• H y m t node trong danh sách
(giá tr nh p vào- ñ u tiên tìm
th y)
• H y t t c các node là s nguyên
t
• Tăng giá tr m i node lên 2
• Tính t ng giá tr tòan b danh sách
• Tìm giá tr l n nh t và nh nh t
trong danh sách
• S p x p danh sách tăng d n
• H y tòan b danh sách
Bài 2
Vi t chương trình xây d ng và qu n lý danh sách liên k t ñôi. Thành ph n qu n lý g m con tr pHead và
pTail. Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d
li u trong m i Node là giá tr ki u integer.
• Hi n th giá tr toàn b danh sách
theo th t t ñ u ñ n cu i
• Hi n th giá tr toàn b danh sách
theo th t t cu i ñ n ñ u
• Thêm m t node vào ñ u danh
sách
• Thêm m t node vào cu i danh
sách
• Thêm m t node vào sau m t ph n
t (giá tr nh p vào)
• Tìm m t node trong danh sách.
• ð m s l n xu t hi n c a m t
node trong danh sách
• H y ph n t ñ u danh sách
• H y ph n t cu i danh sách
• H y ph n t trong danh sách (giá
tr nh p vào)
• Hi n th các node là s nguyên t
• H y m t node trong danh sách
(giá tr nh p vào- ñ u tiên tìm
th y)
• H y t t c các node là s nguyên
t
• Tăng giá tr m i node lên 2
• Tính t ng giá tr tòan b danh sách
• Tìm giá tr l n nh t và nh nh t
trong danh sách
• S p x p danh sách tăng d n
• H y tòan b danh sách
Bài 3
Vi t chương trình xây d ng và qu n lý 2 danh sách liên k t ñôi. Thành ph n qu n lý cho m i danh sách
ch g m con tr pHead. Hi n th menu th c hi n các ch c năng sau:
• Nh p n ph n t ng u nhiên vào m i danh sách (n nh p vào)
• Hi n th giá tr t ng danh sách, m i danh sách m t hàng
• Ghép danh sách 2 vào phía sau danh sách 1, ñ ng th i h y danh sách 2.
• Tìm giá tr l n nh t c a 2 danh sách
• Tính t ng giá tr 2 danh sách
• Chèn danh sách 2 vào gi a danh sách 1 (sau 1 ph n t v i giá tr nh p vào)
• S p x p 2 danh sách tăng d n.
• Ghép danh sách 2 vào danh sách 1 sao cho sau khi ghép, danh sách 1 v n tăng d n.
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 7/12
Module 6
Bài 1
Vi t chương trình xây d ng và qu n lý danh sách liên k t vòng ñôi. Thành ph n qu n lý g m con tr
pHead. Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n
d li u trong m i Node là giá tr ki u integer.
• Thêm m t node vào cu i danh sách (giá tr nh p vào)
• Lưu tr danh sách xu ng file text
• ð c danh sách t file text.
• S p x p danh sách tăng d n.
• Tìm giá tr trung bình c a danh sách
Bài 2
Vi t chương trình xây d ng và qu n lý danh sách liên k t ñôi. Thành ph n qu n lý g m con tr pHead,
pTail. Thành ph n d li u trong m i node là thông tin m t sinh viên, bào g m các trư ng:
+Mã sinh viên (int)
+H tên sinh viên (string)
+L p (string)
+ði m Toán (float)
+ði m Lý (float)
+ði m Hóa (float)
Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm).
• Hi n th toàn b danh sách
• Tìm m t sinh viên theo mã sinh viên (nh p vào)
• Thêm m t sinh viên vào cu i danh sách. ð m b o không có 2 sinh viên nào trùng mã.
• Xóa m t sinh viên kh i danh sách t mã sinh viên (nh p vào)
• Nh p m t l p. Hi n th danh sách sinh viên thu c v l p ñó
• Tính t ng s sinh viên có ñi m toán >=5
• Hi n th toàn b danh sách sinh viên ch a tên nh p vào
o (Ví d : nh p tên c n tìm là Khuong, hi n th toàn b sinh viên ch a tên Khuong)
• Hi n th danh sách sinh viên y u (có ñi m trung bình <=4)
• Hi n th danh sách sinh viên gi i (có ñi m trung bình >=8 và không có môn h c nào
<=6)
• S p x p danh sách tăng d n theo mã sinh viên
• S p x p danh sách tăng d n theo ñi m trung bình
• S p x p danh sách tăng d n theo t ng l p, trong m i l p tăng d n theo ñi m trung bình
• S p x p danh sách tăng d n theo t ng l p, trong m i l p gi m d n theo ñi m trung bình
• S p x p danh sách tăng d n theo ñi m toán, r i ñ n ñi m lý, r i ñ n ñi m hóa.
• Nh p m t l p. H y toàn b các sinh viên thu c v l p ñó.
• H y t t c sinh viên có h c l c kém (ñi m trung bình <=3).
• S p x p danh sách tăng d n theo mã sinh viên. Sau ñó, khi thêm m t sinh viên m i vào,
chèn sinh viên này vào ñúng v trí sao cho danh sách sinh viên v n th a ñi u ki n tăng
d n theo mã.
• H y tòan b danh sách
• Lưu tr danh sách sinh viên này vào file text
• N p danh sách sinh viên t file text.
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 8/12
Module 7
Bài 1
S d ng danh sách liên k t ñơn t o stack. M i thành ph n c a stack g m 2 thông tin: Tên L p, sĩ s h c
sinh. H th ng menu g m các m c
+Lưu stack hi n t i vào file
+Push ph n t m i (l p m i) vào stack
+Pop ph n t vào stack
+HI n th danh sách c a stack
+N p stack t file
Lưu ý:
+M i khi Push m t l p vào stack, n u tên l p ñó chưa có, chương trình ph i t o ph n t m i.
+N u l p ñó ñã t n t i thì không thêm l p m i, mà ch c p nh t thêm sĩ s sinh viên (c ng d n
s lư ng sinh viên m i vào sĩ s hi n t i).
Bài 2
S d ng danh sách liên k t ñôi ñ qu n lý khách hàng cho m t nhà ga.. M i thành ph n thông tin lưu tr
cho khách hàng g m: s CMND khác hàng (10 ký t ), Tên khách hàng, Ga ñ n, giá ti n.
H th ng menu g m các m c:
+N p danh sách t file
+Thêm m t khách hàng m i vào hàng ñ i mua vé.
+Bán m t vé cho khách hàng. Ch bán cho ngư i ñăng ký trư c.
+Hi n th danh sách khách hàng.
+H y m t khách hàng ra kh i danh sách. (khách hàng không mua vé n a).
+Th ng kê tình hình bán vé
+Lưu danh sách vào file
+Hi n th danh sách các ga ñang ch mua vé.
+Hi n th danh sách các ga ñang ch mua vé và s vé tương ng cho ga.
Lưu ý:
+S khách hàng trong danh sách hi n t i là s khách ñang ch , nhưng chưa có vé. Khi m t
khách hàng ñã mua vé, thì lo i khách hàng này ra kh i danh sách ch mua vé.
+Vi c mua vé ph i có th t : ai vào trư c thì mua vé trư c (FIFO).
+M i khi khách hàng mua ñư c vé ph i lưu l i khách hàng này ñ dùng cho vi c th ng kê.
+M i khi thêm m t khác hàng m i, n u S CMND khách hàng ñã có thì không t o ph n t m i
mà ch c p nh t l i ga và giá ti n ñ n cho khác hàng ñó.
+M c th ng kê tình hình: cho bi t còn bao nhiêu khách hàng ch nh n vé, bao nhiêu khách hàng
ñã nh n vé, t ng s ti n ñã thu v là bao nhiêu.
+Vi c lưu danh sách: ch lưu các khách hàng ch mua vé. Các khách hàng ñã nh n vé xem như
k t s trong ngày không c n lưu l i.
+Khi chương trình v a ñư c ch y, l p t c t ñ ng n p toàn b danh sách khách hàng t file
(cách khách hàng chưa có vé).
+Khi hi n th danh sách các ga ñ n ñang ch mua vé, ch hi n th tên ga ñó m t l n. (Ví d : gi
s 10 khách hàng nhưng ñăng ký ñi ñ n 2 ga, thì ch hi n th 2 hàng).
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 9/12
Module 8
Bài 1
Vi t chương trình xây d ng và qu n lý cây nh phân tìm ki m (Binary Search Tree). Hi n th menu th c
hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node là giá
tr ki u integer.
• Thêm m t node vào cây (giá tr nh p vào). N u node này ñã có giá tr thì thông báo
không thêm vào node ñã có.
• Tìm giá tr trung bình c a danh sách
• Xu t danh sách. Khi menu này ñư c ch n, hi n th menu con cho phép ch n l a
o Xu t danh sách theo th t preorder
o Xu t danh sách theo th t inorder
o Xu t danh sách theo th t postorder
Bài 2
S d ng bài t p câu trên ti p t c phát tri n r ng các menu như sau.
• Lưu tòan b cây xu ng file
• N p cây t file
• Tính s lư ng node c a tree
• Tính chi u cao c a cây
• Tìm giá tr nh nh t
• Tìm giá tr l n nh t
• Tìm m t node theo giá tr nh p vào
• Hi n th giá tr tăng d n toàn b cây
• Th ng kê s lư ng node: là s ch n, là s l m là s nguyên t
Chú ý: Khi ngư i s d ng thêm 1 node, chương trình ph i t ñ ng lưu xu ng file ngay l p t c
Khi chương trình v a kh i ñ ng, l p t c n p hi n th tree ra màn hình
Bài 3
Vi t chương trình xây d ng và qu n lý danh sách sinh viên d a trên cây nh phân tìm ki m (Binary
Search Tree). M i sinh viên ch a các thông tin: mã sv (char), tên sv (char), ñi m tóan, ñi m lý, ñi m hóa.
Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). L p ch m c Index cho
cơ s d li u theo mã sinh viên. Không có 2 sinh viên nào trùng mã v i nhau.
• Thêm m t SV m i
• Xu t danh sách SV tăng d n theo mã SV
• Tìm 1 SV theo mã. N u tìm ra hi n th menu con ch a các m c
o Hi n th thông tin sinh viên: tên, các ñi m và ñi m trung bình
o C p nh t (s a) thông tin SV (tên, ñi m tóan, ñi m lý)
• Lưu danh sách sinh viên xu ng file
• ð c danh sách sinh viên t file
• Xu t danh sách sinh viên tăng d n theo tên SV.
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 10/12
Module 9
Bài 1
Vi t chương trình xây d ng và qu n lý cây nh phân tìm ki m (Binary Search Tree). Hi n th menu th c
hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node là giá
tr ki u integer.
• Thêm m t node vào cây (giá tr nh p vào).
• Lưu cây vào file
• ð c cây t file
• Xu t danh sách
o Inorder
o Preorder
• Tìm m t node trên cây
• H y m t node trên cây. (ch n node trái cùng nhánh bên ph i)
• H y m t node trên cây. (ch n node ph i cùng nhánh bên ph i)
Lưu ý: sinh viên v trên gi y cây nh phân, ñ ng th i v i vi c th c thi chương trình cho các thao tác xóa-
thêm node và ki m tra ñ i chi u k t qu chương trình v i trên gi y.
Bài 2
S d ng bài t p câu trên ti p t c phát tri n r ng các menu như sau. (Chú ý: các ch c năng th c hi n
b ng hàm, không s d ng bi n tòan c c. S d ng k thu t ñ quy):
• ð m s node c a cây.
• ð m s lnode lá c a cây
• ð m s node có ñ y ñ 2 con
• ð m s node ch có 1 con
• ð m s node có giá tr ch n
• ð m s node có giá tr l
• Tính t ng giá tr các node
• Tìm giá tr trung bình c a danh sách
• Tìm chi u cao c a cây
• Tính giá tr trung bình c a các node
• Tìm giá tr nh nh t
• Tìm giá tr l n nh t
• Tìm m t node theo giá tr nh p vào
• Tìm c p (level) c a m t node theo giá tr nh p vào
• H y tòan b cây.
• (*) Xu t ra ñư ng ñi t root ñ n 1 node b t kỳ (giá tr nh p vào)
• (*) Tìm ñư ng ñi gi a 2 node b t kỳ (v i 2 giá tr nh p vào)
• (*) Ki m tra 2 node b t kỳ có quan h t tiên hay không? (v i 2 giá tr nh p vào)
• (*) Xu t ra ñư ng ñi gi a 2 node b t kỳ (v i 2 giá tr nh p vào)
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 11/12
Module 10
Bài 1
Vi t chương trình qu n lý danh sách l p. M i sinh viên g m các thành ph n:
+Mã SV: char[10];
+Mã L p : int
+Tên SV: char[255];
+DiemToan
+DiemLy
+DiemHoa
M i l p ch a g m các thông tin:
+Mã L p: int
+Tên L p: char[10];
+Khóa
Thành ph n khóa chính (và Index) c a danh sách sinh viên chính là mã SV. Thành ph n khóa chính (và
Index) c a danh sách l p chính là mã l p.
Xây d ng và qu n lý danh sách l p s d ng cây nh phân tìm ki m (Binary Search Tree). Hi n th menu
th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node
là giá tr ki u integer.
1. Thêm 1 l p m i.
2. Thêm m t sinh viên
a. N u mã SV ñã có thì hi n th sinh viên ñó ra màn hình, cùng v i thông báo không th
nh p sinh viên ñã có
b. Mã l p ph i t n t i trong danh sách l p. N u chưa có, ph i hi n thông báo l i.
3. Tìm m t sinh viên theo mã SV
a. Khi tìm th y, hi n th mã, tên, ñi m, mã l p và tên l p.
4. Lưu danh sách sinh viên-l p vào file
5. ð c danh sách sinh vi n t file.
6. Hi n th danh sách sinh viên
a. Tăng d n theo mã SV
b. Gi m d n theo mã SV
c. M i sinh viên hi n th ñi m toán, lý, hóa và ñi m trung bình
7. Tìm t t c sinh viên theo tên nh p vào
8. Hi n th t t c sinh viên theo mã l p nh p vào
9. Hi n th t t c sinh viên theo tên l p nh p vào
10. Xóa m t sinh viên ra kh i danh sách
11. Xóa m t l p ra kh i danh sách
12. Tìm t t c sinh viên có ñi m trung bình l n nh t
13. Tìm t t c sinh viên có ñi m trung bình l n nh t trong m t l p
Chú ý: Sinh viên s d ng 2 cây nh phân, m t cho danh sách l p, m t cho danh sách sinh viên.
ð ñơn gi n, có th lưu thành 2 file riêng cho danh sách l p và danh sách sinh viên.
Lưu ý: M i m t thao tác thêm sinh viên, xóa sinh viên: chương trình t ñ ng lưu vào file. L n th c thi k
ti p, chương trình t ñ ng n p t file vào b nh .
Trung Tâm CNTT – Bài T p Th c Hành CTDL&GT
Trang 12/12
Module 11
Bài 1
Vi t chương trình qu n lý danh sách l p. M i sinh viên g m các thành ph n:
+Mã SV, Tên SV: char[255], DiemTB
M i l p g m các thông tin:
+Mã L p: int
+Tên L p: char[10];
M i l p có nhi u Sinh viên.
S d ng các c u trúc d li u sau. M i trư ng h p th c hi n 3 ch c năng: thêm l p, thêm sinh viên, tìm
t t c sinh viên c a 1 l p.
Bài 2
Vi t chương trình qu n lý danh sách mua vé máy bay – hành khách. M i khách ch mua 1 vé. M i vé
máy bay g m các thành ph n: Vé máy bay (ID,giá)
M i hành khách g m các thông tin: Khách(PassID, ten)
S d ng các c u trúc d li u sau. Th c hi n menu v i 3 ch c năng: thêm vé máy bay, thêm hành khách,
bán 1 vé máy bay (vé chưa bán) cho 1 hành khách (chưa mua vé). Khi bán vé, ngư i s d ng nh p ID
c a vé và PassID c a hành khách.

Bài tập CTDL và GT 2

  • 1.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 1/12 BBààii TT pp TThh cc HHàànnhh CC uu TTrrúúcc DD LLii uu && GGii ii TThhuu tt Kh i: Cao ð ng ngh và Trung C p Năm 2009 Hư ng d n: • Bài t p th c hành d a trên giáo trình: C & Data Structure • Bài t p th c hành ñư c chia theo làm nhi u Module • M i Module ñư c thi t k cho th i lư ng 4-6 ti t th c hành t i l p v i s hư ng d n c a gi ng viên. • Tùy theo s ti t phân b , m i tu n h c có th th c hi n nhi u Module. • Sinh viên ph i làm t t c các bài t p trong các Module tu n tương ng. Nh ng sinh viên chưa hòan t t ph n bài t p t i l p có trách nhi m t làm ti p t c nhà. • Các bài có d u (*) là các bài t p nâng cao dành cho sinh viên khá gi i.
  • 2.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 2/12 Module 1 Bài 1 Vi t hàm tính t ng S=1+1/2+1/3…+ 1/N. S d ng hàm ñ tính S khi ngư i dùng nh p N. Bài 2 Nh p 2 s a và n. Tính S =a^1 + a^2 + a^3 + …+ a^n. Bài 3 Vi t chương trình tính t ng sau: S= 1 + 1/1! +1/2! + 1/3! + … + 1/n! Bài 4 Vi t chương trình tính t ng sau: S= 1/1! +(1+2)/2! + (1+2+3)/3! + … + (1+2+3+…n)/n! Bài 5 Vi t chương trình tính t ng sau: S= 1 + x/1! +x 2 /2! + x 3 /3! + … + x n /n! Bài 6 Vi t chương trình tính t ng sau: S= 1 - x +x^2- x^3+ … (-1)x^n Bài 7 Vi t m t hàm tính t ng các ch s c a m t s nguyên. Vi t chương trình nh p vào m t s nguyên, dùng hàm trên ki m tra xem s ñó có chia h t cho 3 không. (M t s chia h t cho 3 khi t ng các ch s c a nó chia h t cho 3) Bài 8 Bài toán tính ti n lãi g i ngân hàng: Nh p ti n v n ban ñ u, s tháng g i N và lãi su t hàng tháng. Tính s ti n nh n ñư c sau m i tháng g i bi t r ng ti n lãi hàng tháng ñư c g p vào ti n v n. S ti n nh n ñư c sau m i tháng s hi n th trên màn hình d ng: Tháng 1: 100 Tháng 2: 102 … Ví d , ti n v n là100, lãi su t tháng là 2%. Sau 1 tháng g i s có s ti n là: S ti n=100 + 100*0.02 = 102 Sau 2 tháng g i s có s ti n là: S ti n=102 + 102*0.02 = 104.04 Công th c tính ti n thu ñư c sau m i tháng g i là: S ti n := Ti n v n + Ti n v n * Lãi su t S ti n này l i tr thành ti n v n c a tháng sau, t c là: Ti n v n := S ti n; Qúa trình c l p ñi l p l i t tháng 1 ñ n tháng N. Bài 9 Tr l i bài toán tính ti n g i ngân hàng có ti n lãi hàng tháng g p vào v n (bài t p trên). Câu h i bây gi là: c n g i t i thi u là bao nhiêu tháng ñ có ñư c s ti n > S cho trư c.
  • 3.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 3/12 Module 2 Bài 1 Nh p 2 s n và k nguyên. Tính t h p ch p k c a n theo công th c như sau C(k,n)=n!/(k!*(n-k)!) Bài 2 Tìm các s Fibonaci. Dãy s Fibonaci { 1, 1, 2, 3, 5, 8, 13, 21,… } ñư c là dãy ñư c nh c nhi u trong kh i k thu t, nó ñư c xây d ng như sau: U0=1, U1=1 , Uk=Uk-1 + Uk-2 v i m i k= 2, 3, 4, .. a. Vi t chương trình xu t ra màn hình s Fibonaci v trí th n (s d ng ñ quy) b. Vi t chương trình xu t ra màn hình s Fibonaci v trí th n (KHÔNG s d ng ñ quy) c. Vi t chương trình nh p s nguyên n và xu t ra n s Fibonaci ñ u tiên Bài 3 a. Nh p 2 s nguyên dương m và n. Tính Ư c s chung nh nh t và b i s chung l n nh t c a m và n (s d ng ñ quy) b. Nh p 2 s nguyên dương m và n. Tính Ư c s chung nh nh t và b i s chung l n nh t c a m và n (không s d ng ñ quy) Bài 4 Vi t hàm nh p s giây và ñ i thành gi : phút : giây. Ví d : nh p 3665 giây -> 1 gi 1 phút 5 giây Bài 5 a. Vi t hàm ki m tra 1 s có ph i là s nguyên t hay không (s ch chia h t cho 1 và chính nó) b. Vi t hàm hi n th t t c các s nguyên t bé hơn s n nh p t bàn phím c. Vi t hàm hi n th t t c các s nguyên t bé hơn s n nh p t bàn phím, in lên màn hình m i dòng 19 s d. Vi t hàm hi n th t t n s s nguyên t ñ u tiên tính t 2 (n nh p t bàn phím). . Ví d n=8 thì k t qu là: 2,3,5,7,11,13,17,19 Bài 6 Tìm s n bé nh t thoã s =1 + 2 + 3 +… + n >10000 vã hãy cho bi t khi ñó s có giá tr là bao nhiêu ? Bài 7 Vi t hàm dùng ñ phân tích m t s nguyên dương ra th a s nguyên t . Ví d : khi nh p n =100 thì hi n th : 100=5*5*2*2
  • 4.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 4/12 Module 3 Bài 1 VCT nh p vào 2 phân s a/b và c/d. Hãy tính t ng c a phân s này, yêu c u là phân s k t qu ph i d ng t i gi n. ví d :1/6+1/3=1/2 Bài 2 Vi t m t hàm ñ o ngư c th t các ph n t c a m t m ng s nguyên. Ví d : m ng nh p vào 1 2 3 4 5 7 9 10. sau khi ñ o m ng thành 10 9 7 5 4 3 2 1 Bài 3 Vi t chương trình nh p vào m t m ng s t nhiên. Hãy xu t ra màn hình: - Dòng 1 : g m các s l , t ng c ng có bao nhiêu s l . - Dòng 2 : g m các s ch n, t ng c ng có bao nhiêu s ch n. - Dòng 3 : g m các s nguyên t . - Dòng 4 : g m các s không ph i là s nguyên t Bài 4 Vi t chương trình nh p vào m t m ng, hãy xu t ra màn hình: - Ph n t l n nh t c a m ng. - Ph n t nh nh t c a m ng. - Tính t ng c a các ph n t trong m ng . - Tính trung bình c ng - Tính t ng c a các ph n t là s nguyên t trong m ng . - Tính s lư ng ph n t là s nguyên t trong m ng . - Ph n t âm l n nh t c a m ng. - Ph n t dương nh nh t c a m ng. - T ng các ph n t có căn b c hai nguyên . - G m các s l , t ng c ng có bao nhiêu s l . - G m các s ch n, t ng c ng có bao nhiêu s ch n. - Ki m tra tính ñ i x ng cũa m ng - Tìm phân t là s nguyên t ñ u tiên trong m ng - Tìm 2 phân t là 2 s nguyên t ñ u tiên trong m ng
  • 5.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 5/12 Module 4 Bài 1 T ch c và xây d ng 2 hàm : Gi iPT_bac1 và Gi iPT_bac2 v i các tham s h p lý. S d ng 2 hàm này ñ gi i pt b c 2. Bài 2 T ch c hàm v i các tham s h p lý dùng ñ tính: • M t hàm dùng ñ tính chu vi và di n tính hình tròn t bán kính • M t hàm dùng ñ tính chu vi và di n tính hình ch nh t t chi u dài-r ng • M t hàm dùng ñ tính MAXMIN c a 2 s integer. • M t hàm dùng ñ tính b i s chung nh nh t – USC l n nh t c a 2 s nguyên dương. Bài 3 Vi t chương trình tính lương cho các công nhân t i xư ng may. M i công nhân s có gi vào và gi ra trong m t ngày. Ti n lương ñư c tính như sau: • T 5h-8h: m i gi 20,000 ñ • T 8h-11h: m i gi 15,000 ñ • T 11h-14h: m i gi 30,000 ñ • T 14h-17h: m i gi 22,000 ñ • T 17h-24h: m i gi 40,000 ñ Chú ý: Xây d ng hàm v i tham s h p lý. Bài 4 Vi t chương trình xây d ng và qu n lý danh sách liên k t ñơn. Thành ph n qu n lý g m con tr pHead và pTail (ñ u và cu i xâu). Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node là giá tr ki u integer. • Thêm m t node vào ñ u danh sách • Thêm m t node vào cu i danh sách • Thêm nhi u node vào ñ u danh sách • Thêm nhi u node vào cu i danh sách • Hi n th giá tr node th n • Tìm m t node d a theo giá tr nh p vào • Thêm m t node vào sau m t node nào ñó (nh p giá tr ñ tìm) • ð m s lư ng node trong xâu • Hi n th danh sách các node trong xâu • H y m t node (nh p giá tr c n tìm) • H y tòan b danh sách • Tính t ng giá tr tòan b danh sách • Tìm giá tr l n nh t và nh nh t trong danh sách • S p x p danh sách v i giá tr tăng d n (t ch n thu t tóan) Bài 5 Vi t chương trình xây d ng và qu n lý danh sách liên k t ñơn. Thành ph n qu n lý xâu ch g m con tr pHead (ñ u xâu). Hi n th menu th c hi n các ch c năng tương t bài t p trên.
  • 6.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 6/12 Module 5 Bài 1 Vi t chương trình xây d ng và qu n lý danh sách liên k t vòng ñơn. Thành ph n qu n lý g m con tr pHead. Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node là giá tr ki u integer. • Hi n th toàn b danh sách • Thêm m t node vào danh sách • Tìm m t node trong danh sách (giá tr nh p vào) • Hi n th các node là s nguyên t • H y m t node trong danh sách (giá tr nh p vào- ñ u tiên tìm th y) • H y t t c các node là s nguyên t • Tăng giá tr m i node lên 2 • Tính t ng giá tr tòan b danh sách • Tìm giá tr l n nh t và nh nh t trong danh sách • S p x p danh sách tăng d n • H y tòan b danh sách Bài 2 Vi t chương trình xây d ng và qu n lý danh sách liên k t ñôi. Thành ph n qu n lý g m con tr pHead và pTail. Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node là giá tr ki u integer. • Hi n th giá tr toàn b danh sách theo th t t ñ u ñ n cu i • Hi n th giá tr toàn b danh sách theo th t t cu i ñ n ñ u • Thêm m t node vào ñ u danh sách • Thêm m t node vào cu i danh sách • Thêm m t node vào sau m t ph n t (giá tr nh p vào) • Tìm m t node trong danh sách. • ð m s l n xu t hi n c a m t node trong danh sách • H y ph n t ñ u danh sách • H y ph n t cu i danh sách • H y ph n t trong danh sách (giá tr nh p vào) • Hi n th các node là s nguyên t • H y m t node trong danh sách (giá tr nh p vào- ñ u tiên tìm th y) • H y t t c các node là s nguyên t • Tăng giá tr m i node lên 2 • Tính t ng giá tr tòan b danh sách • Tìm giá tr l n nh t và nh nh t trong danh sách • S p x p danh sách tăng d n • H y tòan b danh sách Bài 3 Vi t chương trình xây d ng và qu n lý 2 danh sách liên k t ñôi. Thành ph n qu n lý cho m i danh sách ch g m con tr pHead. Hi n th menu th c hi n các ch c năng sau: • Nh p n ph n t ng u nhiên vào m i danh sách (n nh p vào) • Hi n th giá tr t ng danh sách, m i danh sách m t hàng • Ghép danh sách 2 vào phía sau danh sách 1, ñ ng th i h y danh sách 2. • Tìm giá tr l n nh t c a 2 danh sách • Tính t ng giá tr 2 danh sách • Chèn danh sách 2 vào gi a danh sách 1 (sau 1 ph n t v i giá tr nh p vào) • S p x p 2 danh sách tăng d n. • Ghép danh sách 2 vào danh sách 1 sao cho sau khi ghép, danh sách 1 v n tăng d n.
  • 7.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 7/12 Module 6 Bài 1 Vi t chương trình xây d ng và qu n lý danh sách liên k t vòng ñôi. Thành ph n qu n lý g m con tr pHead. Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node là giá tr ki u integer. • Thêm m t node vào cu i danh sách (giá tr nh p vào) • Lưu tr danh sách xu ng file text • ð c danh sách t file text. • S p x p danh sách tăng d n. • Tìm giá tr trung bình c a danh sách Bài 2 Vi t chương trình xây d ng và qu n lý danh sách liên k t ñôi. Thành ph n qu n lý g m con tr pHead, pTail. Thành ph n d li u trong m i node là thông tin m t sinh viên, bào g m các trư ng: +Mã sinh viên (int) +H tên sinh viên (string) +L p (string) +ði m Toán (float) +ði m Lý (float) +ði m Hóa (float) Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). • Hi n th toàn b danh sách • Tìm m t sinh viên theo mã sinh viên (nh p vào) • Thêm m t sinh viên vào cu i danh sách. ð m b o không có 2 sinh viên nào trùng mã. • Xóa m t sinh viên kh i danh sách t mã sinh viên (nh p vào) • Nh p m t l p. Hi n th danh sách sinh viên thu c v l p ñó • Tính t ng s sinh viên có ñi m toán >=5 • Hi n th toàn b danh sách sinh viên ch a tên nh p vào o (Ví d : nh p tên c n tìm là Khuong, hi n th toàn b sinh viên ch a tên Khuong) • Hi n th danh sách sinh viên y u (có ñi m trung bình <=4) • Hi n th danh sách sinh viên gi i (có ñi m trung bình >=8 và không có môn h c nào <=6) • S p x p danh sách tăng d n theo mã sinh viên • S p x p danh sách tăng d n theo ñi m trung bình • S p x p danh sách tăng d n theo t ng l p, trong m i l p tăng d n theo ñi m trung bình • S p x p danh sách tăng d n theo t ng l p, trong m i l p gi m d n theo ñi m trung bình • S p x p danh sách tăng d n theo ñi m toán, r i ñ n ñi m lý, r i ñ n ñi m hóa. • Nh p m t l p. H y toàn b các sinh viên thu c v l p ñó. • H y t t c sinh viên có h c l c kém (ñi m trung bình <=3). • S p x p danh sách tăng d n theo mã sinh viên. Sau ñó, khi thêm m t sinh viên m i vào, chèn sinh viên này vào ñúng v trí sao cho danh sách sinh viên v n th a ñi u ki n tăng d n theo mã. • H y tòan b danh sách • Lưu tr danh sách sinh viên này vào file text • N p danh sách sinh viên t file text.
  • 8.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 8/12 Module 7 Bài 1 S d ng danh sách liên k t ñơn t o stack. M i thành ph n c a stack g m 2 thông tin: Tên L p, sĩ s h c sinh. H th ng menu g m các m c +Lưu stack hi n t i vào file +Push ph n t m i (l p m i) vào stack +Pop ph n t vào stack +HI n th danh sách c a stack +N p stack t file Lưu ý: +M i khi Push m t l p vào stack, n u tên l p ñó chưa có, chương trình ph i t o ph n t m i. +N u l p ñó ñã t n t i thì không thêm l p m i, mà ch c p nh t thêm sĩ s sinh viên (c ng d n s lư ng sinh viên m i vào sĩ s hi n t i). Bài 2 S d ng danh sách liên k t ñôi ñ qu n lý khách hàng cho m t nhà ga.. M i thành ph n thông tin lưu tr cho khách hàng g m: s CMND khác hàng (10 ký t ), Tên khách hàng, Ga ñ n, giá ti n. H th ng menu g m các m c: +N p danh sách t file +Thêm m t khách hàng m i vào hàng ñ i mua vé. +Bán m t vé cho khách hàng. Ch bán cho ngư i ñăng ký trư c. +Hi n th danh sách khách hàng. +H y m t khách hàng ra kh i danh sách. (khách hàng không mua vé n a). +Th ng kê tình hình bán vé +Lưu danh sách vào file +Hi n th danh sách các ga ñang ch mua vé. +Hi n th danh sách các ga ñang ch mua vé và s vé tương ng cho ga. Lưu ý: +S khách hàng trong danh sách hi n t i là s khách ñang ch , nhưng chưa có vé. Khi m t khách hàng ñã mua vé, thì lo i khách hàng này ra kh i danh sách ch mua vé. +Vi c mua vé ph i có th t : ai vào trư c thì mua vé trư c (FIFO). +M i khi khách hàng mua ñư c vé ph i lưu l i khách hàng này ñ dùng cho vi c th ng kê. +M i khi thêm m t khác hàng m i, n u S CMND khách hàng ñã có thì không t o ph n t m i mà ch c p nh t l i ga và giá ti n ñ n cho khác hàng ñó. +M c th ng kê tình hình: cho bi t còn bao nhiêu khách hàng ch nh n vé, bao nhiêu khách hàng ñã nh n vé, t ng s ti n ñã thu v là bao nhiêu. +Vi c lưu danh sách: ch lưu các khách hàng ch mua vé. Các khách hàng ñã nh n vé xem như k t s trong ngày không c n lưu l i. +Khi chương trình v a ñư c ch y, l p t c t ñ ng n p toàn b danh sách khách hàng t file (cách khách hàng chưa có vé). +Khi hi n th danh sách các ga ñ n ñang ch mua vé, ch hi n th tên ga ñó m t l n. (Ví d : gi s 10 khách hàng nhưng ñăng ký ñi ñ n 2 ga, thì ch hi n th 2 hàng).
  • 9.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 9/12 Module 8 Bài 1 Vi t chương trình xây d ng và qu n lý cây nh phân tìm ki m (Binary Search Tree). Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node là giá tr ki u integer. • Thêm m t node vào cây (giá tr nh p vào). N u node này ñã có giá tr thì thông báo không thêm vào node ñã có. • Tìm giá tr trung bình c a danh sách • Xu t danh sách. Khi menu này ñư c ch n, hi n th menu con cho phép ch n l a o Xu t danh sách theo th t preorder o Xu t danh sách theo th t inorder o Xu t danh sách theo th t postorder Bài 2 S d ng bài t p câu trên ti p t c phát tri n r ng các menu như sau. • Lưu tòan b cây xu ng file • N p cây t file • Tính s lư ng node c a tree • Tính chi u cao c a cây • Tìm giá tr nh nh t • Tìm giá tr l n nh t • Tìm m t node theo giá tr nh p vào • Hi n th giá tr tăng d n toàn b cây • Th ng kê s lư ng node: là s ch n, là s l m là s nguyên t Chú ý: Khi ngư i s d ng thêm 1 node, chương trình ph i t ñ ng lưu xu ng file ngay l p t c Khi chương trình v a kh i ñ ng, l p t c n p hi n th tree ra màn hình Bài 3 Vi t chương trình xây d ng và qu n lý danh sách sinh viên d a trên cây nh phân tìm ki m (Binary Search Tree). M i sinh viên ch a các thông tin: mã sv (char), tên sv (char), ñi m tóan, ñi m lý, ñi m hóa. Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). L p ch m c Index cho cơ s d li u theo mã sinh viên. Không có 2 sinh viên nào trùng mã v i nhau. • Thêm m t SV m i • Xu t danh sách SV tăng d n theo mã SV • Tìm 1 SV theo mã. N u tìm ra hi n th menu con ch a các m c o Hi n th thông tin sinh viên: tên, các ñi m và ñi m trung bình o C p nh t (s a) thông tin SV (tên, ñi m tóan, ñi m lý) • Lưu danh sách sinh viên xu ng file • ð c danh sách sinh viên t file • Xu t danh sách sinh viên tăng d n theo tên SV.
  • 10.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 10/12 Module 9 Bài 1 Vi t chương trình xây d ng và qu n lý cây nh phân tìm ki m (Binary Search Tree). Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node là giá tr ki u integer. • Thêm m t node vào cây (giá tr nh p vào). • Lưu cây vào file • ð c cây t file • Xu t danh sách o Inorder o Preorder • Tìm m t node trên cây • H y m t node trên cây. (ch n node trái cùng nhánh bên ph i) • H y m t node trên cây. (ch n node ph i cùng nhánh bên ph i) Lưu ý: sinh viên v trên gi y cây nh phân, ñ ng th i v i vi c th c thi chương trình cho các thao tác xóa- thêm node và ki m tra ñ i chi u k t qu chương trình v i trên gi y. Bài 2 S d ng bài t p câu trên ti p t c phát tri n r ng các menu như sau. (Chú ý: các ch c năng th c hi n b ng hàm, không s d ng bi n tòan c c. S d ng k thu t ñ quy): • ð m s node c a cây. • ð m s lnode lá c a cây • ð m s node có ñ y ñ 2 con • ð m s node ch có 1 con • ð m s node có giá tr ch n • ð m s node có giá tr l • Tính t ng giá tr các node • Tìm giá tr trung bình c a danh sách • Tìm chi u cao c a cây • Tính giá tr trung bình c a các node • Tìm giá tr nh nh t • Tìm giá tr l n nh t • Tìm m t node theo giá tr nh p vào • Tìm c p (level) c a m t node theo giá tr nh p vào • H y tòan b cây. • (*) Xu t ra ñư ng ñi t root ñ n 1 node b t kỳ (giá tr nh p vào) • (*) Tìm ñư ng ñi gi a 2 node b t kỳ (v i 2 giá tr nh p vào) • (*) Ki m tra 2 node b t kỳ có quan h t tiên hay không? (v i 2 giá tr nh p vào) • (*) Xu t ra ñư ng ñi gi a 2 node b t kỳ (v i 2 giá tr nh p vào)
  • 11.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 11/12 Module 10 Bài 1 Vi t chương trình qu n lý danh sách l p. M i sinh viên g m các thành ph n: +Mã SV: char[10]; +Mã L p : int +Tên SV: char[255]; +DiemToan +DiemLy +DiemHoa M i l p ch a g m các thông tin: +Mã L p: int +Tên L p: char[10]; +Khóa Thành ph n khóa chính (và Index) c a danh sách sinh viên chính là mã SV. Thành ph n khóa chính (và Index) c a danh sách l p chính là mã l p. Xây d ng và qu n lý danh sách l p s d ng cây nh phân tìm ki m (Binary Search Tree). Hi n th menu th c hi n các ch c năng sau (m i ch c năng th c hi n b ng hàm). Thành ph n d li u trong m i Node là giá tr ki u integer. 1. Thêm 1 l p m i. 2. Thêm m t sinh viên a. N u mã SV ñã có thì hi n th sinh viên ñó ra màn hình, cùng v i thông báo không th nh p sinh viên ñã có b. Mã l p ph i t n t i trong danh sách l p. N u chưa có, ph i hi n thông báo l i. 3. Tìm m t sinh viên theo mã SV a. Khi tìm th y, hi n th mã, tên, ñi m, mã l p và tên l p. 4. Lưu danh sách sinh viên-l p vào file 5. ð c danh sách sinh vi n t file. 6. Hi n th danh sách sinh viên a. Tăng d n theo mã SV b. Gi m d n theo mã SV c. M i sinh viên hi n th ñi m toán, lý, hóa và ñi m trung bình 7. Tìm t t c sinh viên theo tên nh p vào 8. Hi n th t t c sinh viên theo mã l p nh p vào 9. Hi n th t t c sinh viên theo tên l p nh p vào 10. Xóa m t sinh viên ra kh i danh sách 11. Xóa m t l p ra kh i danh sách 12. Tìm t t c sinh viên có ñi m trung bình l n nh t 13. Tìm t t c sinh viên có ñi m trung bình l n nh t trong m t l p Chú ý: Sinh viên s d ng 2 cây nh phân, m t cho danh sách l p, m t cho danh sách sinh viên. ð ñơn gi n, có th lưu thành 2 file riêng cho danh sách l p và danh sách sinh viên. Lưu ý: M i m t thao tác thêm sinh viên, xóa sinh viên: chương trình t ñ ng lưu vào file. L n th c thi k ti p, chương trình t ñ ng n p t file vào b nh .
  • 12.
    Trung Tâm CNTT– Bài T p Th c Hành CTDL&GT Trang 12/12 Module 11 Bài 1 Vi t chương trình qu n lý danh sách l p. M i sinh viên g m các thành ph n: +Mã SV, Tên SV: char[255], DiemTB M i l p g m các thông tin: +Mã L p: int +Tên L p: char[10]; M i l p có nhi u Sinh viên. S d ng các c u trúc d li u sau. M i trư ng h p th c hi n 3 ch c năng: thêm l p, thêm sinh viên, tìm t t c sinh viên c a 1 l p. Bài 2 Vi t chương trình qu n lý danh sách mua vé máy bay – hành khách. M i khách ch mua 1 vé. M i vé máy bay g m các thành ph n: Vé máy bay (ID,giá) M i hành khách g m các thông tin: Khách(PassID, ten) S d ng các c u trúc d li u sau. Th c hi n menu v i 3 ch c năng: thêm vé máy bay, thêm hành khách, bán 1 vé máy bay (vé chưa bán) cho 1 hành khách (chưa mua vé). Khi bán vé, ngư i s d ng nh p ID c a vé và PassID c a hành khách.