学生成绩管理系统python课程设计,python课程设计教务管理系统
用Python编写学生成绩分析系统
学生的数量我们并不知道有多少,有可能是1个学生,但也有可能是100000个学生
但是我们能确定的是学生的学号,因为每个学生的学号都是不一样的(除非出现意外情况)
那么我们可以以学生的学号来排序,比如000是小明,那么我们把000放在list的第一位,把小明这个人的名字放在学生名的list的第一位,那么他的所有的成绩分数什么的都会在每个list的第一位
现在我们可以开始做第一步,寻找学生。 寻找学生我们需要一个parameter,一般来说会给学号或者是名字,那么我们可以用linear search从list的头开始寻找到尾。如果没有到达list的尾部而且还寻找到了学生,那么return 他在这个list的位置,如果到达了list的底部,return一个message告诉对方系统里没有这个学生
计算学生总成绩:我们已经知道了这个学生名字或者学号在各个list的位置了,那么这个学生所对应的成绩分数都在各个list的相同的位置,那么我们只用上个方法return的数字去寻找各个考试的分数,然后根据百分比相乘后加起来,这就是这个学生的总成绩
排名:这个要根据什么来排,如果你是根据总成绩来排的话,你需要去比较所有的分数。这个就需要sorting search,至于方法有很多,应该有六种,具体的我记不清楚,不过你可以去网上找找
用字母代表成绩:这个也很简单,既然你都知道分数了,那么就设置一个区域,比如90-100是优秀,那么把所有在90-100的分数全部变成A然后存入list里面就行了(记得要按照顺序!!)
班级平均分:emmmm这个是咋算来着的。。。。应该是把所有学生在某一次作业或者考试的成绩全部加起来后除以全部人数吧。。那么你自己按照一个顺序,把所有的分数加起来除以所有的人数后再存入list里面就行了
python超详细实现完整学生成绩管理系统
读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Python实现一个完整版学生成绩管理系统,大家可以在过程中查缺补漏,提升水平
一个带有登录界面具有增减改查功能的学生成绩管理系统(面向对象思想,利用tkinter库进行制作,利用.txt文件进行存储数据)
仅供学习参考,最好还是自己多敲多练习(实践是检验真理的唯一标准)
用于存储数据
原文链接:
用python编写的一个学生成绩管理系统
# -*- coding: cp936 -*-
class StuInfo:
def __init__(self):
self.Stu=[{"Sno":"1","Sname":"姓名","ChineseScore":64,"MathsScore":34,"EnglishScore":94,"ComputerScore":83},
{"Sno":"2","Sname":"姓名","ChineseScore":44,"MathsScore":24,"EnglishScore":44,"ComputerScore":71},
{"Sno":"3","Sname":"姓名","ChineseScore":74,"MathsScore":35,"EnglishScore":74,"ComputerScore":93},
{"Sno":"4","Sname":"姓名","ChineseScore":94,"MathsScore":54,"EnglishScore":24,"ComputerScore":73}]
self.attribute={"Sno":"学号",
"Sname":"姓名",
"ChineseScore":"语文成绩",
"MathsScore":"数学成绩",
"EnglishScore":"英语成绩",
"ComputerScore":"计算机成绩"
}
def _add(self):
'''添加'''
singleInfo={}
for i in self.attribute:
if "Score" in i:
singleInfo[i]=int(raw_input(self.attribute[i]+"\n"))
else:
singleInfo[i]=raw_input(self.attribute[i]+"\n").strip()
self.Stu.append(singleInfo)
print "添加成功OK"
for i in singleInfo:
print i,"=",singleInfo[i]
def _del(self):
"""删除学号为Sno的记录"""
Sno=raw_input("学号:\n")
self.Stu.remove(self.__getInfo(Sno))
print "删除成功OK"
def _update(self):
"""更新数据"""
Sno=raw_input("学号\n").strip()
prefix="修改"
updateOperate={"1":"ChineseScore",
"2":"MathsScore",
"3":"EnglishScore",
"4":"ComputerScore"}
for i in updateOperate:
print i,"--",prefix+self.attribute[updateOperate[i]]
getOperateNum=raw_input("选择操作:\n")
if getOperateNum:
getNewValue=int(raw_input("输入新的值:\n"))
record=self.__getInfo(Sno)
record[updateOperate[getOperateNum]]=getNewValue
print "修改"+record["Sname"]+"的"+str(updateOperate[getOperateNum])+"成绩=",getNewValue,"\n成功OK"
def _getInfo(self):
"""查询数据"""
while True:
print "1-学号查询 2-条件查询 3-退出"
getNum=raw_input("选择:\n")
if getNum=="1":
Sno=raw_input("学号:\n")
print filter(lambda record:record["Sno"]==Sno,self.Stu)[0]
elif getNum=="2":
print "ChineseScore 语文成绩;","MathsScore 数学成绩;","EnglishScore 英语成绩;","ComputerScore 计算机成绩;"
print "等于 ==,小于 , 大于 ,大于等于 =,小于等于= ,不等于!="
print "按如下格式输入查询条件 eg: ChineseScore=60 "
expr=raw_input("条件:\n")
Infos=self.__getInfo(expr=expr)
if Infos:
print "共%d记录"%len(Infos)
for i in Infos:
print i
else:
print "记录为空"
elif getNum=="3":
break
else:
pass
def __getInfo(self,Sno=None,expr=""):
"""查询数据
根据学号 _getInfo("111111")
根据分数 _getInfo("EnglishSorce80")"""
if Sno:
return filter(lambda record:record["Sno"]==Sno,self.Stu)[0]
for operate in ["=","","=","","==","!="]:
if operate in expr:
gradeName,value=expr.split(operate)
return filter(lambda record: eval( repr(record[gradeName.strip()])+operate+value.strip()) ,self.Stu)
return {}
def _showAll(self):
"""显示所有记录"""
for i in self.Stu:
print i
@staticmethod
def test():
"""测试"""
_StuInfo=StuInfo()
while True:
print "1-录入数据 2-修改数据 3-删除数据 4-查询数据 5-查看数据 6-退出"
t=raw_input("选择:\n")
if t=="1":
print "录入数据"
_StuInfo._add()
elif t=="2":
print "修改数据"
_StuInfo._update()
elif t=="3":
print "删除数据"
_StuInfo._del()
elif t=="4":
print "查询数据"
_StuInfo._getInfo()
elif t=="5":
print "显示所有记录"
_StuInfo._showAll()
elif t=="6":
break
else:
pass
if __name__=="__main__":
StuInfo.test()
python教务管理系统毕业设计难吗
python教务管理系统毕业设计不难。
教务系统管理平台充分利用互联网络B/S管理系统模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统,用一个帐号解决学校教务教学管理,并且学校可以自由选择学校需要的教务管理系统,灵活地定制符合学校自己实际情况的教务系统。
系统构成:
成绩信息管理
教务工作人员通过该模块来进行学生成绩的管理,在进行学生成绩的添加时,可用它来为学生设置所在班级的课程表来直接输入成绩。
财务信息管理
教务工作人员通过此模块来管理财务信息,包括学生的缴费和欠费等。在进行缴费时候,打开新的窗口进行缴费录入,在保存的时候要进行数据库的检验,看学生是否已缴过费用,只有在不重复的情况下才能进行缴费。在学生欠费的情况下可以查找出某些班级的学生欠费,可以导出Excel的形式来打印。(如院校通中的财务缴费)
打印信息管理
教务工作人员可以通过打印模块来打印学生成绩信息,选课记表和班级表。可以根据班级、学生学号、课程编号来打印学生成绩单,打印前还要可以预览所要打印的报表。
如何用python的字典和列表来实现学生成绩管理?
下面是一个使用 Python 的字典和列表来实现学生成绩管理的简单例子。此例子实现了所有要求,但没有使用定义学生结构体类型和数组:
# 定义学生数据字典
students = []
# 定义输入函数
def input_student():
while True:
student = {}
student['id'] = input('学号: ')
student['class'] = input('班级: ')
student['name'] = input('姓名: ')
student['scores'] = []
for i in range(3):
score = input('第%d门课程成绩: ' % (i + 1))
student['scores'].append(score)
students.append(student)
if input('是否继续输入(y/n): ') != 'y':
break
# 定义求平均分函数
def average_score():
for student in students:
total = 0
for score in student['scores']:
total += score
student['average'] = total / len(student['scores'])
# 定义求最高平均分函数
def max_average():
max_student = None
max_average = 0
for student in students:
if student['average'] max_average:
max_student = student
max_average = student['average']
return max_student
# 调用输入函数
input_student()
# 调用求平均分函数
average_score()
# 输出每个学生的3门课程平均分
for student in students:
print('学号: %s, 班级: %s, 姓名: %s, 平均分: %.2f' % (student['id'], student['class'], student['name'], student['average']))
# 调用求最高平均分函数
max_student = max_average()
# 输出最高平均分的学生信息
if max_student:
print('\n平均分最高的学生: 学号: %s, 班级: %s, 姓名: %s, 3门课程成绩: %s, 平均分: %.2f' % (max_student['id'], max_student['class'], max_student['name'], max_student['scores'], max_student['average']))
在上面的例子中,我们定义了一个学生数据字典,用于存储学生信息。然后定义了三个函数,分别用于输入学生信息、求每个学生3门课程的平均分和求平均分最高的学生。最后,在主函数中调用这三个函数,并输出结果。