Python学员信息管理系统(附带os模块)

from os import read,write

l1 = [{'name': 'test', 'age': 'test', 'weight': 'test', 'gender': 'test'}]


def save_data():
    """
    将增加,修改,删除之后的列表中的数据保存在本地中
    :return: None
    """
    # open()函数 1. 本地文件名称 2. 以哪种方式(r(read),w(write)操作文件
    # 如果open()函数采用是w模式,当前文件不存在,会自动创建文件
    file = open('stu.txt', 'w')
    for index, item in enumerate(l1):
        if index == (len(l1)-1):
            file.write('%s %s %s %s %s' % (index+1, item.get('name'), item.get('age'), item.get('weight'), item.get('gender')))
        else:
            file.write('%s %s %s %s %s \n' % (index + 1, item.get('name'), item.get('age'), item.get('weight'), item.get('gender')))
    file.close()


def read_data():
    """
    将增加,修改,删除之后的列表中的数据保存在本地中
    :return: None
    """
    # open()函数 1. 本地文件名称 2. 以哪种方式(r(read),w(write)操作文件
    # 如果open()函数采用是w模式,当前文件不存在,会自动创建文件
    file = open('stu.txt', 'r')
    l1.clear()
    done = 0
    while not done:
        line = file.readline()
        if line != '':
            tmp_list = line.split(' ')
            l1.append({'name': tmp_list[1], 'age': tmp_list[2], 'weight': tmp_list[3], 'gender': tmp_list[4]})
        else:
            done = 1
    file.close()


def menu_son():
    """
    子菜单
    :return: None
    """
    print('1.根据编号删除学员信息')
    print('2.根据学员姓名删除学员信息')
    print('3.删除所有学员信息')


def menu():
    """
    主菜单
    :return: None
    """
    print("""
    1.添加学员:
    2.修改学员信息:
    3.查询学员:
    4.删除学员:
    0.退出程序
    """)


def add():
    """
    添加学员信息
    :return: None
    """
    l1.clear()
    read_data()
    name = input('学员姓名:')
    age = input('学员年龄:')
    weight = input('学员体重:')
    gender = input('学员性别:')
    l1.append({'name': name, 'age': age, 'weight': weight, 'gender': gender})
    print()
    print('添加学员成功')
    save_data()


def modify():
    """
    修改学员信息
    :return: None
    """
    l1.clear()
    read_data()
    if len(l1) == 0:
        print('\n学员信息为空\n')
    else:
        search()
        index = int(input('请输入要修改学员的编号:'))
        while index < 1 or index > len(l1):
            index = int(input('你输入的学员编号有误,请重新选择:'))
        index -= 1
        name = input('请输入新的姓名({}):'.format(l1[index].get('name')))
        age = input('请输入新的年龄({}):'.format(l1[index].get('age')))
        weight = input('请输入新的体重({}):'.format(l1[index].get('weight')))
        gender = input('请输入新的性别({}):'.format(l1[index].get('gender')))
        l1[index]['name'] = name
        l1[index]['age'] = age
        l1[index]['weight'] = weight
        l1[index]['gender'] = gender
        print('\n修改学员信息成功\n')
    save_data()


def search():
    """
    查找学员信息
    :return:None
    """
    l1.clear()
    read_data()
    if len(l1) == 0:
        print('\n学员信息为空\n')
    else:
        for index, item in enumerate(l1):
            print('{} : {} {} {} {}'.format((index+1), item.get('name'), item.get('age'), item.get('weight'), item.get('gender')))

def delete():
    """
    删除学员信息
    :return: None
    """
    l1.clear()
    read_data()
    if len(l1) == 0:
        print('学员信息为空,无法进行删除操作')
    else:
        menu_son()
        num = int(input('请输入你的操作:'))
        if num == 3:
            l1.clear()
            print('\n数据删除成功\n')
        elif num == 1:
            search()
            index = int(input('请输入要删除学员编号:'))
            while index < 1 or index > len(l1):
                index = int(input('你输入的学员编号有误,请重新选择:'))
            index -= 1
            del l1[index-1]
            print('\n数据删除成功\n')
        else:
            search()
            flag = False
            name = input('请输入要删除学员的姓名')
            for stu in l1:
                if name == stu.get('name'):
                    l1.remove(stu)
                    flag = True
                    break
            if flag:
                print('\n数据删除成功\n')
            else:
                print('你输入的学员姓名在学员系统里找不到,delete失败')
    save_data()


while True:
    menu()
    choice = int(input('请选择操作:'))
    while choice < 0 or choice > 5:
        choice = int(input('请重新选择操作:'))
    if choice == 1:
        add()
    elif choice == 2:
        modify()
    elif choice == 3:
        search()
    elif choice == 4:
        delete()
    else:
        break

猜你喜欢

转载自blog.csdn.net/jdq8576/article/details/85754632