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中条件选择和循环语句使用方法介绍
Mar 13 Python
Python抓取Discuz!用户名脚本代码
Dec 30 Python
Python中函数的多种格式和使用实例及小技巧
Apr 13 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
python基础教程项目五之虚拟茶话会
Apr 02 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
python 3调用百度OCR API实现剪贴板文字识别
Sep 04 Python
TensorFlow实现Logistic回归
Sep 07 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
Python下利用BeautifulSoup解析HTML的实现
Jan 17 Python
django日志默认打印request请求信息的方法示例
May 17 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 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实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
jquery validate demo 基础
2015/10/29 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
Python中bisect的用法
2014/09/23 Python
Python装饰器使用示例及实际应用例子
2015/03/06 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
期末自我鉴定
2014/01/23 职场文书
电子信息工程自荐信
2014/05/26 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL