设计一个通讯录管理系统 实现文件的新建,保存及通讯录的增删查改功能 主要功能模块算法设计,并描述算法思想(可使用算法流程图),给出主要实现语句。给出此程序的完整语句对程序添加必要注释。
时间: 2023-12-03 20:47:23 浏览: 77
算法思想:
1. 新建文件:通过输入文件名和路径来创建一个新的空文件,并在程序中打开该文件。
2. 保存文件:将当前通讯录内容覆盖写入到已打开的文件中。
3. 增加联系人:输入联系人信息,将其添加到通讯录中。
4. 删除联系人:输入要删除的联系人姓名,程序查找该联系人并删除。
5. 查找联系人:输入要查找的联系人姓名,程序查找并输出该联系人信息。
6. 修改联系人:输入要修改的联系人姓名,程序查找并输出该联系人信息,再根据用户输入的新信息修改联系人信息。
主要实现语句:
1. 新建文件:
```python
def create_file(file_path):
f = open(file_path, 'w')
f.close()
return True
```
2. 保存文件:
```python
def save_file(file_path, contacts):
with open(file_path, 'w') as f:
for contact in contacts:
f.write(contact+'\n')
return True
```
3. 增加联系人:
```python
def add_contact(contacts):
name = input('请输入姓名:')
phone = input('请输入电话:')
email = input('请输入邮箱:')
contacts.append(name+','+phone+','+email)
return True
```
4. 删除联系人:
```python
def delete_contact(contacts):
name = input('请输入要删除的联系人姓名:')
for contact in contacts:
if name in contact:
contacts.remove(contact)
return True
return False
```
5. 查找联系人:
```python
def search_contact(contacts):
name = input('请输入要查找的联系人姓名:')
for contact in contacts:
if name in contact:
print(contact)
return True
return False
```
6. 修改联系人:
```python
def modify_contact(contacts):
name = input('请输入要修改的联系人姓名:')
for i, contact in enumerate(contacts):
if name in contact:
print(contact)
phone = input('请输入新电话:')
email = input('请输入新邮箱:')
contacts[i] = name+','+phone+','+email
return True
return False
```
完整程序:
```python
# 定义通讯录管理系统类
class ContactManager:
def __init__(self):
self.file_path = None
self.contacts = []
# 加载文件
def load_file(self, file_path):
self.file_path = file_path
with open(file_path, 'r') as f:
self.contacts = f.read().splitlines()
# 新建文件
def create_file(self, file_path):
f = open(file_path, 'w')
f.close()
return True
# 保存文件
def save_file(self):
with open(self.file_path, 'w') as f:
for contact in self.contacts:
f.write(contact+'\n')
return True
# 增加联系人
def add_contact(self):
name = input('请输入姓名:')
phone = input('请输入电话:')
email = input('请输入邮箱:')
self.contacts.append(name+','+phone+','+email)
return True
# 删除联系人
def delete_contact(self):
name = input('请输入要删除的联系人姓名:')
for contact in self.contacts:
if name in contact:
self.contacts.remove(contact)
return True
return False
# 查找联系人
def search_contact(self):
name = input('请输入要查找的联系人姓名:')
for contact in self.contacts:
if name in contact:
print(contact)
return True
return False
# 修改联系人
def modify_contact(self):
name = input('请输入要修改的联系人姓名:')
for i, contact in enumerate(self.contacts):
if name in contact:
print(contact)
phone = input('请输入新电话:')
email = input('请输入新邮箱:')
self.contacts[i] = name+','+phone+','+email
return True
return False
# 主程序
if __name__ == '__main__':
cm = ContactManager()
file_path = input('请输入文件路径:')
try:
cm.load_file(file_path)
except FileNotFoundError:
print('文件不存在,是否创建新文件?(y/n)')
choice = input()
if choice == 'y':
cm.create_file(file_path)
else:
exit()
while True:
print('请选择操作:\n1.增加联系人\n2.删除联系人\n3.查找联系人\n4.修改联系人\n5.保存文件\n6.退出程序')
choice = input()
if choice == '1':
cm.add_contact()
elif choice == '2':
if not cm.delete_contact():
print('联系人不存在')
elif choice == '3':
if not cm.search_contact():
print('联系人不存在')
elif choice == '4':
if not cm.modify_contact():
print('联系人不存在')
elif choice == '5':
cm.save_file()
elif choice == '6':
break
```
注释:
1. ContactManager 类实现了通讯录管理的各个功能。
2. 主程序中首先加载文件,如果文件不存在则提示是否创建新文件,并根据用户选择决定是否创建。
3. 进入循环,根据用户的选择执行相应的操作,直到用户选择退出程序。
阅读全文