使用列表[ ]、字典{ }的学生管理系统-python分模块编程

学生管理系统

  • 列表[ ]存放所有学生
  • 字典{ }存放学生信息
class_list = [{"姓名":"张三","年龄":88,"成绩":88},{"姓名":"李四","年龄":1,"成绩":100}]

代码实现

main.py

#      学生管理系统
import defSystem # 导入当前路径下的defSystem 脚本

# 要求使用函数的方式来完成
def print_menu():
    print("---------------------------")
    print("      学生管理系统 V1.0")
    print(" 1:添加学生")
    print(" 2:删除学生")
    print(" 3:修改学生")
    print(" 4:查询学生")
    print(" 5:显示所有学生")
    print(" 6:退出系统")
    print("---------------------------")

print_menu()
while 1:
    print("---------------------------")
    choose=int(input("请输入选择:"))
    if choose==1: #1:添加学生
        defSystem.add_stu()

    elif choose==2:#2:删除学生
        defSystem.del_stu()

    elif choose==3:#3:修改学生
        defSystem.mod_stu()

    elif choose == 4:  # 4:查询学生
        defSystem.check_stu()

    elif choose == 5:  # 5:显示所有学生
        defSystem.show_stu()

    else :#6:退出系统
        break

defSystem.py

# 定义一个全局列表,来存放所有学生
class_list = []
#1:添加学生
def add_stu():
    # 使用global 关键字作为提前声明,变量使用的是全局变量
    global class_list   #  列表
    # 字典,来存放学生信息
    name={}
    name["姓名"]=input("请输入姓名:")
    for s in class_list:
        if s.get("姓名")==name["姓名"]:
            print("[%s]学生存在" % (name["姓名"]))
            return -1
    name["年龄"] = input("请输入年龄:")
    name["成绩"] = input("请输入成绩:")
    # 把字典存在列表中
    class_list.append(name)
    print("添加学生:[%s]成功" % (name["姓名"]))


# 2: 删除学生
def del_stu():
    # 使用global 关键字作为提前声明,变量使用的是全局变量
    global class_list       #  列表
    # 执行标志位
    flag=0
    names = input("请输入删除学生姓名:")
    # 从列表中查找
    for s in class_list :           #列表中每个字典
        if s.get("姓名")==names:     #访问字典中key为 "姓名"的值
            class_list.remove(s)     # 从列表中删除该字典
            print("删除学生:[%s]成功" % (names))
            flag = 1

    if flag==0 :
        print("[%s]学生不存在"%(names))


# 3:修改学生
def mod_stu():
    # 使用global 关键字作为提前声明,变量使用的是全局变量
    global class_list
    # 执行标志位
    flag = 0
    # 字典,来存放学生信息
    name = {}
    names=input("请输入修改学生姓名:")
    # 从列表中查找
    # 列表元素下标
    i=0
    for s in class_list:  # 列表中每个字典
        if s.get("姓名") == names:  # 访问字典中key为 "姓名"的值
            name["姓名"] = input("请修改姓名:")
            name["年龄"] = input("请修改年龄:")
            name["成绩"] = input("请修改成绩:")
            class_list[i]=name
            print("修改成功")
            print("姓名       年龄      成绩")
            print("%3s"%(name["姓名"]),"      ",name["年龄"],"      ", name["成绩"] )
            flag = 1
        i+=1 # 列表元素下标递增

    if flag==0 :
        print("[%s]学生不存在"%(names))


# 4:查询学生
def check_stu():
    # 使用global 关键字作为提前声明,变量使用的是全局变量
    global class_list

    names=input("请输入查询学生姓名:")
    for s in class_list:  # 列表中每个字典
        if s.get("姓名") == names:  # 访问字典中key为 "姓名"的值
            print("查询到学生:")
            #打印该学生信息
            for key, value in s.items():
                print(key, end="     ")
            print()
            for key, value in s.items():
                print("%3s" % (value), end="     ")
            print()
            flag = 1
    if flag == 0:
            print("[%s]学生不存在" % (names))

# 5:显示所有学生
def show_stu():
    # 使用global 关键字作为提前声明,变量使用的是全局变量
    global class_list
    i = 0
    for s in class_list:  # 列表中每个字典
        #打印该学生信息
        if i==0: #key只需要打印一次
            for key, value in s.items():
                print(key, end="     ")
            print()
        for key, value in s.items():
            print("%3s"%(value), end="     ")
        print()
        i += 1
    print(" " * 15, "共[%d]人" % i)

执行结果

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值