Python3练习:学生信息管理系统

"""
学生信息管理系统
需求:进入系统显示系统功能界面,功能如下
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询学生信息
5.显示所有学生信息
6.退出系统
"""

import sys

def print_line():
    """打印横线"""
    print("-"*15)
def start_system():
    """显示功能界面"""
    global fun_num  #声明全局变量
    print_line()#打印横线
    print("1.添加学生信息\n2.删除学生信息\n3.修改学生信息\n4.查询学生信息\n5.显示所有学生信息\n6.退出系统")#功能列表
    print_line()
    fun_num = input("\n输入你需要的功能编号:")#输入功能需求
    judge_input_result()#调用判断函数判断输入是否合法
def fun_switch():
    """功能开关"""
    global fun_num  # 声明全局变量
    while True:#循环显示功能界面,直到退出系统
        if fun_num == 1:#输入“1”添加学生信息函数
            add_stu_info()
        elif fun_num == 2:#输入“2”删除学生信息函数
            delete_stu_info()
        elif fun_num == 3:#输入“3”修改学生信息函数
            change_stu_info()
        elif fun_num == 4:#输入“4”查询学生信息函数
            check_stu_info()
        elif fun_num == 5:#输入“5”显示所有学生信息函数
            show_all_stu_info_dict()
            start_system()#显示所有学生信息之后要返回功能界面,否则因为while True会无限循环显示所有学生信息
        elif fun_num == 6:#输入“6”退出系统
            print("\n感谢使用,再见!")
            sys.exit()#退出整个系统,用break只能退出本循环
def add_stu_info():
    """增加学生信息"""
    global stu_info_dict#声明全局变量
    add_list = []#定义一个局部空列表
    add_name = input("姓名:")
    if add_name == "quit":#输入quit的时候退出本功能,回到功能界面
        start_system()
    for existing_name in stu_info_dict:#如果字典里已有需要加入的学生信息,则提示
        if add_name==existing_name:
            add_name_2=input("此学生信息已存在,如需修改请输入:1,取消录入请输入:2\n")
            if add_name_2=="1":
                change_stu_info()
            elif add_name_2=="2":
                start_system()
    #把各种信息录入到列表
    add_list.append("性别:" + input("性别:"))
    if add_list[0]=="性别:quit":
        start_system()
    add_list.append("年龄:" + input("年龄:"))
    if add_list[1]=="年龄:quit":
        start_system()
    add_list.append("电话:" + input("电话:"))
    if add_list[2]=="电话:quit":
        start_system()
    stu_info_dict[add_name] = add_list#姓名作为key,与各信息列表存储入全局字典
    # print(stu_info_dict)
def delete_stu_info():
    """删除学生信息"""
    i=0#定义一个触发器,当遍历所有字典都没此人时用下一下提示
    if stu_info_dict == {}:#先检查是否空字典
        print("\n无任何学生信息,请先录入!")
        start_system()
    # print(stu_info_dict)
    delet_name=input("\n输入要删除学生信息的姓名:")
    if delet_name=="quit":#当输入quit时退出本功能,回到主界面
        start_system()
    else:
        for key_name in stu_info_dict:#遍历字典,找到需要删除学生并删除其信息
            if delet_name==key_name:
                del stu_info_dict[key_name]
                # print(stu_info_dict)
                print("\n该学生信息已删除!")
                delete_stu_info()
            elif delet_name!=key_name:#遍历整个字典信息,如果都找不到相关人物,记录下来
                i+=1
    if i==len(stu_info_dict):#遍历整个字典者没此人时提示,并回到功能界面
        print("\n查无此人!")
        delete_stu_info()
def change_stu_info():
    """修改学生信息"""
    change_list = []  # 定义一个局部空列表
    i=0#定义一个触发器,当遍历所有字典都没此人时用下一下提示
    if stu_info_dict == {}:#先检查是否空字典
        print("\n无任何学生信息,请先录入!")
        start_system()
    change_name=input("\n输入要修改学生信息的姓名:")
    if change_name=="quit":#当输入quit时退出本功能,回到主界面
        start_system()
    else:
        for key_name in stu_info_dict:#遍历字典,找到需要修改学生并进入修改功能
            if change_name==key_name:
                # 把各种信息录入到列表
                change_list.append("性别:" + input("性别:"))
                if change_list[0] == "性别:quit":
                    start_system()
                change_list.append("年龄:" + input("年龄:"))
                if change_list[1] == "年龄:quit":
                    start_system()
                change_list.append("电话:" + input("电话:"))
                if change_list[2] == "电话:quit":
                    start_system()
                stu_info_dict[change_name]=change_list
                change_stu_info()
            elif change_name!=key_name:#遍历整个字典信息,如果都找不到相关人物,记录下来
                i+=1
    if i==len(stu_info_dict):#遍历整个字典者没此人时提示,并回到功能界面
        print("\n查无此人!")
        change_stu_info()
def check_stu_info():
    """查询学生信息"""
    i=0#定义一个触发器,当遍历所有字典都没此人时用下一下提示
    if stu_info_dict == {}:#先检查是否空字典
        print("\n无任何学生信息,请先录入!")
        start_system()
    check_name=input("\n输入要查询学生信息的姓名:")
    if check_name=="quit":#当输入quit时退出本功能,回到主界面
        start_system()
    else:
        for key_name,value in stu_info_dict.items():#遍历字典,找到需要查询学生并进入查询功能
            if check_name==key_name:
                #遍历查询
                print_line()
                print(f'{check_name}的个人信息如下:\n{value[0]}\n{value[1]}\n{value[2]}')
                change_stu_info()
            elif check_name!=key_name:#遍历整个字典信息,如果都找不到相关人物,记录下来
                i+=1
    if i==len(stu_info_dict):#遍历整个字典者没此人时提示,并回到功能界面
        print("\n查无此人!")
        change_stu_info()
def show_all_stu_info_dict():
    """显示所有学生信息"""
    if stu_info_dict == {}:#先检查是否空字典
        print("\n无任何学生信息,请先录入!")
        start_system()
    for stu_name,value in stu_info_dict.items():#遍历字典内容并输出信息
        print_line()
        print(f'{stu_name}的个人信息如下:\n{value[0]}\n{value[1]}\n{value[2]}')
def judge_input_result():
    """判断输入是否合法,如合法则运行功能,如不合法则一直循环输入直到输入正确,或者强制退出"""
    global fun_num  # 声明全局变量
    if (fun_num.isdigit() and 1 <= int(fun_num) <= 6):  # 如果输入的是全数字字符串,而且在功能编号范围内,则继续执行功能
        fun_num = int(fun_num)  # 把数字字符串转换为整数
        fun_switch()
    else:
        print_line()
        print("1.添加学生信息\n2.删除学生信息\n3.修改学生信息\n4.查询学生信息\n5.显示所有学生信息\n6.退出系统")
        print_line()
        fun_num = input("\n输入有误,请重新输入:")
        judge_input_result()#输入不正确递归直致输入正确为止
stu_info_dict={}#定义一个全局字典存储学生信息
start_system()#启动系统,显示功能界面

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值