您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python实现学生管理系统的完整代码(面向对象)

51自学网 2021-10-30 22:46:16
  python
这篇教程Python实现学生管理系统的完整代码(面向对象)写得很实用,希望能帮到您。

前言

这个只是使用面向对象的方法写的 构思和学生管理系统(JSON模块)是一样的

file_manager.py

"""Project: ClassStudentCreator: 猫猫Create time: 2021-03-04 08:18IDE: PyCharmIntroduction:https://blog.csdn.net/Cantevenl/article/details/115439530"""base_dir = 'files/'  # 定义一个变量 文件路径# 读文件的函数def read_file(file_name):    try:        with open(base_dir + file_name, 'r', encoding='utf8') as file:            content = file.read()            return content    except FileNotFoundError:        print('文件未找到')def write_file(file_name):    with open(base_dir + file_name, 'w', encoding='utf8') as file:        passdef write_json(file_name, data):    with open(base_dir + file_name, 'w', encoding='utf8') as file:        import json        json.dump(data, file)def read_json(file_name, default_data):    try:        with open(base_dir + file_name, 'r', encoding='utf8') as file:            import json            return json.load(file)    except FileNotFoundError:        # print('文件未找到')        return default_data

tools.py

"""Project: ClassStudentCreator: 猫猫Create time: 2021-03-04 08:20IDE: PyCharmIntroduction:https://blog.csdn.net/Cantevenl/article/details/115439530"""# 加密密码import hashlibdef encrypt_password(passwd, x='zhumaogouniu'):    h = hashlib.sha256()    h.update(passwd.encode('utf8'))    h.update(x.encode('utf8'))    return h.hexdigest()

model.py

"""Project: ClassStudentCreator: 猫猫Create time: 2021-03-04 08:18IDE: PyCharmIntroduction:https://blog.csdn.net/Cantevenl/article/details/115439530"""class Teacher(object):    def __init__(self, name, password):        import tools        self.name = name        self.password = tools.encrypt_password(password)class Student(object):    def __init__(self, name, age, gender):        self.name = name        self.age = age        self.gender = gender    def __str__(self):        return f'{self.name},{self.age},{self.gender}'

index.py

"""Project: ClassStudentCreator: 猫猫Create time: 2021-03-04 12:08IDE: PyCharmIntroduction:https://blog.csdn.net/Cantevenl/article/details/115439530"""# 1.导入管理系统模块import sysimport file_manager  # 导入自己写的读取文件模块import modelimport managerSystemdef register():    # 读取文件,查看文件里是否有数据。如果文件不存在,默认是一个字典    data = file_manager.read_json('data.json', {})    while True:        teacher_name = input('请输入账号(2~6位):')        if not 2 <= len(teacher_name) <= 6:            print('账号不符合要求,请重新输入!')        else:            break    if teacher_name in data:        print('注册失败!该账号已经被注册!')        return    while True:        password = input('请输入密码(6~12位):')        if not 6 <= len(password) <= 12:            print('密码不符合要求,请重新输入!')        else:            break    # 用户名密码都已经输入正确以后 将用户名和密码以key:value形式储存    # 可以创建一个teacher对象    t = model.Teacher(teacher_name, password)    data[t.name] = t.password    file_manager.write_json('data.json', data)def login():    # 读取文件,查看文件里是否有数据。如果文件不存在,默认是一个字典    data = file_manager.read_json('data.json', {})    teacher_name = input('请输入老师账号:')    if teacher_name not in data:        print('登录失败!该账号没有注册!')        return    password = input('请输入密码:')    import tools    if data[teacher_name] == tools.encrypt_password(password):        managerSystem.name = teacher_name        print('登录成功')        student_manager= managerSystem.StudentManager()        student_manager.run()    else:        print('密码错误,登陆失败!')def start():    content = file_manager.read_file('welcome.txt')    while True:        operate = input(content + '/n请选择(1-3):')        if operate == '1':            print('登录')            login()        elif operate == '2':            print('注册')            register()        elif operate == '3':            print('退出')            # break   # 把循环退出            # exit(0)   # 退出整个程序            sys.exit(0)  # 退出程序        else:            print('输入有误!')# 2.启动管理系统# 保证是当前文件运行才启动管理系统 : if -- 创建对象 并且调用run方法if __name__ == '__main__':    start()

managerSystem.py

"""Project: ClassStudentCreator: 猫猫Create time: 2021-03-04 16:12IDE: PyCharmIntroduction:https://blog.csdn.net/Cantevenl/article/details/115439530"""import file_managerfrom model import *name = ''class StudentManager(object):    def __init__(self):        # 存储学院数据 -- 列表        self.student_list = []    # 一.程序入口函数    def run(self):        # 1.加载文件里面的学员数据        self.load_student()        while True:            # 2.显示功能菜单            self.show_menu()            # 3.用户输入目标功能序号            menu_num = input('请输入你需要的功能序号:')            # 4.根据用户输入的序号执行不同的功能            if menu_num == '1':                self.add_student()            elif menu_num == '2':                self.del_student()            elif menu_num == '3':                self.modify_student()            elif menu_num == '4':                self.search_student()            elif menu_num == '5':                self.show_student()            elif menu_num == '6':                self.sava_student()            elif menu_num == '7':                break            else:                print('输入错误')    # 二。系统功能函数    # 2.1 显示功能菜单 ---- 这种方法一般需要使用静态方法    @staticmethod    def show_menu():        content = file_manager.read_file('students_page.txt')        print(content)    # 增加    def add_student(self):        # 1.用户输入信息        name = input('请输入你的姓名:')        age = input('请输入你的年龄:')        gender = input('请输入你的性别:')        # 2. 创建学员对象 -- 类 先导入student模块,在创建对象        student = Student(name, age, gender)        # 3.将该对象添加到学员列表        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 = self.new_input(i.name, '请输入新修改的名字[回车则不修改]:')                i.age = self.new_input(i.age, '请输入新修改的年龄[回车则不修改]:')                i.gender = self.new_input(i.gender, '请输入新修改的性别[回车则不修改]:')                print(f'修改学员信息成功,姓名 {i.name},年龄 {i.age},性别 {i.gender}')                break        else:            print('查无此人')    # 查找    def search_student(self):        search_name = input('请输入想查找的学生名字:')        for i in self.student_list:            if i.name == search_name:                print(f'姓名 {i.name},年龄 {i.age},性别 {i.gender}')                break        else:            print('查无此人')    # 显示全部学生    def show_student(self):        print('姓名/t/t年龄/t性别')        for i in self.student_list:            print(f'{i.name}/t/t{i.age}/t/t{i.gender}')    # 保存学员信息    def sava_student(self):        # 1.打开文件        file = open('files/student.data', 'w')        # 2.数据写入文件        # 2.1 [学员对象] 转换成 [字典]        # 使用列表推导式        new_list = [i.__dict__ for i in self.student_list]        # 2.2 文件写入 字符串数据        file.write(str(new_list))        file.close()    # 加载信息    def load_student(self):        try:            file = open('files/student.data', 'r')        except FileNotFoundError:            file = open('files/student.data', 'w')        else:            # 1.读取数据            data = file.read()            # 2.文件中读取的数据都是字符串且字符串内部为字典数据,            # 故需要转换数据类型再转换字典为对象后存储到学院列表            new_list = eval(data)            # 创建学生类            self.student_list = [Student(i['name'], i['age'], i['gender']) for i in new_list]        finally:            pass            # 3.关闭文件        file.close()    # 重写的input方法    def new_input(self, old, new):        input_str = input(new)        if len(input_str) > 0:            return input_str        else:            return old

执行效果

在这里插入图片描述
在这里插入图片描述

到此这篇关于Python实现学生管理系统的完整代码(面向对象)的文章就介绍到这了,更多相关python学生管理系统内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


pycharm中django框架连接mysql数据库的方法
Python实现学生管理系统的代码(JSON模块)
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。