用python程序代码编写一个学生通讯录管理系统。系统具有添加学生、删除学生、修改学生、查询学生、获取所有学生通讯信息及退出系统的功能。
时间: 2024-06-10 14:04:42 浏览: 209
好的,以下是基于Python语言编写的学生通讯录管理系统的代码:
```python
import json # 用于读取和写入数据到 JSON 文件
class Student:
"""
学生类,包含姓名、年龄、手机号等属性
"""
def __init__(self, name, age, phone):
self.name = name
self.age = age
self.phone = phone
class ContactList:
"""
学生通讯录管理系统,包含添加、删除、修改、查询和获取所有学生通讯信息的功能
"""
def __init__(self):
self.students = [] # 用列表存储所有的学生信息
self.file = 'contacts.json' # 用 JSON 文件存储数据
# 如果文件存在,读取数据并初始化学生列表
try:
with open(self.file, 'r') as f:
data = json.load(f)
for student in data:
self.students.append(Student(student['name'], student['age'], student['phone']))
except FileNotFoundError:
pass
def add_student(self, name, age, phone):
"""
添加一个学生到通讯录中
"""
self.students.append(Student(name, age, phone))
self._save_data()
def delete_student(self, name):
"""
从通讯录中删除一个指定名称的学生
"""
self.students = [s for s in self.students if s.name != name]
self._save_data()
def update_student(self, name, age=None, phone=None):
"""
更新一个学生的年龄或手机号信息
"""
for student in self.students:
if student.name == name:
if age != None:
student.age = age
if phone != None:
student.phone = phone
self._save_data()
def search_student(self, name):
"""
根据名称查找一个学生的信息
"""
for student in self.students:
if student.name == name:
return (student.name, student.age, student.phone)
return None
def get_all_students(self):
"""
返回所有学生的信息
"""
return [(student.name, student.age, student.phone) for student in self.students]
def _save_data(self):
"""
保存数据到 JSON 文件中
"""
with open(self.file, 'w') as f:
data = [{'name': student.name, 'age': student.age, 'phone': student.phone} for student in self.students]
json.dump(data, f)
if __name__ == '__main__':
# 示例程序:循环等待用户输入指令
contact_list = ContactList()
while True:
print('请输入指令(add/delete/update/search/getall/quit):')
command = input()
if command == 'add':
print('请输入学生姓名:')
name = input()
print('请输入学生年龄:')
age = int(input())
print('请输入学生手机号码:')
phone = input()
contact_list.add_student(name, age, phone)
print('添加成功!')
elif command == 'delete':
print('请输入要删除的学生姓名:')
name = input()
contact_list.delete_student(name)
print('删除成功!')
elif command == 'update':
print('请输入要更新信息的学生姓名:')
name = input()
print('请输入修改后的学生年龄(不修改请输入空):')
age = input()
if age == '':
age = None
else:
age = int(age)
print('请输入修改后的学生手机号(不修改请输入空):')
phone = input()
if phone == '':
phone = None
contact_list.update_student(name, age, phone)
print('更新成功!')
elif command == 'search':
print('请输入要查询信息的学生姓名:')
name = input()
result = contact_list.search_student(name)
if result:
print('姓名:{},年龄:{},手机号码:{}'.format(result[0], result[1], result[2]))
else:
print('未找到该学生!')
elif command == 'getall':
student_list = contact_list.get_all_students()
if student_list:
for student in student_list:
print('姓名:{},年龄:{},手机号码:{}'.format(student[0], student[1], student[2]))
else:
print('通讯录为空!')
elif command == 'quit':
break
else:
print('无效指令,请重新输入!')
```
该程序使用了面向对象的编程思想,定义了学生类和学生通讯录类,其中学生通讯录类包含了添加、删除、修改、查询和获取所有学生通讯信息的功能。数据存储使用了 JSON 文件格式,保存在程序运行的同目录下的 contacts.json 文件中。用户可以通过在命令行中输入指令来操作学生通讯录,例如添加学生、删除学生等。在示例程序中,程序运行后会等待用户输入指令,并给出相应的操作提示信息。
阅读全文