python实现学生信息管理系统(面向对象)
来源:脚本之家    时间:2022-06-06 10:55:14

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

1.主要内容

python种的.py文件如图所示

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

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

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

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

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

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}"

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

关键词: 信息管理 学生信息管理系统 关闭文件 为大家分享 是否为空

上一篇:

下一篇:

X 关闭

X 关闭