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 13 Python
利用python微信库itchat实现微信自动回复功能
May 18 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
python3.x实现发送邮件功能
May 22 Python
Python键盘输入转换为列表的实例
Jun 23 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
python 控制台单行刷新,多行刷新实例
Feb 19 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
了解一下python内建模块collections
Sep 07 Python
Python实现自动装机功能案例分析
Oct 22 Python
python爬取招聘要求等信息实例
Nov 20 Python
详解Python类和对象内容
Jun 22 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
AngularJS入门之动画
2016/07/27 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
如何用python处理excel表格
2020/06/09 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
三星美国官网:Samsung美国
2017/02/06 全球购物
工业学校毕业生自荐信范文
2014/01/03 职场文书
十八大闭幕感言
2014/01/22 职场文书
节约电力资源的建议书
2014/03/12 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
python 破解加密zip文件的密码
2021/04/22 Python
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
MySQL常用慢查询分析工具详解
2022/08/14 MySQL