Menu
Coddy logo textTech

Cercare un contatto

Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 45 di 54.

challenge icon

Sfida

Facile

Implementa la funzionalità di ricerca per la tua applicazione di rubrica. Quando l’utente inserisce search, il programma dovrebbe chiedere un nome e visualizzare tutti i contatti corrispondenti.

Partendo dalla sfida precedente, aggiungi la funzionalità per gestire il comando search. Scorri la tabella contacts per trovare i contatti i cui nomi corrispondono al termine di ricerca. Visualizza tutte le corrispondenze oppure informa l’utente se non viene trovato alcun contatto.

Requisiti:

  • Mantieni tutto il codice della sfida precedente (configurazione, visualizzazione del menu, ciclo principale, funzionalità di aggiunta e funzionalità di elenco)
  • Quando l’utente inserisce search, stampa: Enter name to search:
  • Leggi il termine di ricerca usando io.read()
  • Usa ipairs() per scorrere la tabella contacts
  • Per ogni contatto, controlla se il campo name corrisponde esattamente al termine di ricerca
  • Se viene trovata una corrispondenza, stampa nel formato: Found: [name] - [phone]
  • Se non viene trovata alcuna corrispondenza dopo aver controllato tutti i contatti, stampa: Contact not found.
  • I comandi add, list e quit dovrebbero continuare a funzionare come prima
  • Gli altri comandi dovrebbero continuare a stampare Command not yet implemented

Esempio di interazione:

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!

Provalo tu

-- 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
end

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Lua online