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将xml xsl文件生成html文件存储示例讲解
Dec 03 Python
python使用7z解压软件备份文件脚本分享
Feb 21 Python
python中使用%与.format格式化文本方法解析
Dec 27 Python
python绘制热力图heatmap
Mar 23 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
python如何给字典的键对应的值为字典项的字典赋值
Jul 05 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
python scipy卷积运算的实现方法
Sep 16 Python
JupyterNotebook设置Python环境的方法步骤
Dec 03 Python
Python文件读写w+和r+区别解析
Mar 26 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 Python
Python四款GUI图形界面库介绍
Jun 05 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 session应用实例 登录验证
2009/03/16 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
ThinkPHP控制器详解
2015/07/27 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
php实现在线考试系统【附源码】
2018/09/18 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
python3 模拟登录v2ex实例讲解
2017/07/13 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
详解django三种文件下载方式
2018/04/06 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
django实现支付宝支付实例讲解
2019/10/17 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
python中if嵌套命令实例讲解
2021/02/25 Python
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
丧事主持词大全
2014/04/02 职场文书
考核评语大全
2014/04/29 职场文书
党支部换届选举方案
2014/05/08 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
党校培训学习心得体会
2016/01/06 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers