djdjdj123

一.前言

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

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

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

二.开发环境:

我用到的开发环境

  • 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(\'姓名\t语文\t数学\t英语\t总分\')

for stu in students:
    # print(stu)
    print(f\'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{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(\'姓名\t语文\t数学\t英语\t总分\')
        print(f\'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{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(\'姓名\t语文\t数学\t英语\t总分\')

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

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

        # 先遍历所有学生
        for stu in students:
            # 如果满足条件, 就是查询到了
            if name == stu[\'name\']:
                print(\'姓名\t语文\t数学\t英语\t总分\')
                print(f\'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{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基础入门教程推荐:←点击左边蓝色文字就可以跳转观看了

分类:

技术点:

相关文章:

  • 2021-12-26
  • 2021-12-19
  • 2021-12-19
  • 2021-09-16
  • 2022-01-09
  • 2021-05-11
  • 2021-12-26
  • 2021-12-26
猜你喜欢
  • 2021-12-26
  • 2021-09-30
  • 2021-12-19
  • 2021-05-22
  • 2021-12-26
  • 2022-12-23
  • 2021-12-26
相关资源
相似解决方案