Python学生成绩管信息理系统(面向对象)(学生信息篇)

本文介绍了如何为学校开发一个学生信息管理系统,包括学生基本信息管理模块的实现,如添加、删除、修改和显示功能,以及学生成绩管理模块的统计功能。通过面向对象的方式设计了学生类和学生管理类,展示了完整的代码和业务流程设计。
摘要由CSDN通过智能技术生成

目录

任务描述

系统业务流程设计

学生基本信息管理模块

学生类的设计与实现

学生管理类的设计与实现

结语


任务描述

项目组接到一个新项目,要为某学校开发一个“学生信息管理系统”,经过与客户沟通交流,确定该系统的主要功能如下图所示。

整个学生信息管理系统主要包括两大模块:基本信息管理和学生成绩管理。

基本信息管理模块的主要功能有学生信息的添加、删除、修改、显示和学生数据的导入导出,、

学生成绩管理模块的主要功能有统计课程最高分、最低分和平均分。

系统业务流程设计

学生信息管理系统启动后,首先进入系统主界面,等待用户输入命令选择相应的功能。

如果用户输入“info”命令,则进入学生基本信息管理子功能模块。

在学生基本信息管理界面,用户通过输入相应的命令进行学生基本信息的增、删、改、显示等操作。

如果用户输入“score”命令,则进入学生成绩管理子功能模块。

在学生成绩管理界面用户可选择相应的功能进行成绩处理。

学生基本信息管理模块

学生类的设计与实现

学生信息管理模块中每个学生的基本信息有学号、姓名、语文成绩、数学成绩和英语成绩,设计一个学生类,包含学号、姓名、语文成绩、数学成绩和英语成绩等数据成员,然后添加一个构造方法,用于实例化时可直接传入相应的参数来创建学生对象,代码如下:

class Student:
    def __init__(self,no,name,chinese,math,english):
        self.no = no
        self.name = name
        self.chinese = int(chinese)
        self.math = int(math)
        self.english = int(english)   

学生管理类的设计与实现

设计一个学生信息管理类StudentList用于实现对所有学生信息的管理,如学生信息的添加、删除、修改和显示等功能。

class StudentList:
    def __init__(self):
        self.stulist = []

    def show(self):
        #显示学生信息
        print('{:8}\t{:8}\t{:8}\t{:8}\t{:8}'
              .format('学号','姓名','语文','数学','英语'))
        for stu in self.stulist:            
            print('{:8}\t{:8}\t{:<8}\t{:<8}\t{:<8}'
              .format(stu.no,stu.name,stu.chinese,stu.math,stu.english))
            

    def insert(self):
        #添加学生信息
        while True:
            no = input('学号:')
            name = input('姓名:')
            chinese = input('语文成绩:')
            math = input('数学成绩:')
            english = input('英语成绩:')
            stu = Student(no,name,chinese,math,english)
            self.stulist.append(stu)
            choice = input('继续添加(y/n)?').lower()
            if choice == 'n':
                break


    def delete(self):
        #删除学生信息
        while True:
            no = input('请输入要删除的学生学号:')
            for stu in self.stulist[::]:
                if stu.no == no:
                    self.stulist.remove(stu)
                    print('删除成功')
                    break
            else:
                print('该学号不存在')
            choice = input('继续删除(y/n)?').lower()
            if choice == 'n':
                break


    def update(self):
        #修改学生信息
        while True:
            no = input('请输入要修改的学生学号:')
            for stu in self.stulist:
                if stu.no == no:
                    stu.name = input('姓名:')
                    stu.chinese = input('语文成绩:')
                    stu.math = input('数学成绩:')
                    stu.english = input('英语成绩:')
                    print('修改成功')
                    break
            else:
                print('该学号不存在')
            choice = input('继续修改(y/n)?').lower()
            if choice == 'n':
                break

然后定义一个打印菜单的模块:

 def print_menu(self):
        #打印菜单
        print('学生基本信息管理'.center(20,'-'))
        print('insert--------添加学生信息')
        print('delete--------删除学生信息')
        print('update--------修改学生信息')
        print('show----------显示学生信息')
        print('return--------返回')
        print('-'*28)

最后定义主函数:

def main(self):
        #主控函数
        self.print_menu()
        while True:
            s = input('info>').strip().lower()
            if s == 'show':
                self.show()
            elif s == 'insert':
                self.insert()
            elif s == 'delete':
                self.delete()
            elif s == 'update':
                self.update()
            elif s =='return':
                break
            else:
                print('输入错误')

if __name__ == '__main__':
    st = StudentList()
    st.main()
完成之后的完整代码如下:

class Student:
    def __init__(self,no,name,chinese,math,english):
        self.no = no
        self.name = name
        self.chinese = int(chinese)
        self.math = int(math)
        self.english = int(english)    


class StudentList:
    def __init__(self):
        self.stulist = []

    def show(self):
        #显示学生信息
        print('{:8}\t{:8}\t{:8}\t{:8}\t{:8}'
              .format('学号','姓名','语文','数学','英语'))
        for stu in self.stulist:            
            print('{:8}\t{:8}\t{:<8}\t{:<8}\t{:<8}'
              .format(stu.no,stu.name,stu.chinese,stu.math,stu.english))
            

    def insert(self):
        #添加学生信息
        while True:
            no = input('学号:')
            name = input('姓名:')
            chinese = input('语文成绩:')
            math = input('数学成绩:')
            english = input('英语成绩:')
            stu = Student(no,name,chinese,math,english)
            self.stulist.append(stu)
            choice = input('继续添加(y/n)?').lower()
            if choice == 'n':
                break


    def delete(self):
        #删除学生信息
        while True:
            no = input('请输入要删除的学生学号:')
            for stu in self.stulist[::]:
                if stu.no == no:
                    self.stulist.remove(stu)
                    print('删除成功')
                    break
            else:
                print('该学号不存在')
            choice = input('继续删除(y/n)?').lower()
            if choice == 'n':
                break


    def update(self):
        #修改学生信息
        while True:
            no = input('请输入要修改的学生学号:')
            for stu in self.stulist:
                if stu.no == no:
                    stu.name = input('姓名:')
                    stu.chinese = input('语文成绩:')
                    stu.math = input('数学成绩:')
                    stu.english = input('英语成绩:')
                    print('修改成功')
                    break
            else:
                print('该学号不存在')
            choice = input('继续修改(y/n)?').lower()
            if choice == 'n':
                break


    def print_menu(self):
        #打印菜单
        print('学生基本信息管理'.center(20,'-'))
        print('insert--------添加学生信息')
        print('delete--------删除学生信息')
        print('update--------修改学生信息')
        print('show----------显示学生信息')
        print('return--------返回')
        print('-'*28)
    
    def main(self):
        #主控函数
        self.print_menu()
        while True:
            s = input('info>').strip().lower()
            if s == 'show':
                self.show()
            elif s == 'insert':
                self.insert()
            elif s == 'delete':
                self.delete()
            elif s == 'update':
                self.update()
            elif s =='return':
                break
            else:
                print('输入错误')

if __name__ == '__main__':
    st = StudentList()
    st.main()

运行程序:

学生基本信息菜单

添加学生信息

删除学生信息

修改学生信息

显示学生信息

结语

本篇我们完成了学生成绩管理系统的学习信息部分,新建了一个学生基本信息和学生管理类,实现了面向对象的学生信息管理。

通过学生基本信息管理菜单,我们可以实现学生信息的添加,删除,修改和显示。

下篇我们将完善学生基本信息功能,增加外部文件导入和导出成外部文件的功能。

同时,我们也将实现学生成绩管理系统的成绩统计相关功能。

 

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李威威wiwi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值