python实现学生信息管理系统(面向对象)

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

1.主要内容

python种的.py文件如图所示

第一个文件是用来管理文件中包中各个模块的关系的文件

第二个文件是主函数文件,就是在主函数文件调用其余文件和模块

第三个模块式学生信息管理的模块

第四个文件是用来存放学生数据的文件

第五个文件是学生信息的定义和显示模块

python实现学生信息管理系统(面向对象)

2.实现代码

1)第一个文件是包中的管理文件自动生成且不需要修改

2)main.py文件

from managerSystem import *#导入模块managerSystem,可以使用其中的功能

if __name__==\'__main__\':#定义只能在运行main.py文件中运行,才执行的代码
    student_manager=StudentManager()
    student_manager.run()

3)学生信息管理模块

from student import *


class StudentManager(object):

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

    def run(self):
        self.load_student()

        while True:
            self.show_menu()
            ret = int(input(\'请输入数字1——7:\'))
            if ret == 1:
                self.add_student()
            elif ret == 2:
                self.del_student()
            elif ret == 3:
                self.modify_student()
            elif ret == 4:
                self.search_student()
            elif ret == 5:
                self.show_student()
            elif ret == 6:
                self.save_student()
            elif ret == 7:
                break

    @staticmethod#此方法在执行时,不需要传入任何参数
    def show_menu():
        print(\'请选择如下序号:\')
        print(\'1.添加学员\')
        print(\'2.删除学员\')
        print(\'3.修改学员信息\')
        print(\'4.查找学员\')
        print(\'5.显示学员信息\')
        print(\'6.保存学员信息\')
        print(\'7.退出系统\')

    def add_student(self):
        name = input(\'请输入学员姓名:\')
        gender = input(\'请输入学员性别:\')
        tel = input(\'请输入电话号码:\')
        student = Student(name, gender, tel)
        self.student_list.append(student)
        # print(self.student_list)
        # print(student)

    def del_student(self):
        del_name = input(\'请输入需要删除的学员姓名:\')
        for i in self.student_list:
            if i.name == del_name:
                self.student_list.remove(i)
                break
        else:
            print(\'查无此人\')
        # print(self.student_list)

    def modify_student(self):
        modify_name = input(\'请输入需要修改的学员姓名:\')
        for i in self.student_list:
            if i.name == modify_name:
                i.name = input(\'亲输入需要修改的学员姓名:\')
                i.gender = input(\'请输入需要修过的学员性别:\')
                i.tel = input(\'请输入需要修改的学员手机号:\')
                print(f\'修改的信息为{i.name},{i.gender},{i.tel}\')
                break
        else:
            print(\'需要修改的学员不存在\')

    def search_student(self):
        searce_name = input(\'请输入需要查询的学员姓名:\')
        for i in self.student_list:
            if i.name == searce_name:
                print(f\'姓名:{i.name},性别:{i.gender},手机号:{i.tel}\')
                break
        else:
            print(\'查无此人\')

    def show_student(self):
        print(\'姓名:\\t性别:\\t手机号:\')
        for i in self.student_list:
            print(f\'{i.name}\\t{i.gender}\\t{i.tel}\')

    def save_student(self):
        f = open(\'student.data\', \'w\')
        new_list = [i.__dict__ for i in self.student_list]
        print(new_list)
        f.write(str(new_list))
        f.close()

    def load_student(self):
        # 1. 打开文件:尝试r打开,如果有异常w
        try:
            f = open(\'student.data\', \'r\')
        except:
            f = open(\'student.data\', \'w\')
        else:
            # 2. 读取数据:文件读取出的数据是字符串还原列表类型;[{}] 转换 [学员对象]
            data = f.read()  # 字符串
            if data != \'\':  # 此时需要添加判断文件是否为空,否则会发生报错
                new_list = eval(data)
                self.student_list = [Student(i[\'name\'], i[\'gender\'], i[\'tel\']) for i in new_list]
        finally:
            # 3. 关闭文件
            f.close()

4)存储数据的文件不需要编辑

5)student.py文件主要是用来存放学生的主要信息的模块,以及可以查看学生信息的方法

class Student(object):
    def __init__(self, name, gender, tel):
        self.name = name
        self.gender = gender
        self.tel = tel

    def __str__(self):
        return f\'{self.name},{self.gender}, {self.tel}\'

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

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

请登录后发表评论

    暂无评论内容