Python 简单的学生成绩管理系统

这是一个简单的学生成绩管理系统和课程表的实现,通过面向对象编程设计了StudentSystem、Subject类,实现了成绩录入、总分计算、排序、删除和课程信息输入输出等功能。用户可以进行成绩的插入、输出、删除和排序操作,同时也能添加和查看课程与教师信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验四:

通过对学生成绩管理系统的设计与实现,进一步理解面向对象程序设计方法,会用面向对象的方法完成小型系统的开发。

简单学生成绩管理系统要求具有课程与成绩录入、总分计算、按总分排序、最高分和最低分计算等功能。信息输入和输出要简洁明了,增加必要的提示等。

1、学生成绩登记表

姓名

C#

JAVA

英语

数学

总分

李明

65

72

36

86

王兵

81

70

65

71

刘萍

73

64

88

65

  1. 课程与教师表

课程名称

任课教师

C#

王长荣

JAVA

李小小

英语

刘卫兵

数学

张常来

本学生成绩管理系统就是帮班主任完成“学生成绩登记表”和“课程与教师表”基本信息的录入,并求总分、排名和最高分及最低分。

本系统功能相对简单,关键是如何合理地定义相关的类来描述对象。这里设计分数(Score)、课程(Subject)以及学生(Student)三个类。分数(Score)类具有分数属性和输入、输出功能;课程(Subject)类具有课程名称和任课教师两个属性,以及输入、输出功能;学生(Student)类具有姓名、成绩、课程等属

性和输入成绩、输出成绩、求总分等功能。

​

class StudentSystem:

    def __init__(self):
        self.all = []
        self.number = []
        self.name = []
        self.clanguage = []
        self.java = []
        self.math = []
        self.english = []
        self.total = []

    def insert(self):
        box = []
        number = input("学号:")
        box.append(number)
        self.number.append(number)
        name = input("姓名:")
        box.append(name)
        self.name.append(name)
        clanguage = int(input("请输入c#的成绩:"))
        if 0 <= clanguage <= 100:
            box.append(clanguage)
            self.clanguage.append(clanguage)
        else:
            print("请输入正确的数字")
            self.insert()
        java = int(input("请输入Java成绩:"))
        if 0 <= java <= 100:
            box.append(java)
            self.java.append(java)
        else:
            print("请输入正确的数字")
            self.insert()
        math = int(input("数学成绩:"))
        if 0 <= math <= 100:
            box.append(math)
            self.math.append(math)
        else:
            print("请输入正确的数字")
            self.insert()
        english = int(input("英语成绩:"))
        if 0 <= english <= 100:
            box.append(english)
            self.english.append(english)
        else:
            print("请输入正确的数字")
            self.insert()
        box.append(clanguage+java + math + english)
        self.all.append(box)

    def show(self):
        init = ["学号","姓名", "c#", "java", "数学", "英语", "成绩总和"]
        for i in init:
            print("%-10s" % i, end="")
        print()
        for i in self.all:
            for j in i:
                print("%-12s" % j, end="", )
            print()

    def delete(self):
        k = 0
        opt1 = input("输入删除的学号:")
        if len(self.number) == 0:
            print("系统中学号为空")
        for i in self.number:
            # 使用try + self.number.index(opt)减少时间复杂度
            if i == opt1:
                m = self.number.index(opt1)
                self.all.remove(self.all[m])
                self.name.remove(self.name[m])
                self.number.remove(self.number[m])
                self.math.remove(self.math[m])
                self.clanguage.remove(self.clanguage[m])
                self.java.remove(self.java[m])
                self.english.remove(self.english[m])
                print("删除成功")
            k += 1
            while k == len(self.number):
                print("系统中没有该学号")
                break

    
    def sort(self):

        sort = []
        j = 0
        for i in range(0, len(self.all)):
            self.total.append(self.all[i][5])
        self.total.sort(reverse=True)
        while j < len(self.all):
            for i in self.all:
                if i[5] == self.total[j]:
                    sort.append(i)
            j += 1
        init2 = ["学号","姓名", "c#", "Java", "数学", "英语", "成绩总和"]
        for i in init2:
            print("%-10s" % i, end="")
        print()
        for i in sort:
            for j in i:
                print("%-12s" % j, end="", )
            print()

    

    def menu(self):

        while True:
            print("1 插入成绩")
            print("2 输出成绩")
            print("3 删除数据")
            print("4 排序数据")
            print("5 退出系统")
            option = int(input("输入选项:"))
            if option == 1:
                self.insert()
                print("插入成功")
            elif option == 2:
                self.show()
            elif option == 3:
                self.delete()
           
            elif option == 4:
                self.sort()
            
            elif option==5:
               
                break
            else:
                print("请输入有效选项")
                self.menu()


                
                
                
                
                
class Subject():
    def __init__(self):
        self.alls = []
        self.subject = []
        self.teacher = []
    def input(self):
        box=[]
        subject = str(input("请输入课程名称:"))
        box.append(subject)
        self.subject.append(subject)
        teacher = str(input("请输入任课教师:"))
        box.append(teacher)
        self.teacher.append(teacher)
        self.alls.append(box)
    def output(self):
        init = ["课程名称","任课教师"]
        for i in init:
            print("%-10s" % i, end="")
        print()
        for i in self.alls:
            for j in i:
                print("%-12s" % j, end="", )
            print() 
    def menu1(self):
        while True:
            print("1 添加课表")
            print("2 展示课表")
            print("3 退出")
            option = int(input("输入选项:"))
            if option == 1:
                self.input()
            elif option == 2:
                self.output()
            elif option==3:
                break
            else:
                print("请输入有效选项")
                self.menu1()
        
        
def main():
    while True:
        print("欢迎来到学生成绩管理系统")
        print("1 学生成绩")
        print("2 课表展示")
        option = int(input("输入选项:"))
    
        if option == 1:
            s = StudentSystem
            s().menu()
        else:
            if option == 2:
                su=Subject
                su().menu1()



if __name__ == '__main__':
    main()

​

结果截图

欢迎来到学生成绩管理系统
1 学生成绩
2 课表展示
输入选项:1
1 插入成绩
2 输出成绩
3 删除数据
4 排序数据
5 退出系统
输入选项:1
学号:1
姓名:李明
请输入c#的成绩:65
请输入Java成绩:72
数学成绩:36
英语成绩:86
插入成功
1 插入成绩
2 输出成绩
3 删除数据
4 排序数据
5 退出系统
输入选项:1
学号:2
姓名:王兵
请输入c#的成绩:81
请输入Java成绩:70
数学成绩:65
英语成绩:71
插入成功
1 插入成绩
2 输出成绩
3 删除数据
4 排序数据
5 退出系统
输入选项:1
学号:3
姓名:刘萍
请输入c#的成绩:73
请输入Java成绩:64
数学成绩:88
英语成绩:65
插入成功
1 插入成绩
2 输出成绩
3 删除数据
4 排序数据
5 退出系统
输入选项:1
学号:4
姓名:李阳
请输入c#的成绩:65
请输入Java成绩:88
数学成绩:55
英语成绩:98
插入成功
1 插入成绩
2 输出成绩
3 删除数据
4 排序数据
5 退出系统
输入选项:2
学号        姓名        c#        java      数学        英语        成绩总和      
1           李明          65          72          36          86          259         
2           王兵          81          70          65          71          287         
3           刘萍          73          64          88          65          290         
4           李阳          65          88          55          98          306         
1 插入成绩
2 输出成绩
3 删除数据
4 排序数据
5 退出系统
输入选项:3
输入删除的学号:4
删除成功
1 插入成绩
2 输出成绩
3 删除数据
4 排序数据
5 退出系统
输入选项:4
学号        姓名        c#        Java      数学        英语        成绩总和      
1           李明          65          72          36          86          259         
2           王兵          81          70          65          71          287         
3           刘萍          73          64          88          65          290         
1 插入成绩
2 输出成绩
3 删除数据
4 排序数据
5 退出系统
输入选项:5
欢迎来到学生成绩管理系统
1 学生成绩
2 课表展示
输入选项:2
1 添加课表
2 展示课表
3 退出
输入选项:1
请输入课程名称:C#
请输入任课教师:王长荣
1 添加课表
2 展示课表
3 退出
输入选项:1
请输入课程名称:java
请输入任课教师:李小小
1 添加课表
2 展示课表
3 退出
输入选项:1
请输入课程名称:英语
请输入任课教师:刘卫兵
1 添加课表
2 展示课表
3 退出
输入选项:1
请输入课程名称:数学
请输入任课教师:张常来
1 添加课表
2 展示课表
3 退出
输入选项:2
课程名称      任课教师      
C#          王长荣         
java        李小小         
英语          刘卫兵         
数学          张常来         
1 添加课表
2 展示课表
3 退出
输入选项:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值