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数据结构树和二叉树简介
Apr 29 Python
Python入门篇之列表和元组
Oct 17 Python
python中map、any、all函数用法分析
Apr 21 Python
Python字符串处理之count()方法的使用
May 18 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
详解Django定时任务模块设计与实践
Jul 24 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 Python
python wxpython 实现界面跳转功能
Dec 17 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
基于Django signals 信号作用及用法详解
Mar 28 Python
python:解析requests返回的response(json格式)说明
Apr 30 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 fsockopen解决办法 php实现多线程
2014/01/20 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
Python正则表达式教程之二:捕获篇
2017/03/02 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
美国孕妇装购物网站:Motherhood Maternity
2019/09/22 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
即兴演讲稿
2014/01/04 职场文书
项目合作计划书
2014/01/09 职场文书
调研汇报材料范文
2014/08/17 职场文书
z-index不起作用
2021/03/31 HTML / CSS
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
TypeScript 内置高级类型编程示例
2022/09/23 Javascript