写一个顺序表结构,实现电话本模拟程序,包括电话本的建立、插入、删除、修改、逆置、查找、输出,并设计一个主菜单完成各个功能的调用。
时间: 2023-04-09 22:04:44 浏览: 89
好的,以下是一个简单的顺序表结构的电话本模拟程序的代码:
```lua
-- 定义一个电话本结构体
local Phonebook = {}
-- 初始化电话本
function Phonebook:init()
self.data = {}
end
-- 插入联系人
function Phonebook:insert(name, number)
table.insert(self.data, {name = name, number = number})
end
-- 删除联系人
function Phonebook:delete(name)
for i, v in ipairs(self.data) do
if v.name == name then
table.remove(self.data, i)
break
end
end
end
-- 修改联系人
function Phonebook:update(name, number)
for i, v in ipairs(self.data) do
if v.name == name then
v.number = number
break
end
end
end
-- 逆置电话本
function Phonebook:reverse()
local n = #self.data
for i = 1, math.floor(n / 2) do
self.data[i], self.data[n - i + 1] = self.data[n - i + 1], self.data[i]
end
end
-- 查找联系人
function Phonebook:search(name)
for i, v in ipairs(self.data) do
if v.name == name then
return v.number
end
end
return nil
end
-- 输出电话本
function Phonebook:print()
for i, v in ipairs(self.data) do
print(v.name, v.number)
end
end
-- 主菜单
function main()
local phonebook = Phonebook:init()
while true do
print("1. 插入联系人")
print("2. 删除联系人")
print("3. 修改联系人")
print("4. 逆置电话本")
print("5. 查找联系人")
print("6. 输出电话本")
print("0. 退出程序")
local choice = io.read("*n")
if choice == 1 then
print("请输入联系人姓名:")
local name = io.read("*line")
print("请输入联系人电话:")
local number = io.read("*line")
phonebook:insert(name, number)
elseif choice == 2 then
print("请输入要删除的联系人姓名:")
local name = io.read("*line")
phonebook:delete(name)
elseif choice == 3 then
print("请输入要修改的联系人姓名:")
local name = io.read("*line")
print("请输入新的联系人电话:")
local number = io.read("*line")
phonebook:update(name, number)
elseif choice == 4 then
phonebook:reverse()
elseif choice == 5 then
print("请输入要查找的联系人姓名:")
local name = io.read("*line")
local number = phonebook:search(name)
if number then
print(name, number)
else
print("未找到该联系人!")
end
elseif choice == 6 then
phonebook:print()
elseif choice == 0 then
break
else
print("无效的选项!")
end
end
end
main()
```
这个程序使用了一个简单的顺序表结构来存储联系人信息,可以实现电话本的建立、插入、删除、修改、逆置、查找和输出功能。主菜单提供了各个功能的调用,用户可以根据需要选择相应的选项来操作电话本。
阅读全文