حذف جهة اتصال
جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 46 من 54.
التحدي
سهلنفّذ وظيفة الحذف لتطبيق قائمة جهات الاتصال لديك. عندما يُدخل المستخدم delete، يجب أن يطلب البرنامج اسمًا، ويعثر على جهة الاتصال تلك في القائمة، ثم يزيلها.
استنادًا إلى التحدي السابق، أضف وظيفة للتعامل مع الأمر delete. كرّر عبر جدول contacts للعثور على جهة الاتصال التي تحمل الاسم المطابق، ثم استخدم table.remove() لحذفها من القائمة. قدّم للمستخدم ملاحظات توضح ما إذا كان الحذف قد نجح.
المتطلبات:
- أبقِ على كل الشيفرة من التحدي السابق (الإعداد، وعرض القائمة، والحلقة الرئيسية، ووظائف add وlist وsearch)
- عندما يُدخل المستخدم
delete، اطبع:Enter name to delete: - اقرأ الاسم باستخدام
io.read() - استخدم
ipairs()للتكرار عبر جدولcontacts - لكل جهة اتصال، تحقّق مما إذا كان الحقل
nameيطابق الاسم المراد حذفه تمامًا - إذا تم العثور على تطابق، استخدم
table.remove()مع فهرس جهة الاتصال لحذفها - بعد الحذف بنجاح، اطبع:
Contact deleted successfully! - إذا لم يتم العثور على تطابق بعد التحقق من جميع جهات الاتصال، اطبع:
Contact not found. - عند استخدام الأمر
listوعدم وجود جهات اتصال، اطبع:No contacts available. - يجب أن تظل أوامر
addوlistوsearchوquitتعمل كما كانت من قبل
ملاحظة: رسالة القائمة الفارغة في هذا التحدي هي No contacts available.. تأكّد من استخدام هذه السلسلة النصية exact، حتى إذا استخدم درس سابق صياغة مختلفة.
مثال على التفاعل:
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!جرّب بنفسك
-- 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
endجميع دروس المنطق والتحكم في التدفق
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائج5مشروع: محرك مغامرة نصية
إعداد المشروع: الغرفةربط الغرف8مشروع: قائمة جهات الاتصال
إعداد المشروعالحلقة التكرارية الرئيسيةتدرّب بنفسك: مترجم Lua عبر الإنترنت