下面我将为大家详细讲解 “Python学生管理系统代码实现”的完整攻略。
一、需求分析
首先,我们要明确学生管理系统需要实现的功能,一般包括以下几个方面:
- 学生信息录入;
- 学生查询,包括按姓名、学号、班级等条件查询;
- 学生信息修改;
- 学生信息删除。
二、代码实现
经过需求分析,我们可以开始尝试编写学生管理系统的代码了。下面是具体的代码实现步骤:
1. 创建学生类
学生管理系统的核心就是学生类,首先我们需要先创建一个学生类,包括学号、姓名、班级、性别等基本属性,并实现一些基本的方法,比如__init__()
,__str__()
,get_info()
等。
class Student:
def __init__(self, id, name, gender, grade, major, tel):
self.id = id
self.name = name
self.gender = gender
self.grade = grade
self.major = major
self.tel = tel
def __str__(self):
return f'{self.id}\t{self.name}\t{self.gender}\t{self.grade}\t{self.major}\t{self.tel}'
def get_info(self):
return self.__str__()
2. 创建学生管理系统类
创建完学生类后,就需要开始构建学生管理系统类了。学生管理系统需要实现的功能比较多,因此我们需要先分析一下需要哪些方法来实现这些功能。以下是学生管理系统类的基本实现代码:
class StudentManagerSystem:
def __init__(self):
self.students = []
def run(self):
while True:
self.show_menu()
option = input("请选择要执行的操作:")
if option == "1":
self.add_student()
elif option == "2":
self.search_student()
elif option == "3":
self.modify_student()
elif option == "4":
self.delete_student()
elif option == "5":
self.show_all_students()
elif option == "6":
self.save_to_file()
elif option == "7":
self.read_from_file()
elif option == "0":
print("谢谢使用!")
break
else:
print("输入有误,请重新输入!")
def show_menu(self):
print("请输入要执行的操作:")
print("1. 添加学生信息")
print("2. 查找学生信息")
print("3. 修改学生信息")
print("4. 删除学生信息")
print("5. 显示所有学生信息")
print("6. 保存到文件")
print("7. 从文件读取")
print("0. 退出系统")
def add_student(self):
id = input("请输入学号:")
name = input("请输入姓名:")
gender = input("请输入性别:")
grade = input("请输入年级:")
major = input("请输入专业:")
tel = input("请输入手机号码:")
stu = Student(id, name, gender, grade, major, tel)
self.students.append(stu)
print(f'{name}学生信息已添加成功!')
def search_student(self):
while True:
print("请输入要查询的条件:")
print("1. 按姓名查询")
print("2. 按学号查询")
print("3. 按班级查询")
print("0. 返回上一级")
option = input("请选择要查询的条件:")
if option == "1":
name = input("请输入要查询的姓名:")
stu_list = filter(lambda student: student.name == name, self.students)
self.print_students(stu_list)
elif option == "2":
id = input("请输入要查询的学号:")
stu_list = filter(lambda student: student.id == id, self.students)
self.print_students(stu_list)
elif option == "3":
grade = input("请输入要查询的班级:")
stu_list = filter(lambda student: student.grade == grade, self.students)
self.print_students(stu_list)
elif option == "0":
break
else:
print("输入有误,请重新输入!")
def modify_student(self):
id = input("请输入要修改的学生编号:")
for stu in self.students:
if stu.id == id:
name = input(f"请输入{name}修改后的姓名:")
gender = input(f"请输入{name}修改后的性别:")
grade = input(f"请输入{name}修改后的年级:")
major = input(f"请输入{name}修改后的专业:")
tel = input(f"请输入{name}修改后的手机号码:")
stu.name = name if name else stu.name
stu.gender = gender if gender else stu.gender
stu.grade = grade if grade else stu.grade
stu.major = major if major else stu.major
stu.tel = tel if tel else stu.tel
print(f"{name}学生信息已修改成功!")
break
else:
print(f"学号为{id}的学生不存在!")
def delete_student(self):
id = input("请输入要删除的学生编号:")
for i,stu in enumerate(self.students):
if stu.id == id:
self.students.pop(i)
print(f'学号为{id}的学生信息已删除!')
break
else:
print(f"学号为{id}的学生不存在!")
def show_all_students(self):
self.print_students(self.students)
def print_students(self, students):
if not students:
print("没有找到符合要求的学生!")
return
print("学号\t姓名\t性别\t年级\t\t专业\t\t\t手机号")
for student in students:
print(student.get_info())
def save_to_file(self):
with open('students.txt', 'w') as f:
for stu in self.students:
f.write(f"{stu.id},{stu.name},{stu.gender},{stu.grade},{stu.major},{stu.tel}\n")
print("学生信息已保存到文件中!")
def read_from_file(self):
self.students.clear()
with open('students.txt') as f:
for line in f.readlines():
id, name, gender, grade, major, tel = line.strip().split(",")
stu = Student(id, name, gender, grade, major, tel)
self.students.append(stu)
print("学生信息已从文件中读取!")
三、示例说明
下面举两个例子说明如何使用学生管理系统:
示例一:添加一个学生信息
def test_add_student():
sys = StudentManagerSystem()
sys.add_student()
sys.show_all_students()
执行这个测试函数后,控制台会输出以下语句:
请输入学号:001
请输入姓名:张三
请输入性别:男
请输入年级:大二
请输入专业:计算机
请输入手机号码:13888888888
张三学生信息已添加成功!
学号 姓名 性别 年级 专业 手机号
001 张三 男 大二 计算机 13888888888
说明学生信息已成功添加至学生管理系统中。
示例二:保存到文件并从文件中读取
在学生管理系统添加了多个学生信息后,我们可以将学生信息保存到文件中,方便下次使用时直接从文件中读取。下面是保存到文件并从文件中读取的示例代码:
def test_save_to_file_and_read():
sys = StudentManagerSystem()
sys.add_student()
sys.add_student()
sys.add_student()
sys.save_to_file()
sys2 = StudentManagerSystem()
sys2.read_from_file()
sys2.show_all_students()
在执行这个测试函数之前,我们需要确保在项目根目录下已经创建了一个students.txt文件,然后运行测试函数,控制台输出以下内容:
请输入学号:001
请输入姓名:张三
请输入性别:男
请输入年级:大二
请输入专业:计算机
请输入手机号码:13888888888
张三学生信息已添加成功!
请输入学号:002
请输入姓名:李四
请输入性别:女
请输入年级:大一
请输入专业:外语
请输入手机号码:13999999999
李四学生信息已添加成功!
请输入学号:003
请输入姓名:王五
请输入性别:男
请输入年级:大三
请输入专业:物理
请输入手机号码:13333333333
王五学生信息已添加成功!
学生信息已保存到文件中!
学号 姓名 性别 年级 专业 手机号
001 张三 男 大二 计算机 13888888888
002 李四 女 大一 外语 13999999999
003 王五 男 大三 物理 13333333333
从控制台输出可以看到,学生信息已经成功保存至文件中,并且通过read_from_file()
方法可以从文件中读取到学生信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python学生管理系统代码实现 - Python技术站