需求 将学生信息存储起来(数据能多次使用)并能进行相关的增删改查
思路 将学生信息存放在字典中,然后在将所有学生信息存放到文件中,通过对文件进行操作来达到对学生信息的增删改查等操作
说明 这个版本只是对上一个版本进行了功能的扩充(能将数据保存到文件中),我会尽快将版本更新到模块层次(类)。
语言 python
代码实现

import os
# 学生信息管理系统
student_list = []  # 定义一个列表来存放全部学生信息


# 菜单函数
def show_meun():
    print("-----学生管理系统v1.0-----")
    print("1. 添加学生")
    print("2. 删除学生")
    print("3. 修改学生信息")
    print("4. 查询学生信息")
    print("5. 显示所有学生信息")
    print("6. 退出")


# 输入函数
def add_student():
    student_dict = {}

    name = input("请输入姓名:")
    sex = input("请输入性别:")
    age = int(input("请输入年龄:"))

    student_dict['name'] = name
    student_dict['sex'] = sex
    student_dict['age'] = age

    student_list.append(student_dict)


# 删除函数
def del_student():
    student_name = input("请输入你想删除学生的姓名:")
    for index, student_dict_name in enumerate(student_list):
        if student_dict_name['name'] == student_name:
            del student_list[index]
        else:
            print('输入有误!')


# 修改函数
def modify_student():
    student_name = input("请输入你想修改学生的姓名:")
    for student_dict_name in student_list:
        if student_dict_name['name'] == student_name:

            name = input("修改后的姓名为:")
            sex = input("修改后的性别为:")
            age = int(input("修改后的年龄为:"))

            student_dict_name['name'] = name
            student_dict_name['sex'] = sex
            student_dict_name['age'] = age
        else:
            print('输入有误!')


# 查询函数
def show_student():
    student_name = input("请输入你想查询学生的姓名:")

    for student_dict_name in student_list:
        if student_dict_name['name'] == student_name:
            print('你所查询的学生信息为:')
            print(student_dict_name)
        else:
            print("查无此人!")


# 显示函数
def show_student_list():
    for n in range(0, len(student_list)):
        print(f'第{n+1}位学号为:{n + 1},学生信息为:{student_list[n]}')


# 保存数据函数
def save_data():
    with open('student_list.data', 'w', encoding='utf-8') as f:
        student_list_str = str(student_list)
        f.write(student_list_str)


# 加载文件函数
def load_data():
    if os.path.exists('student_list.data'):
        with open('student_list.data', 'r', encoding='utf-8') as f:
            file_data = f.read()
            new_student_list = eval(file_data)  # 将读取的字符串完全提取出来
            student_list.extend(new_student_list)


# 启动函数
def run():
    load_data()  # 启动程序前先加载以前的数据
    while True:

        show_meun()
        menu_option = input("请输入你想进行操作的序号:")
        if menu_option == "1":
            print("添加学生")
            add_student()
        elif menu_option == "2":
            print("删除学生")
            if len(student_list) == 0:
                print("还没有学生信息")
            else:
                del_student()
        elif menu_option == "3":
            print("修改学生信息")
            if len(student_list) == 0:
                print("还没有学生信息")
            else:
                modify_student()
        elif menu_option == "4":
            print("查询学生信息")
            if len(student_list) == 0:
                print("还没有学生信息")
            else:
                show_student()
        elif menu_option == "5":
            print("显示所有学生信息")
            show_student_list()
        elif menu_option == "6":
            print("退出")
            save_data()  # 在程序退出前保存数据到文件中
            break


run()

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐