Usuwanie kontaktu
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 46 z 54.
Wyzwanie
ŁatwyZaimplementuj funkcję usuwania w aplikacji listy kontaktów. Gdy użytkownik wpisze delete, program powinien poprosić o imię, znaleźć ten kontakt na liście i go usunąć.
Rozbudowując poprzednie wyzwanie, dodaj obsługę polecenia delete. Przejdź przez tablicę contacts, aby znaleźć kontakt o pasującym imieniu, a następnie użyj table.remove(), aby usunąć go z listy. Poinformuj użytkownika, czy usunięcie się powiodło.
Wymagania:
- Zachowaj cały kod z poprzedniego wyzwania (konfigurację, wyświetlanie menu, główną pętlę oraz funkcje dodawania, wyświetlania listy i wyszukiwania)
- Gdy użytkownik wpisze
delete, wyświetl:Enter name to delete: - Odczytaj imię za pomocą
io.read() - Użyj
ipairs(), aby przejść przez tablicęcontacts - Dla każdego kontaktu sprawdź, czy pole
namedokładnie odpowiada imieniu, które ma zostać usunięte - Jeśli znajdziesz pasujący kontakt, użyj
table.remove()z indeksem kontaktu, aby go usunąć - Po pomyślnym usunięciu wyświetl:
Contact deleted successfully! - Jeśli po sprawdzeniu wszystkich kontaktów nie znajdziesz pasującego, wyświetl:
Contact not found. - Gdy użyto polecenia
listi nie ma żadnych kontaktów, wyświetl:No contacts available. - Polecenia
add,list,searchiquitpowinny nadal działać jak wcześniej
Uwaga: Komunikat o pustej liście w tym wyzwaniu to No contacts available.. Użyj dokładnie tego ciągu, nawet jeśli w poprzedniej lekcji użyto innego sformułowania.
Przykładowa interakcja:
Welcome to Contact List Manager!
Available Commands:
add - Add a new contact
list - Display all contacts
search - Search for a contact
delete - Delete a contact
quit - Exit the program
Enter command:
add
Enter name:
Alice
Enter phone number:
555-1234
Contact added successfully!
Enter command:
add
Enter name:
Bob
Enter phone number:
555-5678
Contact added successfully!
Enter command:
list
Contact List:
1. Alice - 555-1234
2. Bob - 555-5678
Enter command:
delete
Enter name to delete:
Alice
Contact deleted successfully!
Enter command:
list
Contact List:
1. Bob - 555-5678
Enter command:
delete
Enter name to delete:
Charlie
Contact not found.
Enter command:
quit
Goodbye!Spróbuj swoich sił
-- Contact List Manager
local contacts = {}
-- Display welcome message
print("Welcome to Contact List Manager!")
print()
-- Display menu
print("Available Commands:")
print("add - Add a new contact")
print("list - Display all contacts")
print("search - Search for a contact")
print("delete - Delete a contact")
print("quit - Exit the program")
print()
-- Main loop
while true do
print("Enter command:")
local command = io.read()
if command == "add" then
print("Enter name:")
local name = io.read()
print("Enter phone number:")
local phone = io.read()
table.insert(contacts, {name = name, phone = phone})
print("Contact added successfully!")
print()
elseif command == "list" then
if #contacts == 0 then
print("No contacts available.")
else
print("Contact List:")
for i, contact in ipairs(contacts) do
print(i .. ". " .. contact.name .. " - " .. contact.phone)
end
end
print()
elseif command == "search" then
print("Enter name to search:")
local searchName = io.read()
local found = false
for i, contact in ipairs(contacts) do
if contact.name == searchName then
print("Found: " .. contact.name .. " - " .. contact.phone)
found = true
break
end
end
if not found then
print("Contact not found.")
end
print()
elseif command == "quit" then
print("Goodbye!")
break
else
print("Command not yet implemented")
print()
end
endWszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane iterowanie po tabelach
Iterowanie za pomocą pairs()Iterowanie za pomocą ipairs()pairs() a ipairs()Powtórka — karta postaci2Więcej funkcji biblioteki table
table.concat()Tworzenie tabel i unpack()table.sort()Sortowanie niestandardowe za pomocą funkcjiPodsumowanie — tablica najlepszych wyników5Projekt: silnik tekstowej gry przygodowej
Konfiguracja projektu: pokójŁączenie pokoi8Projekt: Lista kontaktów
Konfiguracja projektuGłówna pętlaPoćwicz samodzielnie: Kompilator Lua online