1.实现一个基于面向对象思想的、具有添加、查看、删除、修改、查找、保存数据功能的通讯录程序。
2.联系人信息包括姓名、性别、手机号。
3.设计一个Friend类,该类中包括__init__( )、welcome( )、add_friend( )、show_friend( )、del_friend( )、modify_friend( )、find_friend( )、save_to_file( )、recover_data( )共9个方法。
4.数据保存到文件“backup.data”中,程序运行时自动从文件恢复数据,若没有数据则捕获异常,新建一个空白文件。
参考下这个,.自己修改下
#-*- coding:utf-8 -*-
import json
class System():
def __init__(self):
self.data = []
self.load()
while True:
s = self.menu()
if s=="1":
self.inquire()
elif s=="2":
self.add()
elif s=="3":
self.delete()
elif s=="4":
self.revise()
elif s=="5":
self.save()
break
def load(self):
try:
with open("data.txt","r") as f:
d = f.read()
self.data = json.loads(d)
except Exception:
self.data = []
def save(self):
with open("data.txt","w") as f:
f.write(json.dumps(self.data))
def menu(self):
print("********** 学生信息管理 *************")
print("\t1.查询")
print("\t2.添加")
print("\t3.删除")
print("\t4.修改")
print("\t5.保存并退出")
print("***********************************")
return input("请输入1-5选择功能并按回车:")
def inputDsta(self):
return {
"学号": input("输入学号:"),
"姓名": input("输入姓名:"),
"性别": input("输入性别:"),
"年龄": input("输入年龄:"),
"电话": input("输入电话:")
}
def inputID(self,t):
while True:
try:
i = int(input(t))-1
if 0 <= i < len(self.data):
return i
else:
print("输入id超出范围,请重新输入。")
except ValueError:
print("输入错误,请重新输入。")
def inquire(self):
print("id\t学号\t姓名\t性别\t年龄\t电话")
for i,d in enumerate(self.data):
print(f"{i+1}\t{d['学号']}\t{d['姓名']}\t{d['性别']}\t{d['年龄']}\t{d['电话']}")
def add(self):
self.data.append(self.inputDsta())
def delete(self):
i = self.inputID("请输入要删除信息的id:")
del self.data[i]
print(f"id为{i+1}的信息已删除")
def revise(self):
i = self.inputID("请输入要修改信息的id:")
self.data[i] = self.inputDsta()
sys = System()