使用Python实现简单学生管理系统(一)

一. 系统需求分析

我们将开发一个简单的学生管理系统,具备以下功能:
编写学生管理系统,实现增删改查
输入数字0,退出系统
输入数字1,添加学生信息(编号, 名字,年纪,性别)
                    第一个学生id为101 后续学生自动加1
输入数字2,查看所有学生信息
输入数字3,查看指定学生信息
                    输入学生id,显示对应学生信息
输入数字4,修改学生信息
                    输入学生id,输入学生新名字,新年纪,新性别
输入数字5,删除指定学生
                    输入学生id,删除指定学生

二. 数据结构设计

我们将使用Python的列表(list)嵌套字典(dict)来存储学生信息,每个学生是一个字典,包含以下字段:
id: 学生学号(唯一标识)
name: 学生姓名
age: 学生年龄
sex: 学生性别

使用一个列表来存储所有学生字典。

三. 代码实现

# 主菜单
menu = """输入数字0,退出系统
输入数字1,添加学生信息(名字,年纪,性别)
输入数字2,查看所有学生信息
输入数字3,查看指定学生信息
输入数字4,修改学生信息
输入数字5,删除指定学生"""

# 学生列表,用于存储所有学生信息
students = []



while True:
    print(menu)
    option = input("请输入选项:")
    if option not in ["0", "1", "2", "3", "4", "5"]:
        print("请输入正确数字!!!")
    

    # 退出学生管理系统
    elif option == "0":
        break
    
    # 添加学生信息
    elif option == "1":
        sid = 101 if not students else students[-1]["id"] + 1
        while True:
            name = input("请输入学生姓名:")
            if len(name) in range(2, 7):
                break
            else:
                print("学生姓名不合法!")
        while True:
            age = int(input("请输入学生年纪:"))
            if age in range(10, 30):
                break
            else:
                print("学生年纪不合法!")
        while True:
            sex = input("请输入学生性别:")
            if sex in ["男", "女"]:
                break
            else:
                print("学生姓别不合法!")
        temp = {
            "id": sid,
            "name": name,
            "age": age,
            "sex": sex
        }
        students.append(temp)
        print(f"成功添加学生信息,当前共有{len(students)}名学生")


    # 显示所有学生信息
    elif option == "2":
        if len(students) == 0:
            print("暂无学生信息!")
        else:
            for s in students:
                print(f"id:{s['id']}\tname:{s['name']}\tage:{s['age']}\tsex:{s['sex']}")

    # 查询学生信息
    elif option == "3":
        while True:
            f_id = int(input("请输入学生id:"))
            id_list = []
            for s in students:
                id_list.append(s["id"])
            if f_id not in id_list:
                print("请输入存在的学生id")
            else:
                break
        for s in students:
            if f_id == s["id"]:
                print(f"id:{s['id']}\tname:{s['name']}\tage:{s['age']}\tsex:{s['sex']}")

    # 修改学生信息
    elif option == "4":
        while True:
            f_id = int(input("请输入学生id:"))
            id_list = []
            for s in students:
                id_list.append(s["id"])
            if f_id not in id_list:
                print("请输入存在的学生id")
            else:
                break
        for s in students:
            if f_id == s["id"]:
                s.clear()
                while True:
                    name = input("请输入学生姓名:")
                    if len(name) in range(2, 7):
                        break
                    else:
                        print("学生姓名不合法!")
                while True:
                    age = int(input("请输入学生年纪:"))
                    if age in range(10, 30):
                        break
                    else:
                        print("学生年纪不合法!")
                while True:
                    sex = input("请输入学生性别:")
                    if sex in ["男", "女"]:
                        break
                    else:
                        print("学生姓别不合法!")
                s["id"] = f_id
                s["name"] = name
                s["age"] = age
                s["sex"] = sex
                print(f"成功修改学生信息,当前共有{len(students)}名学生")
    
    
    # 删除学生信息
    elif option == "5":
        while True:
            f_id = int(input("请输入学生id:"))
            id_list = []
            for s in students:
                id_list.append(s["id"])
            if f_id not in id_list:
                print("请输入存在的学生id")
            else:
                break
        for s in students:
            if s["id"] == f_id:
                students.remove(s)
                print(f"成功删除id为{f_id}的学生的学生信息,当前共有{len(students)}名学生")

四. 系统功能说明

添加学生信息: 用户输入学生的学号、姓名、年龄和性别,系统将这些信息存储到学生列表中。
删除学生信息: 用户输入学生学号,系统从列表中删除对应的学生信息。
修改学生信息: 用户输入学生学号,然后输入新的姓名、年龄和性别来更新学生信息。
查询学生信息: 用户输入学生学号,系统显示该学生的所有信息。
显示所有学生信息: 系统显示所有已存储的学生信息。

五. 系统优缺点分析

优点:


简单易用: 界面清晰,操作直观。
功能完整: 包含了基本的增删改查功能。
代码结构清晰: 每个功能都有独立的函数,便于维护和扩展。

缺点:


数据不持久: 程序结束后数据会丢失,没有实现数据持久化存储。
输入验证不足: 没有对用户输入进行充分的验证和错误处理。
查询效率低: 使用列表存储,查询效率随着数据量增加而降低。

六. 改进建议

实现数据持久化: 可以使用文件系统或数据库来存储学生信息。
添加输入验证: 对用户输入进行合法性检查,提高系统稳定性。
优化数据结构: 可以使用字典来存储学生信息,以学号为键,提高查询效率。
增加更多功能: 如按成绩排序、统计分析等高级功能。
改进用户界面: 可以考虑使用图形界面,提升用户体验。

结语:


这个简单的学生管理系统展示了如何使用Python基本的数据结构和控制流来实现一个功能完整的小型应用。通过这个项目,我们可以学习到Python的字典和列表操作、函数定义、循环和条件语句等基础知识。同时,它也为我们提供了一个基础,可以在此之上进行更多的改进和扩展,开发出更加复杂和实用的系统。

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值