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实现监控linux性能及进程消耗性能的方法
Jul 25 Python
使用Python脚本将文字转换为图片的实例分享
Aug 29 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
详解重置Django migration的常见方式
Feb 15 Python
Python3 中sorted() 函数的用法
Mar 24 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
解决python运行启动报错问题
Jun 01 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
Python如何读写字节数据
Aug 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显示MySQL数据的三种方法
2008/06/05 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
JS验证码实现代码
2017/09/14 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
Python中包的用法及安装
2020/02/11 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
秋季运动会表扬稿
2014/01/16 职场文书
公司聘任书模板
2014/03/29 职场文书
暑期教师培训方案
2014/06/07 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
高三毕业评语
2014/12/31 职场文书
会议欢迎词
2015/01/23 职场文书
英文导游词
2015/02/13 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
利用python做表格数据处理
2021/04/13 Python