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 相关文章推荐
Python3遍历目录树实现方法
May 22 Python
简单讲解Python中的字符串与字符串的输入输出
Mar 13 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
浅谈python中的数字类型与处理工具
Aug 02 Python
Python登录并获取CSDN博客所有文章列表代码实例
Dec 28 Python
python正则表达式面试题解答
Apr 28 Python
详谈Numpy中数组重塑、合并与拆分方法
Apr 17 Python
python 实现得到当前时间偏移day天后的日期方法
Dec 31 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
python3通过selenium爬虫获取到dj商品的实例代码
Apr 25 Python
python实现处理mysql结果输出方式
Apr 09 Python
Python+Xlwings 删除Excel的行和列
Dec 19 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
thinkphp控制器调度使用示例
2014/02/24 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
vue实现轮播图帧率播放
2021/01/26 Vue.js
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
python中requests库session对象的妙用详解
2017/10/30 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
python实现简易数码时钟
2021/02/19 Python
python中Lambda表达式详解
2019/11/20 Python
信号生成及DFT的python实现方式
2020/02/25 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
个人批评与自我批评范文
2014/10/17 职场文书
新教师个人工作总结
2015/02/06 职场文书
2015年教师节活动总结
2015/03/20 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
Java设计模式中的命令模式
2022/04/28 Java/Android