前言
例如:随着科技的不断发展,很多人都开启了学习python,本文就介绍了学生信息管理系统
一、使用步骤
代码如下(示例):
首先创建menu.py文件:
def show_menu():
print('+--------------------------------+')
print('| 1) 添加学生信息 |')
print('| 2) 查看所有学生信息 |')
print('| 3) 修改学生的成绩 |')
print('| 4) 删除学生信息 |')
print('| 5) 按成绩从高至低打印学生信息 |')
print('| 6) 按成绩从低至高打印学生信息 |')
print('| 7) 按年龄从大到小打印学生信息 |')
print('| 8) 按年龄从小到大打印学生信息 |')
print('| 9) 保存信息到文件(si.txt) |')
print('| 10)从文件中读取数据(si.txt) |')
print('| q) 退出 |')
print('+--------------------------------+')
创建一个file.py文件
def save_file(all_info):
f=open('si.txt','w')
for i in all_info:
f.write('|%s|%s|%s|\n' % (i['name'].center(20),str(i['age']).center(6),str(i['score']).center(6)))
f.close()
def read_file():
f=open('si.txt','r')
while True:
s=f.readline()
if s=='':
break
print(s)
f.close()
创建main.py文件
from menu import *
from stu_info import *
from sorted import *
from file import *
all_info=[]
while True:
show_menu()
num=input('请选择:')
if num=='1':
all_info=add_stu_info(all_info)
elif num=='2':
show_stu_info(all_info)
elif num=='3':
chang_stu_info(all_info)
elif num=='4':
del_stu_info(all_info)
elif num=='5':
score_high2low(all_info)
elif num=='6':
score_low2high(all_info)
elif num=='7':
age_high2low(all_info)
elif num=='8':
age_low2high(all_info)
elif num=='9':
save_file(all_info)
elif num=='10':
read_file()
elif num == 'q':
break
创建一个student.py文件
#存储学生信息name age score id
class StudentModel:
def __init__(self,name="",age=0,score=0,id=1):
self.name=name
self.age=age
self.score=score
self.id=id
class StudentController:
#公用的变量--类变量
stu_id=1
def __init__(self):
self.__stu_list=[]
@classmethod
def __generate_id(cls,stu):
stu.id=cls.stu_id
#每插入一个学生增加1
cls.stu_id+=1
def insert_student(self):
name=input('name:')
age=int(input('age:'))
score=int(input('score:'))
id=int(input('id:'))
#得到一个学生
stu=StudentModel(name=name,age=age,score=score,id=id)
StudentController.__generate_id(stu)
#添加学生
self.__stu_list.append(stu)
print(self.__stu_list)
self.show_student()
def show_student(self):
for item in self.__stu_list:
print('ID:%d-name:%s-age:%d-score:%d'%(item.id,item.name,item.age,item.score))
def delete_student(self):
name = input('delete name:')
for item in self.__stu_list:
if item.name==name:
self.__stu_list.remove(item)
print('delete success')
break
self.show_student()
def change_student(self):
#获取索引 lst.index('xxx')
name=input('change name:')
for item in self.__stu_list:
if item.name==name:
score=int(input('change score:'))
item.score=score
self.show_student()
def sort_student(self):
for i in range(len(self.__stu_list)-1):
for j in range(len(self.__stu_list)-i-1):
if self.__stu_list[j].score>self.__stu_list[j+1].score:
self.__stu_list[j],self.__stu_list[j+1]=self.__stu_list[j+1],self.__stu_list[j]
self.show_student()
class StudentView:
def __init__(self):
self.controller=StudentController()
# 私有方法
def __display_menu(self):
print("""
1) 添加学生信息
2) 显示学生信息
3) 删除学生信息
4) 修改学生成绩
5) 学生成绩升序排序
""")
def __select_menu(self):
cmd=input('请输入选项:')
if cmd == '1':
self.controller.insert_student()
elif cmd == '2':
self.controller.show_student()
elif cmd == '3':
self.controller.delete_student()
elif cmd == '4':
self.controller.change_student()
elif cmd == '5':
self.controller.sort_student()
else:
print('请输入正确选项')
def main(self):
while True:
self.__display_menu()
#选择功能
self.__select_menu()
stu=StudentView()
stu.main()
创建score.py文件
def score_high2low(all_info):
res=sorted(all_info,key=lambda all_info:all_info['score'],reverse=True)
print('按成绩从高至低打印学生信息:')
for n in res:
print('|%s|%s|%s|' % (n['name'].center(20),str(n['age']).center(6),str(n['score']).center(6)))
def score_low2high(all_info):
res=sorted(all_info,key=lambda all_info:all_info['score'])
print('按成绩从低至高打印学生信息:')
for n in res:
print('|%s|%s|%s|' % (n['name'].center(20),str(n['age']).center(6),str(n['score']).center(6)))
def age_high2low(all_info):
res=sorted(all_info,key=lambda all_info:all_info['age'],reverse=True)
print('按年龄从高至低打印学生信息:')
for n in res:
print('|%s|%s|%s|' % (n['name'].center(20),str(n['age']).center(6),str(n['score']).center(6)))
def age_low2high(all_info):
res=sorted(all_info,key=lambda all_info:all_info['age'])
print('按年龄从低至高打印学生信息:')
for n in res:
print('|%s|%s|%s|' % (n['name'].center(20),str(n['age']).center(6),str(n['score']).center(6)))
创建stu.py
def add_stu_info(all_info):
while True:
name = input('请输入学生姓名:')
if not name:
break
age = int(input('请输入学生年龄:'))
score = int(input('请输入学生成绩:'))
all_info += [{'name': name, 'age': age, 'score': score}]
return all_info
def show_stu_info(all_info):
for i in all_info:
# print(i)
print('|%s|%s|%s|' % (i['name'].center(20), str(i['age']).center(6), str(i['score']).center(6)))
def chang_stu_info(all_info):
flag = 0
name = input('请输入要修改信息的学生姓名:')
for j in all_info:
if j['name'] == name:
flag = 1
print('****系统找到该学生的信息****')
age = int(input('请输入学生年龄:'))
score = int(input('请输入学生成绩:'))
j['age'] = age
j['score'] = score
print('修改后的学生信息是:',
'|%s|%s|%s|' % (j['name'].center(20), str(j['age']).center(6), str(j['score']).center(6)))
if flag == 0:
print('系统没有', name, '的学生信息,无法修改')
def del_stu_info(all_info):
flag = 0
count = 0
name = input('请输入学生姓名:')
for k in all_info:
if k['name'] == name:
del all_info[count]
flag = 1
print('学生', name, '的信息已经删除')
count += 1
if flag == 0:
print('系统没有', name, '的学生信息,不需要删除')
把以上代码放在一个文件夹,运行代码
总结
心得体会
我认为学生管理系统,可以帮助学校和教师更好地管理学生信息和学习进度。使用Python来开发学生管理系统是一个很好的选择,因为Python是一种简单易学的编程语言,而且具有丰富的库和框架,可以帮助我们快速开发出功能强大的系统。在开发学生管理系统的过程中,我学会了如何设计数据库模型、编写API接口、实现用户权限管理等技能。这些技能不仅可以帮助我更好地理解软件开发的流程,还可以让我在未来的项目中更加熟练地应用。
通过学生管理系统的开发,我也更加深入地了解了学生管理的重要性,以及如何通过科学的方法来提高学生的学习效果。我相信这些经验和知识对我未来的学习和工作都会有很大的帮助。总的来说,开发学生管理系统是一次很有意义的经历,我会继续努力学习,不断提升自己的技能。