SlideShare a Scribd company logo
1 of 12
Download to read offline
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.

More Related Content

Viewers also liked (15)

Cau 2
Cau 2Cau 2
Cau 2
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oop
 
C5 classes and objects
C5 classes and objectsC5 classes and objects
C5 classes and objects
 
Ctdl lab01
Ctdl lab01Ctdl lab01
Ctdl lab01
 
Ctdl 2005 chuong 2
Ctdl 2005 chuong 2Ctdl 2005 chuong 2
Ctdl 2005 chuong 2
 
Ctdl 2005 chuong 4
Ctdl 2005 chuong 4Ctdl 2005 chuong 4
Ctdl 2005 chuong 4
 
Debug trong c
Debug trong cDebug trong c
Debug trong c
 
Phân tích một số thuật toán
Phân tích một số thuật toánPhân tích một số thuật toán
Phân tích một số thuật toán
 
Chuong8 (2)
Chuong8 (2)Chuong8 (2)
Chuong8 (2)
 
Chuong5 (2)
Chuong5 (2)Chuong5 (2)
Chuong5 (2)
 
Chuong2 c
Chuong2 c Chuong2 c
Chuong2 c
 
Chuong4 (2)
Chuong4 (2)Chuong4 (2)
Chuong4 (2)
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12
 
Bai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocBai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hoc
 

Similar to Bài tập CTDL và GT 2

bctntlvn (110).pdf
bctntlvn (110).pdfbctntlvn (110).pdf
bctntlvn (110).pdf
Luanvan84
 
Maubaocao luanvan
Maubaocao luanvanMaubaocao luanvan
Maubaocao luanvan
satthu127
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
Hồ Lợi
 

Similar to Bài tập CTDL và GT 2 (20)

5206 dinh muc_lao_dong
5206 dinh muc_lao_dong5206 dinh muc_lao_dong
5206 dinh muc_lao_dong
 
SLIDE CAU TRUC DL_GT.pptx
SLIDE CAU TRUC DL_GT.pptxSLIDE CAU TRUC DL_GT.pptx
SLIDE CAU TRUC DL_GT.pptx
 
chương1.pdf
chương1.pdfchương1.pdf
chương1.pdf
 
Quyhoachmangdien
QuyhoachmangdienQuyhoachmangdien
Quyhoachmangdien
 
Maubaocao luanvan
Maubaocao luanvanMaubaocao luanvan
Maubaocao luanvan
 
bctntlvn (110).pdf
bctntlvn (110).pdfbctntlvn (110).pdf
bctntlvn (110).pdf
 
Maubaocao luanvan
Maubaocao luanvanMaubaocao luanvan
Maubaocao luanvan
 
Giao trinh xac suat thong ke hn1
Giao trinh xac suat thong ke   hn1Giao trinh xac suat thong ke   hn1
Giao trinh xac suat thong ke hn1
 
Gtxstk dhnn1
Gtxstk dhnn1Gtxstk dhnn1
Gtxstk dhnn1
 
Day hoc lt (aml)
Day hoc lt (aml)Day hoc lt (aml)
Day hoc lt (aml)
 
Đề tài: Thiết kế và phân tích thuật toán, HAY
Đề tài: Thiết kế và phân tích thuật toán, HAYĐề tài: Thiết kế và phân tích thuật toán, HAY
Đề tài: Thiết kế và phân tích thuật toán, HAY
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
 
Chiết lọc thông tin pháp luật trong dữ liệu văn bản.pdf
Chiết lọc thông tin pháp luật trong dữ liệu văn bản.pdfChiết lọc thông tin pháp luật trong dữ liệu văn bản.pdf
Chiết lọc thông tin pháp luật trong dữ liệu văn bản.pdf
 
Emailing buoi 2 thuat toan
Emailing buoi 2   thuat toanEmailing buoi 2   thuat toan
Emailing buoi 2 thuat toan
 
Bài tập CTDL và GT 13
Bài tập CTDL và GT 13Bài tập CTDL và GT 13
Bài tập CTDL và GT 13
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4u
 
Quan ly bo nho
Quan ly bo nhoQuan ly bo nho
Quan ly bo nho
 
Thuat toan thuat giai
Thuat toan thuat giaiThuat toan thuat giai
Thuat toan thuat giai
 
Giao trinh pha che hoa chat
Giao trinh pha che hoa chatGiao trinh pha che hoa chat
Giao trinh pha che hoa chat
 
Pha hóa chất
Pha hóa chấtPha hóa chất
Pha hóa chất
 

More from Hồ Lợi

Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của c
Hồ Lợi
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functions
Hồ Lợi
 
Ky thuatkhudequy
Ky thuatkhudequyKy thuatkhudequy
Ky thuatkhudequy
Hồ Lợi
 
Itt epc assignment
Itt epc assignmentItt epc assignment
Itt epc assignment
Hồ Lợi
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapc
Hồ Lợi
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
Hồ Lợi
 
Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2
Hồ Lợi
 
Giao trinh c c++
Giao trinh c c++Giao trinh c c++
Giao trinh c c++
Hồ Lợi
 
Epc assignment
Epc assignmentEpc assignment
Epc assignment
Hồ Lợi
 
Epc test practical
Epc test practicalEpc test practical
Epc test practical
Hồ Lợi
 
De thic++ --th
De thic++ --thDe thic++ --th
De thic++ --th
Hồ Lợi
 

More from Hồ Lợi (20)

Xu ly chuoi
Xu ly chuoiXu ly chuoi
Xu ly chuoi
 
Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của c
 
T4
T4T4
T4
 
Nguyen lyoop
Nguyen lyoopNguyen lyoop
Nguyen lyoop
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functions
 
Ky thuatkhudequy
Ky thuatkhudequyKy thuatkhudequy
Ky thuatkhudequy
 
Itt epc assignment
Itt epc assignmentItt epc assignment
Itt epc assignment
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapc
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
 
Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2
 
Giao trinh c c++
Giao trinh c c++Giao trinh c c++
Giao trinh c c++
 
File trong c_
File trong c_File trong c_
File trong c_
 
Epc assignment
Epc assignmentEpc assignment
Epc assignment
 
Epc test practical
Epc test practicalEpc test practical
Epc test practical
 
De thic++ --th
De thic++ --thDe thic++ --th
De thic++ --th
 
Dethi c++ -lt
Dethi c++ -ltDethi c++ -lt
Dethi c++ -lt
 
D05 stl
D05 stlD05 stl
D05 stl
 
Cpl test3
Cpl test3Cpl test3
Cpl test3
 
Cpl test2
Cpl test2Cpl test2
Cpl test2
 
Cpl test1
Cpl test1Cpl test1
Cpl test1
 

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.