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实现的阳历转阴历(农历)算法
Apr 25 Python
python字典序问题实例
Sep 26 Python
Python爬虫模拟登录带验证码网站
Jan 22 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
python使用socket创建tcp服务器和客户端
Apr 12 Python
Python中交换两个元素的实现方法
Jun 29 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
关于Python解包知识点总结
May 05 Python
Django使用Profile扩展User模块方式
May 14 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 Python
python基于tkinter制作无损音乐下载工具
Mar 29 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设计模式之单例模式代码
2016/06/11 PHP
php unlink()函数使用教程
2018/07/12 PHP
js一组验证函数
2008/12/20 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
2015/11/17 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
使用grappelli为django admin后台添加模板
2014/11/18 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
python实现比较文件内容异同
2018/06/22 Python
python脚本开机自启的实现方法
2019/06/28 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
买房协议书
2014/04/11 职场文书
2014年民警工作总结
2014/11/25 职场文书
三行辞职书范文
2015/02/26 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
angular异步验证器防抖实例详解
2022/03/31 Javascript