【Python】面向对象的学生管理系统

首先展示一下面向函数的学生管理系统,使用了Python语言编写。

stus = {1001:["张三",89.56],1002:["李四",95.80]}

#查询学生信息,修改学生信息,删除学生信息,增加学生信息
def main():
    print("*****欢迎使用学生管理系统*****")
    print("1.查询学生信息")
    print("2.添加学生信息")
    print("3.修改学生信息")
    print("4.删除学生信息")
    print("0.退出学生管理")

    num=int(input("请选择你要使用的功能"))
    if num==1:
        querystus()
    elif num==2:
        addstus()
    elif num==3:
        modifystus()
    elif num==4:
        delstus()
    elif num==5:
        showall()
    elif num==0:
        print("程序退出中...")
        exit()
    else :
        print("输入错误,请重新输入")
        main()

def key():
    s = input("输入Y继续,输入N退出")

    if s == "Y" or s == "y":
        return True

    elif s == "N" or s == "n":
        return False

    else:
        print("输入错误请重新输入")
        key()

def querystus():
    sno = int(input("请输入您要查询学生的学号"))
    if sno in stus:
        print("学生信息查询成功")
        print("学号:"+str(sno)+"  姓名:"+str(stus[sno][0])+"  成绩:"+str(stus[sno][1]))
        print("是否要继续查询学生信息")
        key_c = key()
        if key_c:
            querystus()
        else:
            main()
    else:
        print("您要查询的学生信息不存在,请重新输入")
        querystus()

def addstus():
    sno = int(input("请输入要添加学生的学号"))
    if sno in stus:
        print("学号信息已被使用,请重新输入学号")
        addstus()
    else :
        name = input("请输入学生姓名")
        score = float(input("请输入学生成绩"))
        stus[sno] = [name,score]
    print(stus,end="")
    print("学生信息添加成功,是否需要继续添加学生信息")
    key_c = key()
    if(key_c):
        addstus()
    else:
        main()

def delstus():
    sno = int(input("请输入你要删除的学生信息的学号"))
    if sno in stus:
        print(str(stus[sno]) + "信息删除*****")
        del stus[sno]
        print("学生信息删除成功,是否需要继续删除学生信息")
    else:
        print("学生信息不存在,请重新输入")
        delstus()
    key_c = key()
    if key_c:
        delstus()
    else:
        main()

def modifystus():
    sno = int(input("请输入您要修改学生信息的学号"))
    if sno in stus:
        print("学号:"+str(sno)+"  姓名:"+str(stus[sno][0])+"  成绩:"+str(stus[sno][1]))
        num = int(input("请输入你要修改的学生信息:1.姓名;2.成绩。"))
        if num == 1:
            sname = input("请输入姓名")
            stus[sno][0] = sname
        else:
            score = int(input("请输入成绩"))
            stus[sno][1] = score
        print("学生信息修改成功,是否需要继续修改学生信息")
        key_c = key()
        if key_c:
            modifystus()
        else:
            main()
    else:
        print("学号输入错误,请重新输入")
        modifystus()


main()

面向函数的编程是将编程分成N件事情,然后按照步骤执行函数实现目的。

面向对象的编程方法,是将整个过程封装成一个大类,在这个类中详细分解执行每个步骤,只需要执行类就可以实现目的。

学生管理系统的主要对象有:学生类、管理学生的类,因此有以下两个大类:

学生类

class Student:

    def __init__(self,sid,sname,scope,scity):
        self.__sid = sid
        self.__sname = sname
        self.__scope = scope
        self.__scity = scity
    def __str__(self):
        return f"{self.__sid}\t{self.__sname}\t{self.__scope}\t{self.__scity}"

    # 封装方法
    def getSid(self):
        return self.__sid
    def setSid(self,sid):
        self.__sid = sid

    def getSname(self):
        return self.__sname
    def setSname(self,sname):
        self.__sname = sname

    def getScope(self):
        return self.__scope
    def setScope(self,scope):
        self.__scope = scope

    def getScity(self):
        return self.__scity
    def setScity(self,scity):
        self.__scity = scity

学生管理类

from Student import Student

class School():

    #创建学生容器
    stus = []
    def menu(self):
        print("---进入学生管理系统---")
        print("---1.添加学生---")
        print("---2.修改学生---")
        print("---3.查询学生---")
        print("---4.删除学生---")
        print("---0.退出系统---")
        num = int(input("请输入要选择的功能"))
        if num == 1:
            self.addstu()
        elif num == 2:
            self.modifyStu()
        elif num == 3:
            self.showStu()
        elif num == 4:
            self.delStu()
        elif num == 0:
            print("---退出学生管理系统---")
            return
        else:
            print("输入错误,请重新调用")
            self.menu()

    def key(self):
        s = input("输入Y继续,输入N返回主界面")
        if s == "Y" or s == "y":
            return True
        elif s == "N" or s == "n":
            return False
        else:
            print("输入错误请重新输入")
            self.key()

    # 添加学生
    def addstu(self):
        sno = int(input('请输入学生学号:'))

        for i in self.stus:
            if sno == i.getSid():
                print("您输入的学号信息已存在,请重新输入")
                self.addstu()
        sname = input("请输入学生姓名:")
        scope = int(input("请输入学生成绩:"))
        scity = input("请输入学生住址:")
        s = Student(sno,sname,scope,scity)
        self.stus.append(s)
        print("学生信息添加成功")
        print("学号:"+str(s.getSid())+" 姓名:"+s.getSname()+" 成绩: "+str(s.getScope())+" 住址:"+s.getScity())
        key_c = self.key()
        if key_c:
            self.addstu()
        else:
            for i in self.stus:
                print(i)
            self.menu()
    # 修改学生信息
    def modifyStu(self):
        sno = int(input("请输入要修改的学生学号:"))
        flag = False
        for i in self.stus:
            if sno == i.getSid():
                flag = True
                break
        if flag :
            print(f"学号:{i.getSid()},姓名:{i.getSname()},成绩:{i.getScope()},住址:{i.getScity()}")
            id = int(input("请输入您要修改的学号:"))
            i.setSid(id)
            name = input("请输入您要修改的姓名:")
            i.setSname(name)
            scope = int(input("请输入您要修改的成绩:"))
            i.setScope(scope)
            city = input("请输入您要修改的住址:")
            i.setScity(city)
            print("---学生信息修改完成---")
            print(f"学号:{i.getSid()},姓名:{i.getSname()},成绩:{i.getScope()},住址:{i.getScity()}")
        else:
            print("学生信息不存在")
        key_c = self.key()
        if key_c:
            self.modifyStu()
        else:
            self.menu()

    # 查询学生
    def showStu(self):
        sno = int(input("请输入要查询的学生学号:"))
        flag = False
        for i in self.stus:
            if sno == i.getSid():
                print("学生信息查询完成")
                flag = True
        if flag:
            print(f"学号:{i.getSid()},姓名:{i.getSname()},成绩:{i.getScope()},住址:{i.getScity()}")
        else:
            print("学生信息不存在,请重新输入学号")
            key_c = self.key()
            if key_c:
                self.showStu()
            else:
                self.menu()

    # 删除学生
    def delStu(self):
        sno = int(input("请输入要删除的学生学号:"))
        t = 0
        for i in self.stus:
            if sno == i.getSid():
                break
            else:
                t += 1
        print("---学生信息删除中---")
        self.stus.pop(t)
        print("---学生信息删除成功---")

sc1 = School()
sc1.menu()

 

  • 5
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python面向对象学生信息管理系统是一个用于管理学生信息的程序。它可以完成添加学生、删除学生、修改学生信息、查询学生信息、显示所有学生信息、保存学生信息以及退出系统等功能。该系统使用面向对象编程思想进行开发,主要由两个角色组成:学生管理系统。 首先,你需要新建一个Python项目来实现这个学生信息管理系统。在项目中,你可以创建一个名为managerSystem的模块。 接下来,你可以导入managerSystem模块,并在main.py文件中启动学生管理系统。你可以通过创建一个名为student_manager的学生管理器的实例,并调用run()方法来启动系统。 在managerSystem模块中,你可以定义一个名为StudentManager的类。这个类将用于处理学生信息的增删改查操作。你可以在这个类中定义相应的方法来实现系统的各个功能。 总结起来,你可以按照以下步骤来编写这个Python面向对象学生信息管理系统: 1. 新建一个Python项目。 2. 创建managerSystem模块。 3. 导入managerSystem模块,并在main.py文件中启动学生管理系统。 4. 在managerSystem模块中定义一个StudentManager类。 5. 在StudentManager类中定义方法来实现学生信息的添加、删除、修改、查询、显示和保存等功能。 6. 运行程序,测试学生信息管理系统的各个功能。 这样,你就可以通过这个Python面向对象学生信息管理系统管理学生的信息了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值