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实现获取网站PR及百度权重
Jan 21 Python
Python实现简单字典树的方法
Apr 29 Python
Python实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
Python求正态分布曲线下面积实例
Nov 20 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
python 使用cycle构造无限循环迭代器
Dec 02 Python
Django使用django-simple-captcha做验证码的实现示例
Jan 07 Python
python中的unittest框架实例详解
Feb 05 Python
Python中相见恨晚的技巧
Apr 13 Python
教你使用Python pypinyin库实现汉字转拼音
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 date()日期时间函数详解
2010/05/16 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
基于php无限分类的深入理解
2013/06/02 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
Bootstrap每天必学之滚动监听
2016/03/16 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
python监控文件或目录变化
2016/06/07 Python
Python可变参数用法实例分析
2017/04/02 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Python猴子补丁知识点总结
2020/01/05 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
python map比for循环快在哪
2020/09/21 Python
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
七年级数学教学反思
2014/01/22 职场文书
小学开学标语
2014/07/01 职场文书
校园运动会广播稿
2014/10/06 职场文书
表扬通报怎么写
2015/01/16 职场文书
大学生实习介绍信
2015/05/05 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL