Python基础案例练习:制作学生信息管理系统

Python基础案例练习:制作学生信息管理系统

一.前言

学生信息管理系统,相信大家或多或少都有做过

最近看很多学生作业都是制作一个学生信息管理系统

于是,今天带大家做一个简单的学生信息管理系统

二.开发环境:

我用到的开发环境

  • Python 3.8
  • Pycharm 2021.2

三.涉及知识点

  • Python基础语法
  • 基本的数据类型与结构
  • 基本的逻辑控制语句
  • 实战小项目

四.接下来我们开始敲代码

我们一步步来完成学生信息管理系统

第一步:制作学生信息管理系统的界面

  1. 程序启动,显示信息管理系统欢迎界面,并显示功能菜单 (print)
  2. 用户用数字选择不同的功能 (input)
  3. 根据功能选择,执行不同的功能 (if 判断 多分支选择)
  4. 需要记录学生的 姓名、语文成绩、数学成绩、英语成绩 、总分 (input, 数据容器存储输入的学生信息)
  5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)
  6. 进入或退出时加载或保存数据 (文件操作)
"""
str_info = """**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息

0. 退出系统
**************************************************"""


while True:
    # 1. 程序启动,显示信息管理系统欢迎界面,并显示功能菜单 (print)
    print(str_info)
    # 2.用户用数字选择不同的功能(input)
    action = input("请选择你要进行的操作(输入数字):")
    if action == "1":
        print("1. 新建学生信息")
    elif action == "2":
        print("2. 显示全部信息")
    elif action == "3":
        print("3. 查询学生信息")
    elif action == "4":
        print("4. 删除学生信息")
    elif action == "5":
        print("5. 修改学生信息")
    elif action == "0":
        print("0. 退出系统")
        break
    else:
        print("请输入正确的选项!")

效果:

**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息

0. 退出系统
**************************************************

第二步:新建学生信息

需要记录学生的 姓名、语文成绩、数学成绩、英语成绩 、总分 (input, 数据容器存储输入的学生信息)

name = input("请输入学生的姓名:")
chinese = int(input("请输入学生的语文成绩:"))
math = int(input("请输入学生的数学成绩:"))
english = int(input("请输入学生的英语成绩:"))

total = chinese + math + english

# 用什么数据容器接受比较好?  存储信息, 取值  采用字典
students = [
    {"name": name, "chinese": chinese, "math": math, "english": english, "total": total}
]

print(students)

第三步:显示全部学生信息

students = [
    {"name": "正心", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "张三", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "李四", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "王五", "chinese": 59, "math": 59, "english": 59, "total": 177},
]

print("姓名	语文	数学	英语	总分")

for stu in students:
    # print(stu)
    print(f"{stu["name"]}	{stu["chinese"]}		{stu["math"]}		{stu["english"]}		{stu["total"]}")

第四步:查询学生信息

students = [
    {"name": "正心", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "张三", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "李四", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "王五", "chinese": 59, "math": 59, "english": 59, "total": 177},
]

# 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)

name = input("请输入你要查询学生的姓名:")

# 先遍历所有学生
for stu in students:
    # 如果满足条件, 就是查询到了
    if name == stu["name"]:
        print("姓名	语文	数学	英语	总分")
        print(f"{stu["name"]}	{stu["chinese"]}		{stu["math"]}		{stu["english"]}		{stu["total"]}")
        # 一旦查询到了就停止查询
        break

else:
    # 没找到
    print("该学生不存在, 请检查名字是否输入正确!")

第五步:修改学生信息

import pprint

students = [
    {"name": "正心", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "张三", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "李四", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "王五", "chinese": 59, "math": 59, "english": 59, "total": 177},
]

# 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)

name = input("请输入你要修改学生的姓名:")

# 先遍历所有学生
for stu in students:
    # 如果满足条件, 就是查询到了, 找到了这个学生
    # 找到了需要修改的学生
    if name == stu["name"]:
        # 不想修改, 直接回车
        print("(如果不想修改,直接回车!)")
        name = input("请重新输入学生的姓名:")
        chinese = input("请重新输入学生的语文成绩:")
        math = input("请重新输入学生的数学成绩:")
        english = input("请重新输入学生的英语成绩:")
        # total = chinese + math + english

        # 用户输入了数据才修改
        if name:
            stu["name"] = name
        if chinese:
            stu["chinese"] = int(chinese)
        if math:
            stu["math"] = int(math)
        if english:
            stu["english"] = int(english)

        stu["total"] = stu["chinese"] + stu["math"] + stu["english"]

        break

else:
    # 没找到
    print("该学生不存在, 请检查名字是否输入正确!")

pprint.pprint(students)

第六步: 删除学生信息

import pprint

students = [
    {"name": "正心", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "张三", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "李四", "chinese": 59, "math": 59, "english": 59, "total": 177},
    {"name": "王五", "chinese": 59, "math": 59, "english": 59, "total": 177},
]

# 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)

name = input("请输入你要删除学生的姓名:")

# 先遍历所有学生
for stu in students:
    # 找到学生
    if name == stu["name"]:
        # 删除学生
        students.remove(stu)
        break

else:
    # 没找到
    print("该学生不存在, 请检查名字是否输入正确!")

pprint.pprint(students)

然后把他们拼接起来,就完成了我们简单的一个学生管理系统!

五、最后代码

import json

str_info = """**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息

0. 退出系统
**************************************************"""

# 读取文件
with open("students.json", mode="r", encoding="utf-8") as f:
    students_str = f.read()

students = json.loads(students_str)

while True:
    # 1. 程序启动,显示信息管理系统欢迎界面,并显示功能菜单 (print)
    print(str_info)
    # 2.用户用数字选择不同的功能(input)
    action = input("请选择你要进行的操作(输入数字):")
    if action == "1":
        print("1. 新建学生信息")
        name = input("请输入学生的姓名:")
        chinese = int(input("请输入学生的语文成绩:"))
        math = int(input("请输入学生的数学成绩:"))
        english = int(input("请输入学生的英语成绩:"))

        total = chinese + math + english
        # 新的学生
        stu = {"name": name, "chinese": chinese, "math": math, "english": english, "total": total}
        students.append(stu)

    elif action == "2":
        print("2. 显示全部信息")
        print("姓名	语文	数学	英语	总分")

        for stu in students:
            print(f"{stu["name"]}	{stu["chinese"]}		{stu["math"]}		{stu["english"]}		{stu["total"]}")

    elif action == "3":
        print("3. 查询学生信息")
        name = input("请输入你要查询学生的姓名:")

        # 先遍历所有学生
        for stu in students:
            # 如果满足条件, 就是查询到了
            if name == stu["name"]:
                print("姓名	语文	数学	英语	总分")
                print(f"{stu["name"]}	{stu["chinese"]}		{stu["math"]}		{stu["english"]}		{stu["total"]}")
                # 一旦查询到了就停止查询
                break

        else:
            # 没找到
            print("该学生不存在, 请检查名字是否输入正确!")

    elif action == "4":
        print("4. 删除学生信息")
        name = input("请输入你要删除学生的姓名:")

        # 先遍历所有学生
        for stu in students:
            # 找到学生
            if name == stu["name"]:
                # 删除学生
                students.remove(stu)
                break

        else:
            # 没找到
            print("该学生不存在, 请检查名字是否输入正确!")
    elif action == "5":
        print("5. 修改学生信息")
        name = input("请输入你要修改学生的姓名:")

        # 先遍历所有学生
        for stu in students:
            # 如果满足条件, 就是查询到了, 找到了这个学生
            # 找到了需要修改的学生
            if name == stu["name"]:
                # 不想修改, 直接回车
                print("(如果不想修改,直接回车!)")
                name = input("请重新输入学生的姓名:")
                chinese = input("请重新输入学生的语文成绩:")
                math = input("请重新输入学生的数学成绩:")
                english = input("请重新输入学生的英语成绩:")
                # total = chinese + math + english

                # 用户输入了数据才修改
                if name:
                    stu["name"] = name
                if chinese:
                    stu["chinese"] = int(chinese)
                if math:
                    stu["math"] = int(math)
                if english:
                    stu["english"] = int(english)

                stu["total"] = stu["chinese"] + stu["math"] + stu["english"]
                break
        else:
            # 没找到
            print("该学生不存在, 请检查名字是否输入正确!")
    elif action == "0":
        print("0. 退出系统")
        with open("students.json", mode="w", encoding="utf-8") as f:
            # 把列表对象转化成字符串  ascii 编码
            students_str = json.dumps(students, ensure_ascii=False)
            f.write(students_str)
            print(students_str)
        break
    else:
        print("请输入正确的选项!")

是不是很简单!欢迎留言讨论!

喜欢记得点赞哦!

最后要是代码看不懂,还有视频教程
学生管理系统视频教程地址:←点击左边蓝色文字就可以跳转观看了
Python基础入门教程推荐:←点击左边蓝色文字就可以跳转观看了

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Python基础案例练习:制作学生信息管理系统