Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Kaizer here. I created a phonebook in Lua displaying contact names, with the ability to search for existing contacts, delete contacts, e.t.c.
- Contact = {}
- Contact.__index = Contact
- function Contact.new(name, phone_number, email)
- local self = setmetatable({}, Contact)
- self.name = name
- self.phone_number = phone_number
- self.email = email
- return self
- end
- function Contact:getName()
- return self.name
- end
- function Contact:getPhoneNumber()
- return self.phone_number
- end
- function Contact:getEmail()
- return self.email
- end
- function Contact:display()
- print(string.format("Name: %s, Phone: %s, Email: %s", self.name, self.phone_number, self.email))
- end
- Phonebook = {}
- Phonebook.__index = Phonebook
- function Phonebook.new()
- local self = setmetatable({}, Phonebook)
- self.contacts = {}
- return self
- end
- function Phonebook:addContact(name, phone_number, email)
- table.insert(self.contacts, Contact.new(name, phone_number, email))
- print(string.format("Contact %s added successfully.", name))
- end
- function Phonebook:deleteContact(name)
- for i, contact in ipairs(self.contacts) do
- if contact:getName() == name then
- table.remove(self.contacts, i)
- print(string.format("Contact %s deleted successfully.", name))
- return
- end
- end
- print(string.format("Contact %s not found.", name))
- end
- function Phonebook:searchContact(name)
- for _, contact in ipairs(self.contacts) do
- if contact:getName() == name then
- print("Contact found:")
- contact:display()
- return
- end
- end
- print(string.format("Contact %s not found.", name))
- end
- function Phonebook:displayContacts()
- if #self.contacts == 0 then
- print("No contacts in the phonebook.")
- else
- print("Contacts in the phonebook:")
- for _, contact in ipairs(self.contacts) do
- contact:display()
- end
- end
- end
- -- Main program
- local phonebook = Phonebook.new()
- phonebook:addContact("HiddenKesh", "357-323-112", "kesh@hiddendevs.com")
- phonebook:addContact("KaizerTiger", "777-777-777", "solocord@hiddendevs.com")
- phonebook:addContact("SoloCord", "212-478-098", "solocord@hiddendevs.com")
- phonebook:addContact("YingYang", "676-874-679", "solocord@hiddendevs.com")
- phonebook:addContact("PictureFolder", "345-100-094", "solocord@hiddendevs.com")
- phonebook:displayContacts()
- phonebook:searchContact("HiddenKesh")
- phonebook:deleteContact("SoloCord")
- phonebook:displayContacts()
- phonebook:searchContact("YingYang")
- phonebook:deleteContact("PictureFolder")
- phonebook:searchContact("BartholomewJohnsonIII")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement