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

目录

任务描述

系统业务流程设计

学生基本信息管理模块

学生类的设计与实现

学生管理类的设计与实现

结语


任务描述

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

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

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

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

扫描二维码关注公众号,回复: 16761708 查看本文章

系统业务流程设计

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

如果用户输入“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()

运行程序:

学生基本信息菜单

添加学生信息

删除学生信息

修改学生信息

显示学生信息

结语

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

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

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

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

猜你喜欢

转载自blog.csdn.net/agelee/article/details/126664530
今日推荐