Python实现一个完整学生管理系统
本篇攻略将从以下三个方面分别进行讲解:
- 学生管理系统的功能需求
- 学生管理系统的设计思路以及实现细节
- 学生管理系统代码示例
学生管理系统的功能需求
学生管理系统主要需要实现以下功能:
- 添加学生信息
- 删除学生信息
- 修改学生信息
- 查询学生信息
其中,学生信息需要至少包含以下内容:
- 学号
- 姓名
- 年龄
- 性别
- 成绩
学生管理系统的设计思路以及实现细节
数据存储
数据存储是学生管理系统中非常重要的一环,数据存储方式的选择直接影响到系统的性能以及可维护性。
以下是主流的数据存储方式:
- 文本文件
- 关系型数据库
- 非关系型数据库
在本篇攻略中,我们使用文本文件的方式进行数据存储。
系统设计
根据学生管理系统的功能需求,我们可以将学生信息存储在一个文本文件中。每行代表一个学生信息,使用逗号或其他符号将不同字段的信息分隔开来。
以下是学生信息的示例:
001,张三,18,男,90
002,李四,19,女,85
003,王五,20,男,95
在程序运行时,我们读取文本文件中的内容,并将其转化为列表的形式。每一个元素代表一个学生信息,使用字典存储不同字段的值。
以下是学生信息读取和存储的示例代码:
students = []
def read_file():
with open('students.txt', 'r') as f:
for line in f.readlines():
student_info = line.strip().split(',')
student = {
'id': student_info[0],
'name': student_info[1],
'age': student_info[2],
'gender': student_info[3],
'score': student_info[4]
}
students.append(student)
def write_file():
with open('students.txt', 'w') as f:
for student in students:
student_info = [
student['id'],
student['name'],
student['age'],
student['gender'],
student['score']
]
line = ','.join(student_info) + '\n'
f.write(line)
功能实现
- 添加学生信息
添加学生信息的方法如下:
def add_student():
id = input('请输入学号:')
name = input('请输入姓名:')
age = input('请输入年龄:')
gender = input('请输入性别:')
score = input('请输入成绩:')
student = {
'id': id,
'name': name,
'age': age,
'gender': gender,
'score': score
}
students.append(student)
write_file()
print('添加成功!')
- 删除学生信息
删除学生信息的方法如下:
def remove_student():
id = input('请输入要删除的学生学号:')
for index, student in enumerate(students):
if student['id'] == id:
students.pop(index)
write_file()
print('删除成功!')
- 修改学生信息
修改学生信息的方法如下:
def modify_student():
id = input('请输入要修改的学生学号:')
for student in students:
if student['id'] == id:
print('请选择要修改的信息:')
print('1.姓名 2.年龄 3.性别 4.成绩')
choice = int(input('请选择:'))
if choice == 1:
name = input('请输入新的姓名:')
student['name'] = name
print('修改成功!')
elif choice == 2:
age = input('请输入新的年龄:')
student['age'] = age
print('修改成功!')
elif choice == 3:
gender = input('请输入新的性别:')
student['gender'] = gender
print('修改成功!')
elif choice == 4:
score = input('请输入新的成绩:')
student['score'] = score
print('修改成功!')
write_file()
- 查询学生信息
查询学生信息的方法如下:
def show_student():
id = input('请输入要查询的学生学号:')
for student in students:
if student['id'] == id:
print('学号:', student['id'])
print('姓名:', student['name'])
print('年龄:', student['age'])
print('性别:', student['gender'])
print('成绩:', student['score'])
return
print('未查询到该学生信息!')
学生管理系统代码示例
完整的学生管理系统代码如下:
students = []
def read_file():
with open('students.txt', 'r') as f:
for line in f.readlines():
student_info = line.strip().split(',')
student = {
'id': student_info[0],
'name': student_info[1],
'age': student_info[2],
'gender': student_info[3],
'score': student_info[4]
}
students.append(student)
def write_file():
with open('students.txt', 'w') as f:
for student in students:
student_info = [
student['id'],
student['name'],
student['age'],
student['gender'],
student['score']
]
line = ','.join(student_info) + '\n'
f.write(line)
def add_student():
id = input('请输入学号:')
name = input('请输入姓名:')
age = input('请输入年龄:')
gender = input('请输入性别:')
score = input('请输入成绩:')
student = {
'id': id,
'name': name,
'age': age,
'gender': gender,
'score': score
}
students.append(student)
write_file()
print('添加成功!')
def remove_student():
id = input('请输入要删除的学生学号:')
for index, student in enumerate(students):
if student['id'] == id:
students.pop(index)
write_file()
print('删除成功!')
def modify_student():
id = input('请输入要修改的学生学号:')
for student in students:
if student['id'] == id:
print('请选择要修改的信息:')
print('1.姓名 2.年龄 3.性别 4.成绩')
choice = int(input('请选择:'))
if choice == 1:
name = input('请输入新的姓名:')
student['name'] = name
print('修改成功!')
elif choice == 2:
age = input('请输入新的年龄:')
student['age'] = age
print('修改成功!')
elif choice == 3:
gender = input('请输入新的性别:')
student['gender'] = gender
print('修改成功!')
elif choice == 4:
score = input('请输入新的成绩:')
student['score'] = score
print('修改成功!')
write_file()
def show_student():
id = input('请输入要查询的学生学号:')
for student in students:
if student['id'] == id:
print('学号:', student['id'])
print('姓名:', student['name'])
print('年龄:', student['age'])
print('性别:', student['gender'])
print('成绩:', student['score'])
return
print('未查询到该学生信息!')
def main():
read_file()
while True:
print('1.添加学生信息')
print('2.删除学生信息')
print('3.修改学生信息')
print('4.查询学生信息')
print('5.退出系统')
choice = int(input('请选择功能:'))
if choice == 1:
add_student()
elif choice == 2:
remove_student()
elif choice == 3:
modify_student()
elif choice == 4:
show_student()
elif choice == 5:
break
else:
print('请选择正确的功能!')
if __name__ == '__main__':
main()
上述代码中,我们实现了一个基于文本文件的学生管理系统,您可以在自己的电脑上运行该程序,体验程序的功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现一个完整学生管理系统 - Python技术站