简易学生管理系统

部署运行你感兴趣的模型镜像
目的和内容:

创建一个简单的学生信息管理系统,将学生信息存储在系统中,让用户可以通过菜单选择对学生信息进行添加、删除、查找、排序和查看等操作。

具体实现:
类的定义:
class Student:
    def __init__(self,name,number,score,major):
        self.name=name
        self.number=number
        self.score=score
        self.major=major

创建一个类用来表示学生对象,包括学生的姓名,学号,成绩,专业等信息。

class StuManagement:

 创建一个类用于管理学生信息,此类中有六个函数。

def __init__(self):
        self.stuList=[]

__init__构造函数初始化一个空列表stuList,该列表用于存储所有的学生对象。

    def addstu(self,stu):
        sTemp = stu.split()
        new_student=Student(sTemp[0],sTemp[1],int(sTemp[2]),sTemp[3])
        for e in self.stuList:
            if e.number==new_student.number:
                return
        self.stuList.append(new_student)

addstu方法用于添加学生信息。

它接收一个字符串stu,该字符串包含学生的姓名、学号、分数和专业,用空格分隔。把字符串按空格分割成列表sTemp,再用这些信息创建一个新的Student对象。检查新学生的学号是否已存在于stuList中,若存在则直接返回,不存在则将新学生对象添加到stuList

    def init(self):
        self.addstu('李四 2 562 计算机')
        self.addstu( '张三 3 550 计算机')
        self.addstu('王五 1 570 财经')
        self.addstu('赵二 4 530 财经')
        self.addstu('周凯 5 495 计算机')
        return self.stuList

init方法用于初始化学生信息管理系统。它调用addstu方法添加 5 个学生的信息,最后返回stuList

    def deletestu(self,number):
        for e in self.stuList:
            if e.number==number:
                self.stuList.remove(e)
                break

deletestu方法用于删除指定学号的学生信息。它遍历stuList,找到学号匹配的学生对象后将其从列表中移除,然后跳出循环。

    def findStuByName(self,name):
        result=[]
        for e in self.stuList:
            if e.name==name:
                result.append(e)
        return result

findStuByName方法用于按姓名查找学生信息。

它遍历stuList,把姓名匹配的学生对象添加到result列表中,最后返回该列表。

def sortByAttribute(self,i):
        i=int(i)
        self.stuList.sort(key=lambda x:(x.name,x.number,x.score,x.major)[i])

sortByAttribute方法用于按指定属性对学生列表进行排序。

它将输入的参数i转换为整数,该整数表示排序依据的属性下标(0 表示姓名,1 表示学号,2 表示分数,3 表示专业)。利用sort方法和lambda函数对stuList进行排序。

辅助函数:
def menu():
    fmt = '{0:10}'
    print(fmt.format("1.添加学生"))
    print(fmt.format("2.删除学生(按学号)"))
    print(fmt.format("3.查找学生(按姓名)"))
    print(fmt.format("4.排序(按属性)"))
    print(fmt.format("5.查看学生列表"))
    print(fmt.format("x.退出"))

此函数用于显示操作菜单,借助格式化字符串保证菜单的整齐显示。

def showStu(stu):
    fmt = '{0:5}, {1:8}, {2:3}, {3:5}'
    print(fmt.format(stu.name, stu.number, stu.score, stu.major))

该函数用于显示单个学生的信息,利用格式化字符串确保信息的整齐显示。

def showStuList(stuList):
    for e in stuList:
        showStu(e)

此函数用于显示学生列表中的所有学生信息,它遍历stuList,对每个学生对象调用showStu函数。

主程序:
if __name__ == '__main__':
    management=StuManagement()
    stuList = management.init()
    print('*****系统初始化完毕!*****')
    menu()
    choice = input('请输入你的选择:')
    while True:
        if choice == 'x':
            break
        elif choice == '1':
            line = input('请输入学生信息(姓名 学号 分数 专业):')
            management.addstu(line)
            print('*****插入完毕!*****')
        elif choice == '2':
            stuNo = input('请输入欲删除学生的学号:')
            management.deletestu(stuNo)
            print('*****删除完毕!*****')
        elif choice == '3':
            name = input('请输入学生姓名:')
            stus = management.findStuByName(name)
            print('*****查找完毕!结果如下:*****')
            showStuList(stus)
        elif choice == '4':
            i = input('请输入欲排序属性的下标(0,姓名;1,学号;2,分数;3,专业):')
            management.sortByAttribute(i)
            print('*****排序完毕!结果如下:*****')
            showStuList(stuList)
        elif choice == '5':
            showStuList(stuList)
        else:
            print('*****输入错误,请重新选择*****')
        menu()
        choice = input('请输入你的选择:')
    print('*****程序退出*****')

当脚本作为主程序运行时,会创建一个StuManagement对象并调用init方法初始化学生信息。

显示系统初始化完成的提示信息和操作菜单,让用户输入选择。依据用户的选择执行相应的操作,如添加学生、删除学生、查找学生、排序学生列表或查看学生列表。

若用户输入x,则退出循环,程序结束。若用户输入无效的选择,会提示输入错误,让用户重新选择。

运行结果:

运行开始页面:

输入5后:

添加学生信息:

删除学生:

查找学生:

学生排序:

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值