python学习笔记5

这是一个使用Python实现的学员信息管理系统,包括添加、删除、修改和查询学员信息功能,以及数据的保存和加载。系统通过`Student`类表示学员对象,`StudentManager`类管理学员数据,支持交互式操作界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目实战:学员管理系统

main.py

#1.导入管理系统模块
from ManageSystem import *

#2.启动管理系统
#保证是当前文件运行才启动管理系统: if --创建对象并调用run方法
if __name__ == '__main__':
    student_manager = StudentManager()
    student_manager.run()

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}'

ManageSystem.py

from student import *

class StudentManager(object):
    def __init__(self):
        #存储学员数据所用的列表
        self.student_list = []

     #一.程序入口函数
    def run(self):
        #1.加载文件里面的学员数据
        self.load_student()
        while True:
        #2.显示功能菜单
            self.show_menu()
        #3.用户输入目标功能序号
            menu_num = int(input('请输入您需要的功能序号:'))
        #4.根据用户输入的序号执行不同的功能 -- 如果用户输入1:执行添加
            if menu_num == 1:
            #添加学员
                self.add_student()
            elif menu_num == 2:
            #删除学员
                self.del_student()
            elif menu_num == 3:
            #修改学员
                self.modify_student()
            elif menu_num == 4:
            #查询学员信息
                self.search_student()
            elif menu_num == 5:
            #显示所有学员信息
                self.show_student()
            elif menu_num == 6:
            #保存学员信息
                self.save_student()
            elif menu_num == 7:
            #退出系统 -- 退出循环
                break

    #二.系统功能函数
    #2.1显示功能菜单 -- 打印序号的功能对应信息 -- 静态
    @staticmethod
    def show_menu():
        print('请选择如下功能:')
        print('1.添加学员')
        print('2.删除学员')
        print('3.修改学员信息')
        print('4.查询学员信息')
        print('5.显示所有学员信息')
        print('6.保存学员信息')
        print('7.退出系统')

    #2.2添加学员
    def add_student(self):
        #1.用户输入姓名、性别、手机号
        name = input('请输入您的姓名:')
        gender = input('请输入您的性别:')
        tel = input('请输入您的手机号:')

        #2.创建学员对象
        student = Student(name, gender, tel)

        #3.将该对象添加到学员列表
        self.student_list.append(student)

        print(self.student_list)
        print(student)

    #2.3删除学员
    def del_student(self):
        #1.用户输入目标学员姓名
        del_name = input('请输入要删除的学员姓名:')

        #2.如果用户输入的目标学员存在则删除,否则提示学员不存在
        for i in self.student_list:
            if i.name == del_name:
                self.student_list.remove(i)
                break
        else:
            print('查无此人!')
        print(self.student_list)

    #2.4修改学员信息
    def modify_student(self):
        #1.用户输入学员姓名
        modify_name = input('请输入要修改的学员姓名:')

        #2.如果用户输入的目标学员存在则修改姓名、性别、手机号等数据,否则提示学员不存在
        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('查无此人!')

    #2.5查询学员信息
    def search_student(self):
        #1.用户输入学员姓名
        search_name = input('请输入要查询的学员姓名:')

        #2.如果用户输入的目标学员存在,则打印学员信息,否则提示学员不存在
        for i in self.student_list:
            if i.name == search_name:
                print(f'姓名{i.name}, 性别{i.gender}, 手机号{i.tel}')
                break
        else:
            print('查无此人!')

    #2.6显示所有学员信息
    def show_student(self):
        #1.打印表头
        print('姓名\t性别\t手机号')

        #2.打印学员数据
        for i in self.student_list:
            print(f'{i.name}\t{i.gender}\t{i.tel}')


    #2.7保存学员信息
    def save_student(self):
        #1.打开文件
        f = open('student.data', 'w')

        #2.文件写入数据
        #2.1[学员对象] 转换成 [字典]
        new_list = [i.__dict__ for i in self.student_list]

        #2.2文件写入 字符串数据
        f.write(str(new_list))

        #3.关闭文件
        f.close()

    #2.8加载学员信息
    def load_student(self):
        #1.打开文件:尝试r打开,如果有异常用w打开
        try:
            f = open('student.data', 'r')
        except:
            f = open('student.data', 'w')
        else:

        #2.读取数据:文件读取出的数据是字符串,还原列表类型[{}]转换[学员对象]
            data = f.read()
            new_list = eval(data)
            self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
        finally:
            #3.关闭文件
            f.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值