学生管理系统


# 添加学员函数
def add_student():
    # 输入学员姓名、年龄、电话
    name = input('请输入学员姓名:')
    age = input('请输入学员年龄:')
    phone = input('请输入学员电话:')
    # nameagephone放在小列表中
    student = [name, age, phone]
    # 把小列表添加到所有学员的大列表中
    # append(object)  insert(index, object)  extend(iterable)
    student_list.append(student)
    print('******添加学员成功******')

# 查询学员函数
def query_student():
    # 1.查询所有学员
    # 2.输入学员姓名查询学员  得到查询的学员的序号

    print('**********学员信息列表***********')
    # 遍历大列表
    for x in range(0, len(student_list)):
        # 根据x的值  从大列表中取出小列表2
        student = student_list[x]
        # 从小列表中取出姓名、年龄、电话
        name = student[0]
        age = student[1]
        phone = student[2]
        print('序号:%s 姓名:%s 年龄:%s 电话:%s' % (x, name, age, phone))

# 修改学员函数
def update_student():

    # 判断是否有学员信息,如果没有,直接结束函数的执行
    if len(student_list) == 0:
        print('没有学员信息,无法进行修改操作!')
        # 强制结束函数的执行 return 下面的代码 都不会再执行了
        return
    # 1.查询学员信息
    query_student()
    # 2.选择要修改的学员序号
    num = input('请选择要修改的学员序号:')
    # 3.转换为整数
    num = int(num)
    # 4.判断选择学员序号是否在范围内
    while num not in range(0, len(student_list)):
        # 不在范围,重新选择
        num = input('没有该序号,请重选:')
        num = int(num)
    # 5.根据选择的序号取出对应的学员信息小列表
    student = student_list[num]
    new_name = input('请输入修改后的姓名(%s)'%student[0])
    new_age  = input('请输入修改后的年龄(%s)'%student[1])
    new_phone = input('请输入修改后的电话(%s)'%student[2])
    # 6.修改小列表中的数据
    student[0] = new_name
    student[1] = new_age
    student[2] = new_phone
    print('----修改数据完成----')

# 删除学员信息
# 1.根据学员序号删除  2.删除所有学员  3.根据学员姓名删除(有同名的,把同名的都删除)
def delete_student():

    if len(student_list) == 0:
        print('没有学员信息,无法执行删除操作!')
        return

    print('1.根据学员序号删除')
    print('2.删除所有学员')
    # 获取输入的内容 并转换为整数类型
    num = int(input('请选择您的操作:'))
    while num not in range(1, 3):
        num = int(input('选项错误,请重选:'))
    # 判断选择选项
    if num == 1:
        # 1.展示所有学员的信息
        query_student()
        # 2.选择删除的序号
        index = int(input('请输入要删除的学员序号:'))
        # 3.判断选择序号是否在范围内
        while index not in range(0, len(student_list)):
            index = int(input('没有该序号,请重选:'))
        # 4.删除指定索引的数据
        del student_list[index]
        # student_list.pop(index)
    else:
        # 确认删除
        rs = input('确定要删除所有信息?y(确定)/n(取消)')
        if rs == 'y':
            # 删除列表中的所有的数据
            student_list.clear()
        else:
            print('删除数据操作已取消!')

# 声明保存数据的函数
def save_data():
    # 1.打开文件
    file_handle  = open('students_v2.txt', mode='w')
    # 2.for循环遍历大列表
    for student in student_list:
        # 把列表中的数据用 空格分开并拼接为一个字符串
        s = ' '.join(student)
        # 写入
        file_handle.write(s)
        file_handle.write('\n')
# 读取数据
# 引入os模块
import os
def read_data():
    # 1.判断文件是否存在
    rs = os.path.exists('students_v2.txt')
    if rs == True:
        # 2.打开文件
        file_handle = open('students_v2.txt', mode='r')
        # 3.读取所有行
        contents = file_handle.readlines()
        for msg in contents:
            # 去除\n
            msg = msg.strip('\n')
            # 使用 空格分隔字符串,得到列表
            student = msg.split(' ')
            # 将小列表添加到大列表中
            student_list.append(student)

# 1.声明大列表,存放所有学员信息
student_list = []
# 读取本地数据
read_data()
# 2.while循环
while True:
    print('*******学员管理系统V2.0********')
    print('*******出品人:智游集团********')
    print('1.添加学员')
    print('2.查询学员')
    print('3.修改学员')
    print('4.删除学员')
    print('0.退出程序')
    print('******************************')
    # 选择操作
    num = input('请选择您的操作:')
    # 转换为整数
    num = int(num)
    # 判断选择的选项是否在范围内
    while num not in range(0, 5):
        # 重新选择
        num = input('没有该选项,请重选:')
        # 把字符串类型转换整数类型
        num = int(num)
    # 根据选择的选项执行对应的操作
    if num == 1:
        # 调用添加学员的函数
        add_student()
        save_data()
    elif num == 2:
        # 调用查询学员的函数
        query_student()
    elif num == 3:
        # 调用修改学员的函数
        update_student()
        save_data()
    elif num == 4:
        # 调用删除学员的函数
        delete_student()
        save_data()
    else:
        print('程序已结束!')
        break
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值