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数组条件过滤filter函数使用示例
Jul 22 Python
Python功能键的读取方法
May 28 Python
Python进程间通信用法实例
Jun 04 Python
python实现Windows电脑定时关机
Jun 20 Python
python+Django+pycharm+mysql 搭建首个web项目详解
Nov 29 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
Feb 17 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
May 27 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扩展
2010/03/12 PHP
PHP 文件上传全攻略
2010/04/28 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
javascript通过class来获取元素实现代码
2013/02/20 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
Python科学计算环境推荐——Anaconda
2014/06/30 Python
Django实现自定义404,500页面教程
2017/03/26 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
Python气泡提示与标签的实现
2020/04/01 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
Python中的全局变量如何理解
2020/06/04 Python
python自动生成sql语句的脚本
2021/02/24 Python
会话Bean的种类
2013/11/07 面试题
中学生个人自我评价
2014/02/06 职场文书
党员群众路线承诺书
2014/05/20 职场文书
技术股份合作协议书
2014/10/05 职场文书
综合测评个人总结
2015/03/03 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js