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


Posted in Python onJune 05, 2022

本文实例为大家分享了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}'

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


Tags in this post...

Python 相关文章推荐
简单介绍Python的Tornado框架中的协程异步实现原理
Apr 23 Python
在Django中创建第一个静态视图
Jul 15 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
tensorflow 加载部分变量的实例讲解
Jul 27 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 Python
用Python实现一个打字速度测试工具来测试你的手速
May 28 Python
Python基础知识学习之类的继承
May 31 Python
Python使用pyecharts控件绘制图表
Jun 05 #Python
Python使用openpyxl模块处理Excel文件
Jun 05 #Python
Python中requests库的用法详解
Jun 05 #Python
Python加密与解密模块hashlib与hmac
Jun 05 #Python
Python日志模块logging用法
Jun 05 #Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 #Python
Python四款GUI图形界面库介绍
You might like
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
PHP 第二节 数据类型之转换
2012/04/28 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
python 布尔操作实现代码
2013/03/23 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
学生档案自我鉴定
2013/10/07 职场文书
机械系大学毕业生推荐信
2013/11/27 职场文书
学院书画协会部门职责
2013/11/28 职场文书
学习自我鉴定
2014/02/01 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL