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采用requests库模拟登录和抓取数据的简单示例
Jul 05 Python
深入浅析python继承问题
May 29 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
PyQt5实现拖放功能
Apr 25 Python
Python3中关于cookie的创建与保存
Oct 21 Python
python 实现倒排索引的方法
Dec 25 Python
如何通过python画loss曲线的方法
Jun 26 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
Python ORM框架Peewee用法详解
Apr 29 Python
python实现录制全屏和选择区域录屏功能
Feb 05 Python
Python对excel的基本操作方法
Feb 18 Python
总结几个非常实用的Python库
Jun 26 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 foreach、while性能比较
2009/10/15 PHP
PHP学习之数组值的操作
2011/04/17 PHP
php二维数组用键名分组相加实例函数
2013/11/06 PHP
PHP小技巧之函数重载
2014/06/02 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
vue中如何使用ztree
2018/02/06 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
python框架中flask知识点总结
2018/08/17 Python
如何基于Python批量下载音乐
2019/11/11 Python
python实现翻译word表格小程序
2020/02/27 Python
django从后台返回html代码的实例
2020/03/11 Python
用python实现一个简单的验证码
2020/12/09 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
慈善捐赠倡议书
2014/08/30 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
2015年依法治校工作总结
2015/07/27 职场文书