实现电话簿管理程序,Mytel类描述单个电话号码,Telmanager类负责管理电话号码,把增、删、改、查功能封装到该类中。要求电话号码能从磁盘读写
时间: 2024-05-07 19:19:37 浏览: 188
C语言实现电话簿管理系统
5星 · 资源好评率100%
下面是一个简单的电话簿管理程序的实现,包含Mytel类和Telmanager类。其中,Mytel类描述单个电话号码,包含姓名和电话号码两个成员变量,以及读写文件的方法。Telmanager类负责管理电话号码,包含增加、删除、修改、查找等功能。
```python
import os
class Mytel:
def __init__(self, name, number):
self.name = name
self.number = number
def __str__(self):
return f'{self.name}: {self.number}'
def save(self):
with open('telbook.txt', 'a') as f:
f.write(f'{self.name},{self.number}\n')
@staticmethod
def load():
telbook = []
if os.path.exists('telbook.txt'):
with open('telbook.txt', 'r') as f:
for line in f:
name, number = line.strip().split(',')
telbook.append(Mytel(name, number))
return telbook
class Telmanager:
def __init__(self):
self.telbook = Mytel.load()
def add(self, name, number):
tel = Mytel(name, number)
self.telbook.append(tel)
tel.save()
def remove(self, name):
self.telbook = [t for t in self.telbook if t.name != name]
self.save()
def modify(self, name, number):
for tel in self.telbook:
if tel.name == name:
tel.number = number
self.save()
break
def search(self, name):
for tel in self.telbook:
if tel.name == name:
return tel
return None
def save(self):
with open('telbook.txt', 'w') as f:
for tel in self.telbook:
f.write(f'{tel.name},{tel.number}\n')
```
使用示例:
```python
tm = Telmanager()
tm.add('Tom', '123456')
tm.add('Jerry', '654321')
tel = tm.search('Tom')
if tel:
print(tel)
else:
print('Not found')
tm.modify('Tom', '111111')
tm.remove('Jerry')
```
上述代码中,Telmanager类的初始化函数会自动从磁盘中加载电话簿。add、remove、modify、search等方法会修改电话簿,并将修改后的结果保存到磁盘中。Mytel类的save、load方法用于读写文件。在Telmanager类的方法调用之后,可以在电话簿中查找、修改、删除或添加电话号码。
阅读全文