编写一个同学录包括学生信息的输入、更新、修改、删除、保存 并 实现学生信息的查询(按名字查询、学号查询、地区查询)
时间: 2023-08-10 10:02:56 浏览: 34
好的,这是一个比较复杂的问题,需要用到 Python 编写代码,以下是代码实现:
```python
import json
class Student:
def __init__(self, name, id, age, gender, hometown):
self.name = name
self.id = id
self.age = age
self.gender = gender
self.hometown = hometown
class StudentRecord:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def remove_student(self, id):
for student in self.students:
if student.id == id:
self.students.remove(student)
return True
return False
def update_student(self, id, name=None, age=None, gender=None, hometown=None):
for student in self.students:
if student.id == id:
if name:
student.name = name
if age:
student.age = age
if gender:
student.gender = gender
if hometown:
student.hometown = hometown
return True
return False
def save_to_file(self, filename):
with open(filename, 'w') as f:
student_list = []
for student in self.students:
student_dict = {
'name': student.name,
'id': student.id,
'age': student.age,
'gender': student.gender,
'hometown': student.hometown
}
student_list.append(student_dict)
json.dump(student_list, f)
def load_from_file(self, filename):
with open(filename, 'r') as f:
student_list = json.load(f)
for student_dict in student_list:
student = Student(student_dict['name'], student_dict['id'], student_dict['age'], student_dict['gender'], student_dict['hometown'])
self.add_student(student)
def search_by_name(self, name):
result = []
for student in self.students:
if student.name == name:
result.append(student)
return result
def search_by_id(self, id):
for student in self.students:
if student.id == id:
return student
return None
def search_by_hometown(self, hometown):
result = []
for student in self.students:
if student.hometown == hometown:
result.append(student)
return result
# 使用示例:
record = StudentRecord()
record.load_from_file('students.json')
# 添加学生
student1 = Student('Tom', '001', 18, '男', '北京')
record.add_student(student1)
# 更新学生信息
record.update_student('001', age=19)
# 删除学生
record.remove_student('001')
# 保存到文件
record.save_to_file('students.json')
# 按名字查询
result = record.search_by_name('Tom')
for student in result:
print(student.name, student.id, student.age, student.gender, student.hometown)
# 按学号查询
student = record.search_by_id('001')
if student:
print(student.name, student.id, student.age, student.gender, student.hometown)
# 按地区查询
result = record.search_by_hometown('北京')
for student in result:
print(student.name, student.id, student.age, student.gender, student.hometown)
```
上述代码实现了一个学生信息管理系统,可以实现学生信息的输入、更新、修改、删除、保存,以及按名字、学号、地区查询学生信息。具体使用方法可以参考代码中的注释。