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写入带有中文的字符到文件错误的问题

    若在使用Python写入文件时带有中文字符,则可能会出现编码错误的问题。下面给出了一些解决编码问题的方法: 1. 使用编码格式utf-8 在打开文件时,可以指定文件编码格式为utf-8,即在open函数中添加参数’encoding=”utf-8″‘。使用utf-8编码格式能够支持中文字符写入,并且是编码格式中最常用的格式之一。 示例代码: with open…

    python 2023年5月13日
    00
  • Python aiohttp百万并发极限测试实例分析

    以下是详细讲解“Pythonaiohttp百万并发极限测试实例分析”的完整攻略,包含两个示例说明。 1. Pythonaiohttp简介 Pythonaiohttp是一个基于asyncio实现异步HTTP客户端/服务器框架,它提供了高效的异步HTTP请求和响应处理能力。aiohttp的主要特点包括: 支持HTTP/1.1和HTTP/2协议 支持WebSock…

    python 2023年5月14日
    00
  • 从Numpy数组创建一个Pandas DataFrame,并指定索引列和列头

    创建Pandas DataFrame通常涉及到将原始数据转换成Pandas所能理解的数据结构,即DataFrame。在Python中,使用Numpy数组来创建Pandas DataFrame是一种非常有效的方法。下面是通过Numpy数组创建Pandas DataFrame的完整攻略,包括指定索引列和列头。 创建Pandas DataFrame 要从Numpy…

    python-answer 2023年3月25日
    00
  • Python合并2个字典成1个新字典的方法(9种)

    Python中合并两个字典有很多种方法,下面分别介绍9种方法的完整攻略。 方法1:使用{dict1, dict2}方式合并 优点- 代码简单明了 缺点- 如果两个字典内有相同key,后者会覆盖前者 dict1 = {‘a’: 1, ‘b’: 2} dict2 = {‘c’: 3, ‘d’: 4} dict3 = {**dict1, **dict2} prin…

    python 2023年5月13日
    00
  • Request的中断和ErrorHandler实例解析

    当我们在使用 Express 发起请求时,请求可能会因为各种原因中断,比如超时、网络连接问题等等。此时,我们就需要捕获对应的错误,为此,Express 提供了一个中间件函数 ErrorHandler。 下面,我们将开始详细讲解“Request的中断和ErrorHandler实例解析”的攻略。攻略分为如下两个部分: Request的中断 ErrorHandle…

    python 2023年5月13日
    00
  • Python网络爬虫信息提取mooc代码实例

    Python网络爬虫信息提取mooc代码实例攻略 本篇攻略主要介绍Python网络爬虫信息提取MOOC课程的代码实现过程。涉及到的工具和模块包括Requests、BeautifulSoup、正则表达式等。该攻略的目标是爬取公开的MOOC课程列表信息。 1. 准备工作 在开始进行爬虫操作之前,我们需要先安装好所需的Python模块及相关IDE,比如Anacon…

    python 2023年5月14日
    00
  • python numba指纹错误

    【问题标题】:python numba fingerprint errorpython numba指纹错误 【发布时间】:2023-04-03 18:54:02 【问题描述】: 我正在尝试用 numba 优化一些代码。我已经完成了 0.26.0 用户指南 (http://numba.pydata.org/numba-doc/0.26.0/user/jit.h…

    Python开发 2023年4月8日
    00
  • Python3 加密(hashlib和hmac)模块的实现

    Python3 加密模块实现攻略 在Python3中,我们可以使用hashlib和hmac模块来进行加密操作。在本文中,我们将详细讲解如何使用这两个模块来实现加密操作。 hashlib模块 hashlib模块提供了一种简单的方法来使用各种加密算法,包括MD5和SHA1等常用的算法。下面是使用hashlib模块进行加密的步骤: 1. 导入hashlib模块 i…

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