使用Python代码实现修改功能如下:1.实现输入给定学生学号,修改指定学生部分或全部信息。2.实现批量修改3.记录修改过程,如修改时间,修改前数据、修改后的数据。删除功能如下:1.实现按照姓名、学号删除指定学生信息。2.实现按照学号信息删除全班同学信息。3.实现输入专业和班级信息,根据学号删除本班全部同学信息。 查询功能如下:1.实现输入班级,查询班级全部同学信息。2.实现按学号查询指定同学全部信息。3.实现按学号查询该学院全部同学信息
时间: 2024-03-22 13:37:29 浏览: 18
好的,下面是一个简单的学生信息管理系统的Python代码,实现了修改和删除功能。查询功能需要根据具体需求编写。
```python
import os
import time
# 定义学生信息类
class Student:
def __init__(self, id, name, age, gender, major, cls):
self.id = id
self.name = name
self.age = age
self.gender = gender
self.major = major
self.cls = cls
def __str__(self):
return f"ID:{self.id} Name:{self.name} Age:{self.age} Gender:{self.gender} Major:{self.major} Class:{self.cls}"
# 定义文件名和文件路径
filename = "students.txt"
filedir = os.path.dirname(os.path.abspath(__file__))
filepath = os.path.join(filedir, filename)
# 定义函数:读取学生信息
def read_students():
students = []
if os.path.exists(filepath):
with open(filepath, "r") as f:
lines = f.readlines()
for line in lines:
info = line.strip().split(",")
student = Student(info[0], info[1], info[2], info[3], info[4], info[5])
students.append(student)
return students
# 定义函数:写入学生信息
def write_students(students):
with open(filepath, "w") as f:
for student in students:
f.write(f"{student.id},{student.name},{student.age},{student.gender},{student.major},{student.cls}\n")
# 定义函数:查找学生信息
def find_student(students, id):
for student in students:
if student.id == id:
return student
return None
# 定义函数:删除学生信息
def delete_student(students, id):
for i, student in enumerate(students):
if student.id == id:
del students[i]
return True
return False
# 定义函数:修改学生信息
def modify_student(students, id):
student = find_student(students, id)
if student:
print(f"当前学生信息:{student}")
print("请输入需要修改的信息(不修改请直接回车):")
name = input(f"请输入学生{name}的姓名:") or student.name
age = input(f"请输入学生{name}的年龄:") or student.age
gender = input(f"请输入学生{name}的性别:") or student.gender
major = input(f"请输入学生{name}的专业:") or student.major
cls = input(f"请输入学生{name}的班级:") or student.cls
new_student = Student(id, name, age, gender, major, cls)
students[students.index(student)] = new_student
print(f"学生信息修改成功:{new_student}")
return new_student
else:
print(f"找不到学号为{id}的学生信息")
# 定义函数:批量修改学生信息
def batch_modify():
students = read_students()
if students:
filename = input("请输入学生信息文件名:")
filedir = os.path.dirname(os.path.abspath(__file__))
filepath = os.path.join(filedir, filename)
if os.path.exists(filepath):
with open(filepath, "r") as f:
lines = f.readlines()
for line in lines:
info = line.strip().split(",")
id = info[0]
modify_student(students, id)
write_students(students)
print("批量修改学生信息成功!")
else:
print(f"找不到文件{filename}")
else:
print("学生信息为空!")
# 定义函数:记录修改日志
def log_modify(student, old_data):
now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
with open("log.txt", "a") as f:
f.write(f"{now}\n")
f.write(f"修改前:{old_data}\n")
f.write(f"修改后:{student}\n")
f.write("\n")
# 定义函数:按姓名、学号删除学生信息
def delete_student_info():
students = read_students()
if students:
choice = input("请选择删除方式:1.按姓名 2.按学号 ")
if choice == "1":
name = input("请输入学生姓名:")
for student in students:
if student.name == name:
students.remove(student)
print(f"学生信息删除成功:{student}")
elif choice == "2":
id = input("请输入学生学号:")
if delete_student(students, id):
print(f"学生信息删除成功:{id}")
else:
print(f"找不到学号为{id}的学生信息")
else:
print("无效的选择!")
write_students(students)
else:
print("学生信息为空!")
# 定义函数:按班级删除学生信息
def delete_class_info():
students = read_students()
if students:
major = input("请输入学生所在专业:")
cls = input("请输入学生所在班级:")
count = 0
for student in students:
if student.major == major and student.cls == cls:
students.remove(student)
count += 1
if count > 0:
print(f"共删除{count}位学生信息")
else:
print(f"找不到专业为{major},班级为{cls}的学生信息")
write_students(students)
else:
print("学生信息为空!")
# 主函数
def main():
while True:
print("欢迎使用学生信息管理系统!")
print("1.查看学生信息 2.修改学生信息 3.删除学生信息 4.退出系统")
choice = input("请选择操作:")
if choice == "1":
students = read_students()
if students:
for student in students:
print(student)
else:
print("学生信息为空!")
elif choice == "2":
students = read_students()
if students:
id = input("请输入学生学号:")
student = modify_student(students, id)
if student:
old_data = find_student(read_students(), id)
log_modify(student, old_data)
write_students(students)
else:
print("学生信息为空!")
elif choice == "3":
print("请选择删除方式:1.按姓名、学号删除 2.按班级删除 ")
choice = input()
if choice == "1":
delete_student_info()
elif choice == "2":
delete_class_info()
else:
print("无效的选择!")
elif choice == "4":
print("谢谢使用!")
break
else:
print("无效的选择!")
if __name__ == '__main__':
main()
```
以上代码实现了修改、批量修改和删除功能,并记录了修改日志,查询功能可以根据具体需求编写。