Câu hỏi 2. Viết chương trình quản li các bải hát trong một đĩa CD hay mớt play list, sử dụng cấu...

Câu hỏi:

Câu hỏi 2. Viết chương trình quản li các bải hát trong một đĩa CD hay mớt play list, sử dụng cấu trúc LinkedList (đã được định nghĩa ở bài trước). Chương trình gồm hai tệp:

 Tệp quan _ly_cd.py gồm ba hàm:

- Hàm nhapDL(): Yêu cầu người dùng nhập số lượng bài hát, rồi sau đó nhập lần lượt tên các bài hát và bổ sung vào đĩa CD (hay play list), trả lại biến kiểu

LinkedList chứa các bài hát.

- Hàm timBai(): Tham số gồm đối tượng LinkedList và tên bài hát <ten_bai>. Nếu có bài hát cần tìm, hàm in ra vị trí đầu tiền xuất hiện bài hát,nếu không in ra thông báo “Không tìm thấy bài hát <ten_bai>”.

- Hàm inTT() tham số là đối tượng LinkedList. thực hiện in mỗi bài hát trên một dòng theo định dạng <Số thứ tự>. <Tên bài hát>.

 Tệp main.py sử dụng thư viện quan_ly_cd.

Câu trả lời:
Người trả lời: GV. Đỗ Văn Phương
Để giải quyết câu hỏi trên, bạn cần thực hiện các bước sau:

1. Định nghĩa cấu trúc LinkedList (đã được định nghĩa ở bài trước).
2. Viết tệp quan_ly_cd.py gồm 3 hàm như đã mô tả trong câu hỏi: nhapDL(), timBai() và inTT().
3. Viết tệp main.py sử dụng các hàm từ tệp quan_ly_cd.py để thực hiện nhập dữ liệu, tìm kiếm bài hát và in danh sách bài hát.

Dưới đây là một cách giải quyết câu hỏi bằng Python:

**Định nghĩa cấu trúc LinkedList:**

```python
class Node:
def __init__(self, data):
self.data = data
self.next = None

class LinkedList:
def __init__(self):
self.head = None

def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
last = self.head
while last.next:
last = last.next
last.next = new_node

def find(self, data):
current = self.head
index = 0
while current:
if current.data == data:
return index
current = current.next
index += 1
return None

def __str__(self):
result = ""
current = self.head
index = 1
while current:
result += f"{index}. {current.data}\n"
current = current.next
index += 1
return result
```

**Tệp quan_ly_cd.py:**

```python
from LinkedList import LinkedList

def nhapDL():
ds_bai_hat = LinkedList()
n = int(input("Nhập số lượng bài hát: "))
for i in range(n):
ten_bai = input(f"Nhập tên bài hát thứ {i+1}: ")
ds_bai_hat.append(ten_bai)
return ds_bai_hat

def timBai(ds_bai_hat, ten_bai):
result = ds_bai_hat.find(ten_bai)
if result is not None:
print(f"Bài hát '{ten_bai}' được tìm thấy ở vị trí đầu tiên: {result + 1}")
else:
print(f"Không tìm thấy bài hát '{ten_bai}'")

def inTT(ds_bai_hat):
print("Danh sách bài hát trên đĩa CD hay playlist:")
print(ds_bai_hat)
```

**Tệp main.py:**

```python
from quan_ly_cd import nhapDL, timBai, inTT

def main():
ds_bai_hat = nhapDL()
while True:
print("====================================")
print("1. Tìm bài hát")
print("2. In danh sách bài hát")
print("3. Thoát")
choice = int(input("Nhập lựa chọn của bạn: "))
if choice == 1:
ten_bai = input("Nhập tên bài hát cần tìm: ")
timBai(ds_bai_hat, ten_bai)
elif choice == 2:
inTT(ds_bai_hat)
elif choice == 3:
break

if __name__ == "__main__":
main()
```

Bạn có thể thực hiện các bước trên để giải quyết câu hỏi của mình. Để đảm bảo chương trình hoạt động đúng, hãy chắc chắn rằng tất cả các tệp được lưu với tên và đường dẫn đúng.
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.43090 sec| 2191.68 kb