Advertisement
KingAesthetic

LuaExample2

Sep 29th, 2024 (edited)
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.67 KB | None | 0 0
  1. -- Kaizer here. I created a phonebook in Lua displaying contact names, with the ability to search for existing contacts, delete contacts, e.t.c.
  2.  
  3. Contact = {}
  4. Contact.__index = Contact
  5.  
  6. function Contact.new(name, phone_number, email)
  7.     local self = setmetatable({}, Contact)
  8.     self.name = name
  9.     self.phone_number = phone_number
  10.     self.email = email
  11.     return self
  12. end
  13.  
  14. function Contact:getName()
  15.     return self.name
  16. end
  17.  
  18. function Contact:getPhoneNumber()
  19.     return self.phone_number
  20. end
  21.  
  22. function Contact:getEmail()
  23.     return self.email
  24. end
  25.  
  26. function Contact:display()
  27.     print(string.format("Name: %s, Phone: %s, Email: %s", self.name, self.phone_number, self.email))
  28. end
  29.  
  30. Phonebook = {}
  31. Phonebook.__index = Phonebook
  32.  
  33. function Phonebook.new()
  34.     local self = setmetatable({}, Phonebook)
  35.     self.contacts = {}
  36.     return self
  37. end
  38.  
  39. function Phonebook:addContact(name, phone_number, email)
  40.     table.insert(self.contacts, Contact.new(name, phone_number, email))
  41.     print(string.format("Contact %s added successfully.", name))
  42. end
  43.  
  44. function Phonebook:deleteContact(name)
  45.     for i, contact in ipairs(self.contacts) do
  46.         if contact:getName() == name then
  47.             table.remove(self.contacts, i)
  48.             print(string.format("Contact %s deleted successfully.", name))
  49.             return
  50.         end
  51.     end
  52.     print(string.format("Contact %s not found.", name))
  53. end
  54.  
  55. function Phonebook:searchContact(name)
  56.     for _, contact in ipairs(self.contacts) do
  57.         if contact:getName() == name then
  58.             print("Contact found:")
  59.             contact:display()
  60.             return
  61.         end
  62.     end
  63.     print(string.format("Contact %s not found.", name))
  64. end
  65.  
  66. function Phonebook:displayContacts()
  67.     if #self.contacts == 0 then
  68.         print("No contacts in the phonebook.")
  69.     else
  70.         print("Contacts in the phonebook:")
  71.         for _, contact in ipairs(self.contacts) do
  72.             contact:display()
  73.         end
  74.     end
  75. end
  76.  
  77. -- Main program
  78. local phonebook = Phonebook.new()
  79. phonebook:addContact("HiddenKesh", "357-323-112", "kesh@hiddendevs.com")
  80. phonebook:addContact("KaizerTiger", "777-777-777", "solocord@hiddendevs.com")
  81. phonebook:addContact("SoloCord", "212-478-098", "solocord@hiddendevs.com")
  82. phonebook:addContact("YingYang", "676-874-679", "solocord@hiddendevs.com")
  83. phonebook:addContact("PictureFolder", "345-100-094", "solocord@hiddendevs.com")
  84. phonebook:displayContacts()
  85. phonebook:searchContact("HiddenKesh")
  86. phonebook:deleteContact("SoloCord")
  87. phonebook:displayContacts()
  88. phonebook:searchContact("YingYang")
  89. phonebook:deleteContact("PictureFolder")
  90. phonebook:searchContact("BartholomewJohnsonIII")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement