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计算三维矢量幅度的方法
Jun 15 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 Python
速记Python布尔值
Nov 09 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
Python使用numpy实现BP神经网络
Mar 10 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
Python创建字典的八种方式
Feb 27 Python
Python中的类与类型示例详解
Jul 10 Python
Python爬虫之Spider类用法简单介绍
Aug 04 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 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 采集程序原理分析篇
2010/03/05 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
php实现aes加密类分享
2014/02/16 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
php实现简单加入购物车功能
2017/03/07 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
JS Timing
2007/04/21 Javascript
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
python实现简单点对点(p2p)聊天
2017/09/13 Python
wxPython实现文本框基础组件
2019/11/18 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
老同学聚会感言
2014/02/23 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
校园之声广播稿
2015/08/18 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python