Python实现学生管理系统(面向对象版)

本文实例为大家分享了Python实现学生管理系统的具体代码,供大家参考,具体内容如下

实现从面向过程到面向对象的过度,通过更改前面的学生管理系统实现面向对象,也证明了面向过程可以完美过度到面向对象,从而为以后的程序进步做了进一步优化,方便以后的程序更改。

完整代码如下:

student_main模块中的代码

import student_tools


class Student(student_tools.StudentT):

    def __init__(self):
        self.user=[\'wangtaotao\']
        self.pwd=[\'123456\']
        student_tools.StudentT.__init__(self)

    #登录
    def denglu(self):
        users = input(\"请输入您的用户名:\")
        pwds = input(\"请输入您的密码:\")
        if users in self.user and pwds in self.pwd:
            self.student()
        else:
            print(\"账号或密码不正确,请重新输入\")

    #注册
    def zhuce(self):
        users=input(\"请输入您要注册的用户名:\")
        pwds=input(\"请输入您要注册的密码:\")
        self.user.append(users)
        self.pwd.append(pwds)
        print()
        print(\"注册成功!\")
        print()

    #登录界面
    def dljiemian(self):

        while True:
            print(\"---------------------------\")
            print(\"    学生管理系统登陆界面 V1.0  \")
            print(\"                           \")
            print(\"        1:登   录           \")
            print(\"        2:注   册           \")
            print(\"        3:退   出           \")
            print(\"                           \")
            print(\"---------------------------\")
            xx=input(\"请输入您的选择:\")
            #1.登录
            if xx==\'1\':
                self.denglu()
            elif xx==\'2\':
            #2.注册
                self.zhuce()
            elif xx==\'3\':
            #3.退出
                print()
                print(\"成功退出!\")
                print()
                break
            else:
                print(\"输入错误,请重新输入\")


    #学生管理系统
    def student(self):
        # 调用student_tools模块中的读取文件函数
        super().read_file()
        while True:
            #调用student_tools模块中的界面函数
            super().jiemian()

            x=input(\"请输入您的选择:\")
            #添加学生
            if x==\'1\':
                super().add()
            #删除学生
            elif x==\'2\':
                super().dele()
            #修改学生
            elif x==\'3\':
                super().xiugai()
            #查询学生
            elif x==\'4\':
                super().find()
            #显示所有学生
            elif x==\'5\':
                super().showall()
            #保存数据至文件中
            elif x==\'6\':
                super().save_file()
            #退出学生管理系统,返回上一层登录界面系统
            elif x==\'7\':
                print()
                print(\"成功退出学生管理系统!\")
                break
            else:
                print()
                print(\"输入错误,请重新输入\")
                print()

    #调用最先执行的登录界面函数
if __name__==\'__main__\':
    wtt=Student()
    wtt.dljiemian()

student_tools模块中的代码

import os


class StudentT(object):

    def __init__(self):
        self.student_list=[]
        self.student_dict={}


    #学生管理系统界面
    @staticmethod
    def jiemian():
        print(\"---------------------------\")
        print(\"      学生管理系统 V1.0\")
        print(\"                           \")
        print(\"      1:添加学生\"            )
        print(\"      2:删除学生\"            )
        print(\"      3:修改学生\"            )
        print(\"      4:查询学生\"            )
        print(\"      5:显示所有学生\"         )
        print(\"      6:保存数据\"            )
        print(\"      7:退出系统\"            )
        print(\"                           \")
        print(\"---------------------------\")


    #添加学生
    def add(self):
        name=input(\"请输入录入学生姓名:\")
        cls=input(\"请输入学生班级:\")
        age=input(\"请输入录入学生年龄:\")
        phone=input(\"请输入录入学生手机号:\")
        addr=input(\"请输入录入学生家庭住址:\")

        self.student_dict={\"name\":name,\"class\":cls,\"age\":age,\"phone\":phone,\"address\":addr}

        self.student_list.append(self.student_dict)
        print()
        print(\"-----添加学生信息界面-----\")
        print()
        print(\"姓名\\t\\t\",\"班级\\t\\t\",\"年龄\\t\\t\",\"电话号\\t\\t\",\"家庭住址\\t\\t\")
        for student_dict_1 in self.student_list:
            print(\"%s\\t\\t%s\\t\\t%s\\t\\t%s\\t\\t%s\" %(student_dict_1[\"name\"],
                                                 student_dict_1[\"class\"],
                                                 student_dict_1[\"age\"],
                                                 student_dict_1[\"phone\"],
                                                 student_dict_1[\"address\"]))
        print()
        print(\"录入成功!\")
        print()

    #删除学生
    def dele(self):
        name_del=input(\"请输入想要删除的学生姓名:\")
        for student_dict_1 in self.student_list:
            if name_del in student_dict_1[\"name\"]:
                self.student_list.remove(student_dict_1)
                print()
                print(\"删除%s信息成功!\" % name_del)
                print()
                break
        else:
            print()
            print(\"您输入的学生姓名错误,请重新输入\")
            print()
    #修改学生
    def xiugai(self):
        name_xiugai=input(\"请输入想要修改的学生姓名:\")


        for student_dict_1 in self.student_list:

            if name_xiugai == student_dict_1[\"name\"]:
                print()
                print(\"-----修改界面-----\")
                print()
                print(\"姓名\\t\\t\", \"班级\\t\\t\", \"年龄\\t\\t\", \"电话号\\t\\t\", \"家庭住址\\t\\t\")
                print(\"%s\\t\\t%s\\t\\t%s\\t\\t%s\\t\\t%s\" %(student_dict_1[\"name\"],
                                                     student_dict_1[\"class\"],
                                                     student_dict_1[\"age\"],
                                                     student_dict_1[\"phone\"],
                                                     student_dict_1[\"address\"]))
                #回车不修改

                student_dict_1[\"name\"]=self.new_input(student_dict_1[\"name\"],\"请输入修改后的学生姓名[回车不修改]:\")
                student_dict_1[\"class\"]=self.new_input(student_dict_1[\"class\"],\"请输入修改后的学生班级[回车不修改]:\")
                student_dict_1[\"age\"]=self.new_input(student_dict_1[\"age\"],\"请输入修改后的学生年龄[回车不修改]:\")
                student_dict_1[\"phone\"]=self.new_input(student_dict_1[\"phone\"],\"请输入修改后的学生手机号[回车不修改]:\")
                student_dict_1[\"address\"]=self.new_input(student_dict_1[\"address\"],\"请输入修改后的学生家庭地址[回车不修改]:\")
                print()
                print(\"修改成功!\")
                print()
                break
        else:
            print()
            print(\"您输入的学生姓名错误,请重新输入\")
            print()

    #查找学生
    def find(self):
        find_name=input(\"请输入需要查找的学生姓名:\")
        for student_dict_1 in self.student_list:

            if find_name == student_dict_1[\"name\"]:
                print()
                print(\"-----查询结果界面-----\")
                print()
                print(\"姓名\\t\\t\", \"班级\\t\\t\", \"年龄\\t\\t\", \"电话号\\t\\t\", \"家庭住址\\t\\t\")
                print(\"%s\\t\\t%s\\t\\t%s\\t\\t%s\\t\\t%s\" % (student_dict_1[\"name\"],
                                                      student_dict_1[\"class\"],
                                                      student_dict_1[\"age\"],
                                                      student_dict_1[\"phone\"],
                                                      student_dict_1[\"address\"]))
            else:
                print()
                print(\"-----查询结果界面-----\")
                print()
                print(\"无此学生信息\")

    #显示所有学生信息
    def showall(self):

        if len(self.student_list)>0:
            print()
            print(\"-----显示所有学生信息-----\")
            print()
            print(\"姓名\\t\\t\", \"班级\\t\\t\", \"年龄\\t\\t\", \"电话号\\t\\t\", \"家庭住址\\t\\t\")
            for student_dict_1 in self.student_list:

                print(\"%s\\t\\t%s\\t\\t%s\\t\\t%s\\t\\t%s\" % (student_dict_1[\"name\"],
                                                      student_dict_1[\"class\"],
                                                      student_dict_1[\"age\"],
                                                      student_dict_1[\"phone\"],
                                                      student_dict_1[\"address\"]))
        else:
            print()
            print(\"暂无数据!\")
            print()
    #设置用户不输入内容返回原值,输入内容返回新内容
    def new_input(self,yuanzhi,message):
        self.input_str=input(message)

        if len(self.input_str)>0:
            return self.input_str
        else:
            return yuanzhi


    #保存数据至文件中
    def save_file(self):

        f = open(\"student2.txt\", \'w\', encoding=\'utf-8\')
        f.write(str(self.student_list))
        f.close()
        print(\"数据保存至student1.txt文件成功!\")


    #将数据读取至变量中
    def read_file(self):

         if os.path.exists(\'student2.txt\'):
            f = open(\'student2.txt\', \'r\', encoding=\'utf-8\')
            ret = f.read()

            self.student_list=eval(ret)
            f.close()
            print(\"数据读取成功!\")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容