Wyszukiwanie kontaktu
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 45 z 54.
Wyzwanie
ŁatwyZaimplementuj funkcję wyszukiwania w aplikacji do zarządzania listą kontaktów. Gdy użytkownik wpisze search, program powinien poprosić o imię i wyświetlić wszystkie pasujące kontakty.
Rozbuduj rozwiązanie z poprzedniego wyzwania, dodając obsługę polecenia search. Przejdź przez tablicę contacts, aby znaleźć kontakty, których imiona pasują do wyszukiwanego hasła. Wyświetl wszystkie pasujące kontakty lub poinformuj użytkownika, jeśli nie znaleziono żadnego kontaktu.
Wymagania:
- Zachowaj cały kod z poprzedniego wyzwania (konfigurację, wyświetlanie menu, główną pętlę, funkcję dodawania i funkcję wyświetlania listy)
- Gdy użytkownik wpisze
search, wyświetl:Enter name to search: - Odczytaj wyszukiwane hasło za pomocą
io.read() - Użyj
ipairs(), aby przejść przez tablicęcontacts - Dla każdego kontaktu sprawdź, czy pole
namedokładnie pasuje do wyszukiwanego hasła - Jeśli znajdziesz dopasowanie, wyświetl je w formacie:
Found: [name] - [phone] - Jeśli po sprawdzeniu wszystkich kontaktów nie znajdziesz dopasowania, wyświetl:
Contact not found. - Polecenia
add,listiquitpowinny nadal działać tak jak wcześniej - Inne polecenia powinny nadal wyświetlać
Command not yet implemented
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:
search
Enter name to search:
Alice
Found: Alice - 555-1234
Enter command:
search
Enter name to search:
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 found.")
else
print("Contact List:")
for i, contact in ipairs(contacts) do
print(i .. ". " .. contact.name .. " - " .. contact.phone)
end
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