第八节 学生管理系统 (阶段案例)

学生管理系统

1.1 设计背景

  1. 管理系统,主要任务就是使用计算机对学生的各种信息进行日常管理,如:
    • 添加
    • 删除
    • 修改
    • 查询
    • 退出系统
  2. 程序设计思路
    第八节 学生管理系统 (阶段案例)_第1张图片

1.2 需求设计分析

  1. 打印 “学生管理系统” 的功能菜单,提示用户选择功能序号;
    • print_menu() 打印函数

1.3 具体编写程序步骤

1.3.1 输出提示界面

  1. 程序的功能界面提示信息的作用就是,让用户根据提示进行操作。

    • 注意保存学生信息列表。
    #1.打印提示界面,将界面封装到一个方法中
    	def print_menu():
    	    print('1. 添加学生信息')
    	    print('2. 删除学生信息')
    	    print('3. 修改学生信息')
    	    print('4. 显示学生信息')
    	    #print('6. 查询所有的学生信息')
    	    print('5. 退出系统')
    
    #2.将学生信息保存到列表中
    	student_list_info= []
    
    

1.3.2 管理系统框架搭建

  1. 就是如何调用框架,相当于使用每个功能。

    # 2.框架调用设计
    # 使用循环重复执行
    def main():
        count = 0  # 界面计数
        while True:
            print_menu()  # 调用菜单显示信息
            # 根据菜单信息选择相应提示
            num = input("\t请输入操作编号: ")  # 获取用户输入编号
            count += 1  # 扩展:统计累计次数
            if num == '1':
                # 调用添加函数
                pass
            elif num == "2":
                # 调用删除函数
                pass
            elif num == "3":
                # 调用修改函数
                pass
            elif num == "4":
                # 调用显示学生信息函数
                pass
            elif num == "0":  # 退出循环
    
                # 人性设计思路,细节展示
                answer = input("亲,真心退出么? ")
                if answer == "真心":
                    print("程序结束")  # end
                    break  # 结束整个循环
            else:
                print("输入有误,请重新输入")
            print(f"======跳转界面{count}次数=======")
    
    

1.3.3 添加学生信息

  1. 将需要保存的学员信息保存到要保存的列表中 student_list_info = [] 保存学员列表。
    • 添加方法add_student():
  2. 业务需求,保存学员信息时,需要考虑,如果重复添加情况,所以,学员姓名(学员id)不能重复。
    # 3. 添加学生信息模块:
    def add_student():
        # 3.1 添加学生姓名,性别,手机号
        # 提示,添加学生信息
        new_student_name = input("请录入学生姓名: ")
        # 提示,添加学生性别
        new_student_sex = input("请录入学生性别: ")
        # 提示,添加学生手机号
        new_student_phone = input("请录入学生手机号: ")
        # 3.2 存储信息 ,使用字典的,以键值对的方式
        new_sturdent_info = {}
    
        # 注意: 加一个校验 ,变量成员变量(函数中有介绍)
        #student_list_info 列表字典信息.
        #通过key进行遍历
        for student_key in student_list_info:
            if student_key['name'] == new_student_name:
                print(f"学生姓名 {new_student_name} 已存在,请输入其他姓名。")
                return
    
        # 3.2.1 将数据添加到字典,new_sturdent_info['key']=值
        # 字典添加键值对的特点:,没有就添加,有就覆盖
        new_sturdent_info['name'] = new_student_name
        new_sturdent_info['sex'] = new_student_sex
        new_sturdent_info['phone'] = new_student_phone
    
        # 3.3需要将新添加的学生信息添加到,学生列表中保存
        # 列表中嵌套字典,每一个元素都是一个学生信息  student_list_info= [{},{},{},{}]
        student_list_info.append(new_sturdent_info)
    
    
    #验证调用: 姓名错误问题.
    #第一次添加
    # add_student()
    # print(student_list_info)
    #第二次添加
    # add_student()
    # print(student_list_info)
    

1.3.4 删除学生信息

  1. 删除信息,以名字为主。
    • 删除方法 ,delete_student()
  2. 业务需求:
    • 如果没有请提示信息 。
#1.预先设计调用
	#student_list_info= [{"name":'吴琼',"age":18},{"name":'吴琼2',"age":19}]
#4.删除学生信息
def delete_student():
    #姓名是唯一id不能重复
    key = input("请输入要删除学生的姓名: ")
    for student_info in student_list_info:
        if student_info['name'] == key:
            #如果相同则移除.
            student_list_info.remove(student_info)
            print("删除成功")
        else:
            print("姓名不存在")
            break #跳出即可

#删除
delete_student()
print(student_list_info)

1.3.5 修改学生信息

  1. 根据学生姓名进行修改,然后将修改后的参数保存在 “列表中的字典”, 并将这些输入的信息替换字典中的旧信息。

    • 修改方法 update_student()
    # 5. 修改学生信息
    def update_student():
        student_name = input("请输入要修改学生的姓名: ")
        # 遍历获取学生信息
        for student_info in student_list_info:
            if student_info['name'] == student_name:
                new_name = input("请输入修改后的名字: ")
                new_sex = input("请输入修改后的性别: ")
                new_phone = input("请输入修改后的手机号: ")
    
                # 5.1 将修改的学生信息添加进入
                student_info['name'] = new_name
                student_info['sex'] = new_sex
                student_info['phone'] = new_phone
                print("修改成功")
                break
        else:
            print("修改的姓名不存在")
    
    
    #调用函数
    update_student()
    print(student_list_info)
    

1.3.6 查询学生信息

  1. 通过名字查询信息详情

    • 查询单个方法 search_student()
    #6显示学生信息
    def search_student():
        #根据学生信息查询
        #定义一个标志变量
        flag = False
        student_name = input("请输入要查询的学生名字: ")
        for student_info in student_list_info:
            if student_info['name'] == student_name:
                #默认查询到了
                flag =  True
                #输出信息
                print(f"学生姓名 : {student_info['name']},性别 :{student_info['sex']},手机号:{student_info['phone']}")
    
        if flag==False:
            print("录入的学生姓名不存在!")
    
    #模拟方法调用
    search_student()
    
  2. 查询全部

    • 相当于遍历全部
    ef search_all():
        for student_info in student_list_info:
            print(f"学生姓名 : {student_info['name']},性别 :{student_info['sex']},手机号:{student_info['phone']}")
    

1.4 将所有方法进行组合

  1. 定义函数 print_info() , 打印提示信息.
    • 自定义while True循环逻辑, 实现: 用户录入什么数据, 就进行相应的操作
    • 自定义函数 add_student(), 实现: 添加学生,姓名必须唯一
    • 自定义函数 delete_student(), 实现: 删除学生, 根据姓名删除
    • 自定义函数 update_student(), 实现: 修改学生信息,根据姓名修改: 姓名, 手机号.
    • 自定义函数 search_student(), 实现: 查询某个学生信息,根据姓名查询
    • 自定义函数 search_all(), 实现: 查询所有学生的信息。
# 1.打印提示界面,将界面封装到一个方法中
def print_menu():
    print("====欢迎使用学生管理系统====")
    print('1. 添加学生信息')
    print('2. 删除学生信息')
    print('3. 修改学生信息')
    print('4. 显示学生信息')
    print('5. 查询所有的学生信息')
    print('0. 退出系统')
    print("=================")

# 1.1.学生信息保存到列表中
student_list_info = []


# 2.框架调用设计
# 使用循环重复执行
def main():
    count = 0  # 界面计数
    while True:
        print_menu()  # 调用菜单显示信息
        # 根据菜单信息选择相应提示
        num = input("\t请输入操作编号: ")  # 获取用户输入编号
        count += 1  # 扩展:统计累计次数
        if num == '1':
            print("=== 正在使用[添加学生信息] ===")
            # 调用添加函数
            add_student()

        elif num == "2":
            print("=== 正在使用[删除学生信息] ===")
            # 调用删除函数
            delete_student()
        elif num == "3":
            # 调用修改函数
            print("=== 正在使用[修改学生信息] ===")
            update_student()
        elif num == "4":
            print("=== 正在使用[查询单个学生信息] ===")
            # 调用显示学生信息函数
            search_student()

        elif num =="5":
            print("=== 正在使用[查询全部] ===")
            search_all()

        elif num == "0":  # 退出循环
            # 人性设计思路
            answer = input("亲,真心退出么? ")
            if answer == "真心":
                print("程序结束")  # end
                break  # 结束整个循环
        else:
            print("输入有误,请重新输入")
        print(f"======跳转界面{count}次数=======")


# 3. 添加学生信息模块:
def add_student():
    # 3.1 添加学生姓名,性别,手机号
    # 提示,添加学生信息
    new_student_name = input("请录入学生姓名: ")
    # 提示,添加学生性别
    new_student_sex = input("请录入学生性别: ")
    # 3.2 存储信息 ,使用字典的,以键值对的方式
    new_sturdent_info = {}

    # 注意: 加一个校验 ,变量成员变量(函数中有介绍)
    # student_list_info 列表字典信息.
    # 通过key进行遍历
    for student_key in student_list_info:
        if student_key['name'] == new_student_name:
            print(f"学生姓名 {new_student_name} 已存在,请输入其他姓名。")
            return

    # 3.2.1 将数据添加到字典,new_sturdent_info['key']=值
    # 字典添加键值对的特点:,没有就添加,有就覆盖
    new_sturdent_info['name'] = new_student_name
    new_sturdent_info['sex'] = new_student_sex

    # 3.3需要将新添加的学生信息添加到,学生列表中保存
    # 列表中嵌套字典,每一个元素都是一个学生信息  student_list_info= [{},{},{},{}]
    student_list_info.append(new_sturdent_info)

# 4.删除学生信息
def delete_student():
    # 姓名是唯一id不能重复
    key = input("请输入要删除学生的姓名: ")
    for student_info in student_list_info:
        if student_info['name'] == key:
            # 如果相同则移除.
            student_list_info.remove(student_info)
            print("删除成功")
            break
    else:
        print("姓名不存在")

# 5. 修改学生信息
def update_student():
    student_name = input("请输入要修改学生的姓名: ")
    # 遍历获取学生信息
    for student_info in student_list_info:
        if student_info['name'] == student_name:
            new_name = input("请输入修改后的名字: ")
            new_sex = input("请输入修改后的性别: ")

            # 5.1 将修改的学生信息添加进入
            student_info['name'] = new_name
            student_info['sex'] = new_sex
            print("修改成功")
            break
    else:
        print("修改的姓名不存在")

#6显示学生信息
def search_student():
    #根据学生信息查询
    #定义一个标志变量
    flag = False
    student_name = input("请输入要查询的学生名字: ")
    for student_info in student_list_info:
        if student_info['name'] == student_name:
            #默认查询到了
            flag =  True
            #输出信息
            print(f"学生姓名 : {student_info['name']},性别 :{student_info['sex']}")

    if flag==False:
        print("录入的学生姓名不存在!")


def search_all():
    for student_info in student_list_info:
        print(f"学生姓名 : {student_info['name']},性别 :{student_info['sex']}")



# 调用一个主方法
main()

你可能感兴趣的:(Python的快速入门,python,开发语言)