A60589 | 管理电话号码编写一个使用SQLite管理电话号码的程序,功能有:显示所有电话号码、添加、删除和退出,请补全程序。(本题无需运行通过,写入代码即可)import sqlite3
来源2025年
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
管理电话号码
编写一个使用SQLite管理电话号码的程序,功能有:显示所有电话号码、添加、删除和退出,请补全程序。
(本题无需运行通过,写入代码即可)
import sqlite3
def init_db():
conn = sqlite3.connect('phonebook.db')
cursor = conn.cursor()
cursor.execute("DROP TABLE IF EXISTS contacts")
cursor.execute('''CREATE TABLE contacts (name TEXT NOT NULL,phone TEXT PRIMARY KEY)''')
conn.commit()
return conn
def show_all_contacts(conn):
cursor = conn.cursor()
cursor.execute("SELECT name, phone FROM contacts ORDER BY name")
contacts = cursor. ①
if not contacts:
print("电话簿为空")
return
for name, phone in contacts:
print(f"{name}: {phone}")
def add_contact(conn):
name = input("请输入姓名: ").strip()
phone = input("请输入电话号码: ").strip()
if not name or not phone:
print("错误: 姓名和电话都不能为空")
return
try:
cursor = conn.cursor()
cursor.execute("INSERT INTO contacts (name, phone) VALUES (?, ?)", ( ② , ③ ))
conn.commit()
print(f"成功添加联系人: {name} - {phone}")
except sqlite3.IntegrityError:
print("错误: 该电话号码已存在")
def delete_contact(conn):
phone = input("请输入要删除的电话号码: ").strip()
if not phone:
print("错误: 请输入有效的电话号码")
return
cursor = conn.cursor()
cursor.execute("SELECT name FROM contacts WHERE phone=?", (phone,))
result = cursor. ④
if not result:
print("错误: 未找到该电话号码")
return
confirm = input(f"确定要删除 {result[0]}({phone}) 吗? (y/n): ").lower()
if confirm == 'y':
cursor.execute("DELETE FROM contacts WHERE phone=?", (phone,))
conn.commit()
print("联系人已删除")
else:
print("取消删除")# 主程序
def main():
conn = init_db()
while True:
print("----------------")
show_all_contacts(conn)
print("\n请选择操作:")
print("1. 添加联系人")
print("2. 删除联系人")
print("0. 退出程序")
choice = input("请输入选项(0-2): ").strip()
if choice == "1":
add_contact(conn)
elif choice == "2":
delete_contact(conn)
elif choice == "0":
print("\n感谢使用电话簿管理系统,再见!")
conn.close()
break
else:
print("无效输入,请重新选择!")
if __name__ == "__main__":
main()暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?