import os

# 创建文件全局变量
file_name = "students.txt"


# 显示菜单
def createMenu():
    print("" * 30)
    print("|\t\t\t\t\t\t\t学生管理系统\t\t\t\t\t|")
    print("|\t\t\t\t1.添加学生\t\t\t\t\t\t\t\t\t|")
    print("|\t\t\t\t2.删除学生\t\t\t\t\t\t\t\t\t|")
    print("|\t\t\t\t3.修改学生\t\t\t\t\t\t\t\t\t|")
    print("|\t\t\t\t4.查询学生\t\t\t\t\t\t\t\t\t|")
    print("|\t\t\t\t5.显示所有学生\t\t\t\t\t\t\t\t|")
    print("|\t\t\t\t6.保存数据\t\t\t\t\t\t\t\t\t|")
    print("|\t\t\t\t7.读取数据\t\t\t\t\t\t\t\t\t|")
    print("|\t\t\t\t8.退出系统\t\t\t\t\t\t\t\t\t|")
    print("" * 30)


# 班级所有的信息
# all_dict = {"001": {"no": "001", "name": "小明", "score": "90"}}
all_dict = {}


# 1.添加学生
def add_info():
    # 首先引导用户输入学号
    my_no = input("请输入学号:")
    # 判断用户是否存在
    # 如果不存在,则添加用户信息
    if my_no not in all_dict:
        stu_name = input("请输入学生姓名:")
        stu_score = input("请输入学生成绩:")
        stu_dict = {"no": my_no, "name": stu_name, "score": stu_score}
        all_dict[my_no] = stu_dict
        print("添加学生信息成功……")
    # 如果存在,则打印用户已存在
    else:
        print("学号已经存在……")
        print(all_dict)


# 2. 删除学生
def del_info():
    # 引导用户输入的信息
    my_no = input("请输入用户学号:")
    # 判断用户信息是否存在
    # 如果不存在,打印用户不存在
    if my_no not in all_dict:
        print("用户信息不存在")
    # 如果存在,删除用户信息
    else:
        del all_dict[my_no]
        print("删除学生信息成功")


# 3.修改学生
def change_info():
    # 引导用户输入用户学号
    my_no = input("请输入用户学号:")
    # 判断用户信息是否存在
    if my_no not in all_dict:
        print("用户信息不存在")
    else:
        new_name = input("请输入修改的学生姓名:")
        new_score = input("请输入修改的学生成绩:")

        new_dict = {"no": my_no, "name": new_name, "score": new_score}
        all_dict[my_no] = new_dict
        print("修改后的信息为:……")
        print(all_dict)


# 4.查询学生
def find_info():
    # 引导用户输入学号
    my_no = input("请输入学号:")
    # 判断用户输入的学号是否存在
    # 如果不存在,输出用户信息不存在
    if my_no not in all_dict:
        print("用户信息不存在……")

    # 如果存在,依次输出用户的学号姓名成绩
    else:
        print("学号:%s" % my_no)
        print("姓名:%s" % all_dict[my_no]["name"])
        print("成绩:%s" % all_dict[my_no]["score"])


# 5.显示所有学生
def show_info():
    for stu_dict in all_dict.values():
        print("-" * 10, "***班级信息***", "-" * 10)
        print("学号:%s" % stu_dict["no"])
        print("姓名:%s" % stu_dict["name"])
        print("成绩:%s" % stu_dict["score"])
        print("-" * 37)


# 6.保存数据
def save_info():
    file = open(file_name, "w", encoding="utf-8")
    file.write(str(all_dict))
    file.close()
    print("文件保存成功")
    print("将内存的文件保存到硬盘里")


# 7.读取数据
def read_info():
    # 判断文件是否存在
    # 如果不存在(用户第一次打开程序)
    if not os.path.exists(file_name):
        file = open(file_name, "w", encoding="utf-8")
        file.close()
        print("用户第一次打开,创建一个新的空文件")
    else:
        file = open(file_name, "r", encoding="utf-8")
        ret = file.read()
        global all_dict
        all_dict = eval(ret)
        file.close()
        print("将硬盘里文件存储到内存里")


# 8.退出系统
def exit_info():
    print("退出学生管理系统")


def main():
    while True:
        # 创建菜单项
        createMenu()
        num = int(input("请选择:"))
        if num in range(1, 9):

            if num == 1:
                add_info()

            elif num == 2:
                del_info()

            elif num == 3:
                change_info()

            elif num == 4:
                find_info()

            elif num == 5:
                show_info()

            elif num == 6:
                save_info()

            elif num == 7:
                read_info()

            elif num == 8:
                exit_info()
                break
        else:
            print("请选择正确的选择:")


main()

 

posted on 2019-05-23 20:57  浮生若梦-平  阅读(138)  评论(0编辑  收藏  举报