简易学生信息管理系统—Python版

本文介绍了一个使用Python开发的学生信息管理系统,该系统实现了增、删、改、查等功能,并将数据存储到外部文件。系统采用面向对象的设计,通过学生类和管理系统类实现操作,详细阐述了各个方法的构造和数据存储方式。
摘要由CSDN通过智能技术生成

目录

一、项目需求

二、分析

        学生类:

        管理系统类:

        数据文件:

三、优化

四、项目方法构造

学生类:

管理系统类:

                1、载入数据

                2、导出数据

                3、打印目录

                4、增加学生信息

                5、删除某个学生信息

                6、修改某个学生信息

                7、查询全部学生

                8、查询单个学生

                9、开始运行函数

五、运行截图

添加学生:

修改学生:

删除学生:

六、案例代码

七、总结


一、项目需求

        基本需求:完成系统的增、删、改、查功能

        增加需求:1.使用面向对象的思想开发;2.把学生信息存储到外部文件中


二、分析

        学生类:

                属性:

                        包含三个参数姓名(name)、年龄(age)、电话(tel);其中年龄age为int类型

                方法:

                        __init__ 学生类的初始化方法

        管理系统类:

                属性:

                        学生列表 user_list

                方法:

                        1.__init__ 管理系统初始化方法

                        2.增加学生

                        3.删除学生

                        4.修改学生

                        5.查询全部学生

                        6.查询单个学生

                        7.加载数据

                        8.保存数据

                       9.打印目录方法

        数据文件:

                文件名:stu_data.txt


三、优化

        对于本项目,学生的信息在文件中存储是以列表套字典的格式进行存储,具体格式如图:

        而在学生列表中则是以实例对象的方式进行存储,以减少内存占用,格式如图:


四、项目方法构造

学生类:

class Student(object):
    def __init__(self, _name='', _age=0, _tel=''):
        self.name = _name
        self.age = _age
        self.tel = _tel
        self.stu_dict = {'name': self.name, 'age': self.age, 'tel': self.tel}

           分析:学生类中使用 __init__ 方法定义三个学生属性参数;stu_dict 用来把学生对象转换成字典的形式保存

管理系统类:

                1、载入数据

def data_into(self):
    """载入数据"""
    # 判断文件是否存在 若不存在则退出
    if not os.path.exists('./stu_data.txt'):
         return
    # 如果存在则对数据进行提取、载入,并以实例对象的形式保存到user_liast中
    with open('stu_data.txt', 'r') as f:
        # data_list 为临时变量, 临时保存数据列表
        data_list = eval(f.read())
        if data_list:
            for each in data_list:
                self.user_list.append(Student(each['name'], each['age'], each['tel']))

                2、导出数据

    def save_data(self):
        """导出数据"""
        with open('stu_data.txt', 'w') as f:
            data_list = []
            # 把类对象的字典形式提取出来并转为str形式保存
            # data_list为临时变量,临时保存列表
            for each in self.user_list:
                data_list.append(each.stu_dict)
            f.write(str(data_list))

                3、打印目录

@staticmethod
    def show_menu():
        print('-' * 20)
        print('= 1.  添加学生')
        print('= 2.  删除学生')
        print('= 3.  修改学生')
        print('= 4.  查询全部学生')
        print('= 5.  查询某个学生')
        print('= 6.  保存信息')
        print('= 7.  退出系统')
        print('-' * 20)

                4、增加学生信息

    def add_stu(self):
        """添加学生"""
        name = input('请输入要添加学生的姓名: ')
        # 如果学生姓名重复则重新输入
      
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值