4、使用Python语言开发一个简单的学生管理系统。运用该学生管理系统编辑学生的信息,适时更新学生的资料。例如,新生入校,要在学生管理系统中录入刚入校的学生信息。请实现一个学生管理系统,要求如下。 (1)使用
时间: 2024-05-09 18:15:28 浏览: 19
Python编写,并使用面向对象编程思想。 (2)学生信息包括学号、姓名、性别、年龄、班级、电话号码等。 (3)实现学生信息的增、删、改、查功能。 (4)学生信息存储在文件中,支持读取和保存。
以下是一个简单的学生管理系统的示例代码:
```python
import os
import json
class Student:
def __init__(self, id, name, gender, age, cls, phone):
self.id = id
self.name = name
self.gender = gender
self.age = age
self.cls = cls
self.phone = phone
def to_dict(self):
return {
'id': self.id,
'name': self.name,
'gender': self.gender,
'age': self.age,
'cls': self.cls,
'phone': self.phone
}
class StudentManager:
def __init__(self, data_file):
self.data_file = data_file
self.students = {}
def load(self):
if os.path.exists(self.data_file):
with open(self.data_file, 'r') as f:
data = json.load(f)
for s in data:
student = Student(s['id'], s['name'], s['gender'], s['age'], s['cls'], s['phone'])
self.students[s['id']] = student
def save(self):
data = []
for s in self.students.values():
data.append(s.to_dict())
with open(self.data_file, 'w') as f:
json.dump(data, f)
def add_student(self, student):
self.students[student.id] = student
def remove_student(self, id):
if id in self.students:
del self.students[id]
def update_student(self, student):
if student.id in self.students:
self.students[student.id] = student
def get_student(self, id):
if id in self.students:
return self.students[id]
def get_all_students(self):
return self.students.values()
def print_menu():
print('1. 添加学生')
print('2. 删除学生')
print('3. 修改学生信息')
print('4. 查询学生信息')
print('5. 显示所有学生')
print('6. 退出程序')
def input_student():
id = input('请输入学号: ')
name = input('请输入姓名: ')
gender = input('请输入性别: ')
age = input('请输入年龄: ')
cls = input('请输入班级: ')
phone = input('请输入电话号码: ')
return Student(id, name, gender, age, cls, phone)
def add_student(manager):
student = input_student()
manager.add_student(student)
print('添加成功!')
def remove_student(manager):
id = input('请输入要删除的学生学号: ')
manager.remove_student(id)
print('删除成功!')
def update_student(manager):
id = input('请输入要修改的学生学号: ')
student = manager.get_student(id)
if student:
print('原信息:')
print('学号:', student.id)
print('姓名:', student.name)
print('性别:', student.gender)
print('年龄:', student.age)
print('班级:', student.cls)
print('电话号码:', student.phone)
new_student = input_student()
new_student.id = student.id
manager.update_student(new_student)
print('修改成功!')
else:
print('学生不存在!')
def find_student(manager):
id = input('请输入要查询的学生学号: ')
student = manager.get_student(id)
if student:
print('学号:', student.id)
print('姓名:', student.name)
print('性别:', student.gender)
print('年龄:', student.age)
print('班级:', student.cls)
print('电话号码:', student.phone)
else:
print('学生不存在!')
def list_students(manager):
students = manager.get_all_students()
for s in students:
print('学号:', s.id)
print('姓名:', s.name)
print('性别:', s.gender)
print('年龄:', s.age)
print('班级:', s.cls)
print('电话号码:', s.phone)
def main():
manager = StudentManager('students.json')
manager.load()
while True:
print_menu()
choice = input('请输入操作编号:')
if choice == '1':
add_student(manager)
elif choice == '2':
remove_student(manager)
elif choice == '3':
update_student(manager)
elif choice == '4':
find_student(manager)
elif choice == '5':
list_students(manager)
elif choice == '6':
manager.save()
print('已退出程序!')
break
else:
print('输入有误,请重新输入!')
if __name__ == '__main__':
main()
```
该程序将学生信息存储在一个 JSON 文件中,使用 `json` 模块进行读写。程序通过一个 `StudentManager` 类来管理学生信息,包括添加、删除、修改、查询和显示所有学生信息。在运行程序时,将提示用户输入操作编号,根据用户的选择执行相应的操作。程序退出时,将自动保存学生信息到文件中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)