Python实现 简易学生成绩管理系统

python实现的简易版 学生成绩管理系统

如有不妥的地方欢迎评论区指出

# 简单学生成绩管理系统

class Score():
    def __init__(self):
        self.s=0
    def input(self):
        self.s=float(input("请输入分数(0~100:"))
    def output(self):
        print(self.s,end='')

# 定义课程类,包括课程名称和任课教师
class Subject():
    def __init__(self):
        self.subject=''
        self.teacher=''
    def input(self):
        self.subject=str(input("请输入课程名称:"))
        self.teacher=str(input("请输入任课教师:"))

    def output(self):
        print(self.subject,self.teacher)

#  定义学生类
class Student():
    def __init__(self,s):
        self.name=''
        self.sum=0
        self.grade={}
        self.subject=s

        #输入每门课的成绩,用字典进行存储

    def input(self):
        self.name=str(input("请输入学生姓名:"))
        for i in self.subject:
            self.sum+=self.grade[i].s

    # 输出每门课的成绩及总分
    def output(self):
        print(self.name,end='')
        for i in self.subject:
            self.grade[i].output()
        print(self.sum)

    # 课程输入函数,返回课程列表

def kc():
    print("****课程信息录入****")
    sub=[]
    while True:
        subject=Subject()
        subject.input()
        if subject.subject=='**':#以输入“**”结束
            break
        else:
            sub.append(subject)

    return sub


#学生成绩输入函数,返回全部学生列表

def cj(sub):
    print("****学生信息录入****")
    class_jd=[]
    while True:
        stu=Student(sub)
        stu.input()
        stu.count()
        class_jd.append(stu)

        if input("继续输入学生吗(y/n)?") in ['n','N']:
            break

    return class_jd

def main():
    print("*****学生成绩管理系统*******")
    sub=kc()
    class_jd=cj(sub)
    class_jd.sort(key=lambda class_jd:class_jd.sum)
    print("***结果输出***")
    print("最高分:",max(class_jd,key=lambda class_jd:class_jd.sum).sum)
    print("最低分:",min(class_jd,key=lambda class_jd:class_jd.sum).sum)
    print("姓名",end='')
    for i in sub:    # 输出表头
        print(i.subject,end='')

    print("总分")

    for i in class_jd:   # 按总分从低到高输出学生信息
        print(i.output())


if __name__ == '__main__':
    main()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值