python实现简易学生信息管理系统

Python实现简易学生信息管理系统

1. 项目介绍

本项目使用Python编程语言实现一个简易的学生信息管理系统。主要功能包括添加、查询和删除学生信息。用户可以通过命令行界面完成这些操作。

2. 环境准备

在开始之前,需要确保已经安装了Python环境和相关的依赖库。推荐使用Python版本为3.x。

3. 实现过程

3.1 初始化项目

首先需要创建一个新的Python文件,命名为student_management_system.py。在文件中添加如下代码:

import json

def load_data():
    try:
        with open('students.json', 'r') as f:
            data = json.load(f)
    except (FileNotFoundError, json.JSONDecodeError):
        data = []
    return data

def save_data(data):
    with open('students.json', 'w') as f:
        json.dump(data, f, indent=4)

上述代码中,load_data函数用于从本地文件中读取数据,如果文件不存在或读取失败,则返回空列表。save_data函数用于将数据保存到本地文件中。

接下来,需要添加如下代码,实现命令行界面的显示:

def display_menu():
    print('=' * 50)
    print('{:^50}'.format('欢迎使用学生信息管理系统'))
    print('-' * 50)
    print('{:<3}{:<13}{:<15}'.format('ID', '姓名', '年龄'))
    print('-' * 50)
    print('{:<3}{:<13}{:<15}'.format('', '', ''))
    print('=' * 50)
    print('1. 添加学生信息')
    print('2. 查询学生信息')
    print('3. 删除学生信息')
    print('0. 退出系统')
    print('=' * 50)

上述代码中,display_menu函数用于显示命令行界面。

3.2 添加学生信息

在添加学生信息时,需要先输入学生的姓名和年龄信息,然后自动生成一个唯一的ID,并将这些信息保存到本地文件中。

def add_student():
    print('请输入学生的姓名:')
    name = input()
    print('请输入学生的年龄:')
    age = input()

    data = load_data()
    student = {
        'id': len(data) + 1,
        'name': name,
        'age': age
    }
    data.append(student)
    save_data(data)

    print('学生信息添加成功!')

上述代码中,add_student函数用于添加学生信息。首先从命令行中读取学生的姓名和年龄信息,然后生成一个唯一的ID,并将学生的信息添加到本地文件中。

3.3 查询学生信息

在查询学生信息时,可以根据学生的ID或姓名进行查询。输入相应的ID或姓名后,系统会返回对应的学生信息。如果查询不到,则输出相应的提示信息。

def search_student():
    print('请选择查询方式(1. 根据ID查询;2. 根据姓名查询):')
    choice = input()

    data = load_data()

    if choice == '1':
        print('请输入学生的ID:')
        id = int(input())
        for student in data:
            if student['id'] == id:
                print('学生ID:{}'.format(student['id']))
                print('学生姓名:{}'.format(student['name']))
                print('学生年龄:{}'.format(student['age']))
                return
    elif choice == '2':
        print('请输入学生的姓名:')
        name = input()
        for student in data:
            if student['name'] == name:
                print('学生ID:{}'.format(student['id']))
                print('学生姓名:{}'.format(student['name']))
                print('学生年龄:{}'.format(student['age']))
                return
    else:
        print('无效的选择!')

    print('未查询到该学生的信息!')

上述代码中,search_student函数用于查询学生信息。首先需要选择查询方式,然后根据查询方式进行相应的输入操作。最后根据输入的ID或姓名查询学生信息。

3.4 删除学生信息

在删除学生信息时,需要输入学生的ID。如果存在对应的学生信息,则将其从本地文件中删除。如果查询不到,则输出相应的提示信息。

def delete_student():
    print('请输入要删除的学生的ID:')
    id = int(input())

    data = load_data()
    for i, student in enumerate(data):
        if student['id'] == id:
            del data[i]
            save_data(data)
            print('学生信息删除成功!')
            return

    print('未查询到该学生的信息!')

上述代码中,delete_student函数用于删除学生信息。首先从命令行中读取要删除的学生的ID,然后在本地文件中查找对应的学生,如果存在,则将其从本地文件中删除。

3.5 完整代码

将上述函数整合到一起,并添加循环操作实现完整的学生信息管理系统:

import json

def load_data():
    try:
        with open('students.json', 'r') as f:
            data = json.load(f)
    except (FileNotFoundError, json.JSONDecodeError):
        data = []
    return data

def save_data(data):
    with open('students.json', 'w') as f:
        json.dump(data, f, indent=4)

def display_menu():
    print('=' * 50)
    print('{:^50}'.format('欢迎使用学生信息管理系统'))
    print('-' * 50)
    print('{:<3}{:<13}{:<15}'.format('ID', '姓名', '年龄'))
    print('-' * 50)
    print('{:<3}{:<13}{:<15}'.format('', '', ''))
    print('=' * 50)
    print('1. 添加学生信息')
    print('2. 查询学生信息')
    print('3. 删除学生信息')
    print('0. 退出系统')
    print('=' * 50)

def add_student():
    print('请输入学生的姓名:')
    name = input()
    print('请输入学生的年龄:')
    age = input()

    data = load_data()
    student = {
        'id': len(data) + 1,
        'name': name,
        'age': age
    }
    data.append(student)
    save_data(data)

    print('学生信息添加成功!')

def search_student():
    print('请选择查询方式(1. 根据ID查询;2. 根据姓名查询):')
    choice = input()

    data = load_data()

    if choice == '1':
        print('请输入学生的ID:')
        id = int(input())
        for student in data:
            if student['id'] == id:
                print('学生ID:{}'.format(student['id']))
                print('学生姓名:{}'.format(student['name']))
                print('学生年龄:{}'.format(student['age']))
                return
    elif choice == '2':
        print('请输入学生的姓名:')
        name = input()
        for student in data:
            if student['name'] == name:
                print('学生ID:{}'.format(student['id']))
                print('学生姓名:{}'.format(student['name']))
                print('学生年龄:{}'.format(student['age']))
                return
    else:
        print('无效的选择!')

    print('未查询到该学生的信息!')

def delete_student():
    print('请输入要删除的学生的ID:')
    id = int(input())

    data = load_data()
    for i, student in enumerate(data):
        if student['id'] == id:
            del data[i]
            save_data(data)
            print('学生信息删除成功!')
            return

    print('未查询到该学生的信息!')

if __name__ == '__main__':
    while True:
        display_menu()

        choice = input()

        if choice == '1':
            add_student()
        elif choice == '2':
            search_student()
        elif choice == '3':
            delete_student()
        elif choice == '0':
            break
        else:
            print('无效的选择!')

4. 示例说明

4.1 添加学生信息

选择菜单项1进行添加学生信息操作,输入姓名和年龄信息后,系统会将学生信息添加到本地文件中。例如:

请输入要进行的操作:1
请输入学生的姓名:
张三
请输入学生的年龄:
20
学生信息添加成功!

4.2 查询学生信息

选择菜单项2进行查询学生信息操作,根据ID或姓名进行查询。例如:

请选择查询方式(1. 根据ID查询;2. 根据姓名查询):1
请输入学生的ID:
1
学生ID:1
学生姓名:张三
学生年龄:20

4.3 删除学生信息

选择菜单项3进行删除学生信息操作,根据ID进行删除。例如:

请输入要进行的操作:3
请输入要删除的学生的ID:
1
学生信息删除成功!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现简易学生信息管理系统 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 使用python-cv2实现视频的分解与合成的示例代码

    这里是使用 Python 的 OpenCV 库(cv2)实现视频的分解与合成的完整攻略。 准备工作 在开始之前,需要先安装 OpenCV 库才能运行这项任务。可以通过 pip install 命令安装: pip install opencv-python 视频的读取 首先,让我们看一个从视频中读取每一帧并显示的示例: import cv2 # 加载视频源 v…

    python 2023年5月19日
    00
  • Python获取CPU、内存使用率以及网络使用状态代码

    获取CPU、内存使用率以及网络使用状态是一项非常有用的任务,可以帮助我们对系统的运行状态有更好的了解。下面是Python获取CPU、内存使用率以及网络使用状态的完整攻略: 1. 获取CPU使用率 Python可以通过psutil库来获取CPU使用率。首先需要使用pip安装psutil库: pip install psutil 接下来,可以使用如下代码来获取C…

    python 2023年6月2日
    00
  • ubuntu安装显卡驱动和cuda教程

    Ubuntu安装显卡驱动和CUDA教程 一、安装显卡驱动 1.1 确认显卡型号 打开终端,输入以下命令查看显卡型号: lspci | grep -i nvidia 如果有输出,则表示你的电脑是NVIDIA显卡,同时记录下显卡型号。 1.2 安装显卡驱动 通过PPA安装 在终端中输入以下命令: sudo add-apt-repository ppa:graph…

    python 2023年5月13日
    00
  • pygame实现俄罗斯方块游戏(AI篇2)

    下面我将详细讲解“pygame实现俄罗斯方块游戏(AI篇2)”的完整攻略。 标题 首先,在这个攻略中,我们将使用Python和pygame库来实现俄罗斯方块游戏,并且还将会具备AI技能 – 自动消除每一行方块。 安装 要运行这个游戏,您需要安装好Python和pygame库。如果您已经安装好了,可以跳过此步骤。如果没有,您可以通过以下两种方式安装: Wind…

    python 2023年6月2日
    00
  • Python输入整数进行排序方式

    在Python中,可以使用多种方法对输入的整数进行排序。下面将介绍两种常用的方法。 方法一:使用sort函数 sort函数是Python内置排序函数,可以对列表进行排序。我们可以使用sort函数对输入的整进行排序。以下是一个使用sort函数对输入的整数进行排序的示例: # 使用sort函数对输入的整数进行排序 numbers = input("请输…

    python 2023年5月13日
    00
  • Python实现生成密码字典的方法示例

    下面是“Python实现生成密码字典的方法示例”的完整攻略。 1. 什么是密码字典 密码字典是一种暴力破解密码常用的工具。它是一组密码的列表,可以用于尝试匹配某个加密的密码。密码字典可以手工制作,也可以使用现成的工具生成。下面介绍一下使用Python生成密码字典的方法。 2. Python实现生成简单密码字典的方法 对于一些简单的密码,我们可以使用Pytho…

    python 2023年5月13日
    00
  • python3爬虫中异步协程的用法

    在Python3爬虫中,异步协程是一种高效的方式来处理并发请求和I/O操作。本文将详细讲解Python3爬虫中异步协程的用法,包括使用asyncio库和aiohttp库两个示例。 使用asyncio库实现异步协程的示例 以下是一个示例,演示如何使用asyncio库实现异步协程: import asyncio async def fetch(url): asy…

    python 2023年5月15日
    00
  • 关于python DataFrame的合并方法总结

    关于python DataFrame的合并方法总结 在数据分析过程中,通常需要将不同的数据集合并在一起进行分析,而Python中常用的数据结构之一——DataFrame,提供了多种方法用于合并数据。本文将对这些方法进行总结和介绍。 横向合并 横向合并是指将两个或多个拥有相同列的DataFrame按照列方向合并为一个新的DataFrame,常用方法有conca…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部