用python编写的一个学生成绩管理系统

学生信息包括:学号、姓名、4门课程的成绩(语文,数学,英语,计算机)。 要实现的功能:学生信息的录入、修改、删除和查询[按学号查询、按成绩查询(如及格,高于60分)]。
要求:–有输入(根据输入进行相关的操作) –有输出(输出项目处理后的信息) –自定义相关函数并在主程序中调用 –要使用if、for、while等流程控制语句 –要使用列表、字典等数据类型
请会的大神发到我邮箱:2332872724@qq.com
一定要能运行的

# -*- 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("EnglishSorce>80")"""
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()追问

能够运行无误吧

追答

不会懒到自己测试一下都不愿意吧。我这能运行,不代表你那可以

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-01

    哪个学校的,竟然还有实验

追问

没办法,选修老师要求的,你会吗,要是能运行且达到要求的立马采纳

简单的学生成绩管理系统
本文章将实现对于学生成绩的简单管理,下面展示实验的要求: 1、创建4个.py模块,在一个包内,模块命名分别为main.py,ui.py,model.py,bll.py。 2、(1)实现学生管理系统在控制台的输出显示界面如图1所示。(2)在model.py模块中建立学生类,其中包含的属性有name,age,score,id。 (3)在bll.py模块中建立学生管理业...

Python 输入全班30名学生的姓名和成绩,输出其中的最高分和最低分,并...
首先,打开Python交互模式,输入`python`命令启动。接着,定义一个空的字典,用于存储学生的姓名和成绩,可以使用`scores = {}`。这将允许我们通过键值对形式管理数据,比如`scores['student1'] = score1`。然后,使用`input()`函数获取学生姓名,如输入`name = input('请输入学生姓名:')`。输入后...

学生总成绩自动排名怎么弄
students[i].rank = rank 输出学生信息 for s in students:print(f'{s.name}({s.id}): {s.scores}, 总成绩:{s.total_score}, 排名:{s.rank}')执行示例代码后,输出结果如下:python Lily(1004): [95, 90, 85], 总成绩:270, 排名:1 Jack(1002): [90, 85, 95], 总成绩:...

用python编写的一个学生成绩管理系统
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...

用python怎么统计总成绩和各科成绩
假设有4个学生,他们的语文、数学、英语成绩分别为:(90, 85, 95),(80, 75, 90),(95, 90, 90),(70, 80, 85)。可以使用以下代码来统计各科成绩和总成绩:python scores = [(90, 85, 95), (80, 75, 90), (95, 90, 90), (70, 80, 85)]计算各科成绩总和 chinese_sum = ...

Python 输入全班30名学生的姓名和成绩,输出其中的最高分和最低分,并...
首先,打开Python交互模式,通过命令提示符输入并运行“python”命令。接着,创建一个字典数据结构,用于存储学生信息。可以使用字典的键值对形式,键代表学生姓名,值为成绩。例如:python student_data = {} 然后,通过一个循环结构,输入30名学生的姓名和成绩。例如:python for i in range(1, 31):n...

python使用字典存储学生的成绩
student_id_list = [1, 2, 3, 4, 5...] # 学生id列表,可以是学号 score_list = [90, 91, 92, ...] # 对应的成绩列表 result = dict(zip(student_id_list, score_list)) # result就是你想要的字典

如何用python编程做一个迷你成绩查询器
\/usr\/bin\/env python# coding: utf-8from cmd import Cmdclass Degree(Cmd): STUDENTS = {} def do_enter(self, cmdln): """Enter a student's name and degree for create or modify;""" ln = cmdln or raw_input("Enter Student's name and degree: ") student, de...

python学生成绩管理系统简历怎么写
1、简历的开头应该简要介绍项目的背景,目的,功能和技术要点,例如本项目是使用Python语言开发的一个学生成绩管理系统,旨在实现对学生信息和成绩的增删改查,导入导出,排序和统计等功能。本项目采用了面向对象的编程思想,设计了学生类和学生管理类,使用了os和re等内置模块,以及文件操作和异常处理等技术...

怎样用python做语文、英语、数学的成绩排行榜
百度可以的 该代码运行在 python3 环境下,双击文件即可运行,不带异常捕捉。import os list1 = [1, 2, 3, 4]list2 = [98, 67, 89, 80]list3 = [100, 90, 83, 62]list4 = [90, 98, 100, 82]index = input('请输入学生学号:')index = list1.index(int(index))chinese, math...

相似回答