Python程序设计(第二版)第六章文件操作写一个设计一个学生类,完成管理系统的增加、删除添加、删除、修改、查询及查看学生信息、信息存储及退出系统等功能
时间: 2023-08-10 15:05:16 浏览: 59
以下是一个简单的学生管理系统的示例代码,包含了增加、删除、修改、查询、查看学生信息、信息存储和退出系统等功能。这里使用文件存储学生信息,每个学生信息占用一行,字段之间使用逗号分隔。
```python
# 定义学生类
class Student:
def __init__(self, id, name, age, gender):
self.id = id
self.name = name
self.age = age
self.gender = gender
# 定义学生管理系统类
class StudentManagementSystem:
def __init__(self, filename):
self.filename = filename
self.students = []
# 从文件中读取学生信息
def load_students(self):
with open(self.filename, 'r') as f:
for line in f:
fields = line.strip().split(',')
student = Student(fields[0], fields[1], int(fields[2]), fields[3])
self.students.append(student)
# 保存学生信息到文件
def save_students(self):
with open(self.filename, 'w') as f:
for student in self.students:
f.write(','.join([student.id, student.name, str(student.age), student.gender]) + '\n')
# 增加学生
def add_student(self, student):
self.students.append(student)
self.save_students()
# 删除学生
def remove_student(self, id):
for student in self.students:
if student.id == id:
self.students.remove(student)
self.save_students()
return True
return False
# 修改学生信息
def modify_student(self, id, name, age, gender):
for student in self.students:
if student.id == id:
student.name = name
student.age = age
student.gender = gender
self.save_students()
return True
return False
# 查询学生信息
def query_student(self, id):
for student in self.students:
if student.id == id:
return student
return None
# 查看所有学生信息
def display_students(self):
for student in self.students:
print(student.id, student.name, student.age, student.gender)
# 测试代码
if __name__ == '__main__':
filename = 'students.txt'
sms = StudentManagementSystem(filename)
sms.load_students()
while True:
op = input('请选择操作(add/remove/modify/query/display/save/exit): ')
if op == 'add':
id = input('请输入学号: ')
name = input('请输入姓名: ')
age = int(input('请输入年龄: '))
gender = input('请输入性别: ')
student = Student(id, name, age, gender)
sms.add_student(student)
elif op == 'remove':
id = input('请输入要删除的学号: ')
if sms.remove_student(id):
print('删除成功')
else:
print('学号不存在')
elif op == 'modify':
id = input('请输入要修改的学号: ')
name = input('请输入姓名: ')
age = int(input('请输入年龄: '))
gender = input('请输入性别: ')
if sms.modify_student(id, name, age, gender):
print('修改成功')
else:
print('学号不存在')
elif op == 'query':
id = input('请输入要查询的学号: ')
student = sms.query_student(id)
if student:
print(student.id, student.name, student.age, student.gender)
else:
print('学号不存在')
elif op == 'display':
sms.display_students()
elif op == 'save':
sms.save_students()
elif op == 'exit':
break
else:
print('无效操作')
```
注意,这里没有进行输入验证,实际应用中需要对输入进行检查,确保输入的合法性。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)