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

yizhihongxing

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中Collection的使用小技巧

    以下是“Python中Collection的使用小技巧”的完整攻略。 1. Collection的概述 在Python中,Collection是一种常用的数据类型,它含了多有用的数据结构,例如列表(list)、元组(tuple)、集合(set)、字典(dict)等。Collection提供了许多方便的方法和函数,可以帮助我们更高效地处理数据。本攻略将介绍Py…

    python 2023年5月13日
    00
  • Python requests接口测试实现代码

    以下是关于Python requests库实现接口测试的攻略: Python requests库实现接口测试 在Python中,使用requests库实现接口测试非常方便。以下是Python requests库实现接口测试的攻略。 发送GET请求 使用requests库发送GET请求非常简单,以下是发送GET请求的示例: import requests ur…

    python 2023年5月14日
    00
  • Python面向对象编程(三)

    以下是关于 Python 面向对象编程(三)的完整攻略: 问题描述 在 Python 面向对象编程中,继承是重要的概念。继承允许我们创建一个新的类,该类继承了一个类的属性和方法。本文将介绍如何在 Python 中使用继承。 解决方法 使用以下步骤解决 Python 面向对象编程中的继承问题: 创建一个父类。 在 Python 中,可以使用 class 关键字…

    python 2023年5月13日
    00
  • Python中有哪些关键字及关键字的用法

    Python中有35个关键字,这些关键字被用于识别Python语言中的特定语法结构或者命名空间中特定的名称。下面逐一介绍这些关键字以及它们的用法: False:表示布尔值假 None:表示不存在的对象,经常用于默认参数或者判断是否有返回值。 True:表示布尔值真 and:逻辑与操作符,如果两个操作数都为真,则返回True,否则返回False。 as:用于创…

    python 2023年5月13日
    00
  • python因子分析的实例

    以下是关于“Python因子分析的实例”的完整攻略: 简介 因子分析是一种常用的数据降维技术,它可以将高维数据转换为低维数据,同时保留原始数据的主要特征。在本教程中,我们将介绍如何使用Python实现因子分析,并使用示例说明如何应用因子分析。 因子分析原理 因子分析的基本思想是:将多个相关变量转换为少数几个无关变量,这些无关变量称为因子。因子分析的步骤如下:…

    python 2023年5月14日
    00
  • 使用Python来开发Markdown脚本扩展的实例分享

    当需要对Markdown进行特殊处理时,我们可以使用Python来开发Markdown脚本扩展,这种方式相对于修改Markdown源码的方式来说更加简单易操作,也更加灵活。 下面将介绍如何使用Python来开发Markdown脚本扩展的完整攻略: 1. 安装Python和Markdown 在开始之前,需要确保Python和Markdown已经被安装到了本地开…

    python 2023年5月31日
    00
  • Python3 xml.etree.ElementTree支持的XPath语法详解

    在Python3中,可以使用xml.etree.ElementTree模块解析XML文档。XPath是一种用于在XML文档中查找信息的语言,xml.etree.ElementTree模块支持XPath语法。本文将详细讲解Python3中xml.etree.ElementTree支持的XPath语法,包括两个示例。 XPath语法 XPath是一种用于在XML…

    python 2023年5月15日
    00
  • Python使用os模块和fileinput模块来操作文件目录

    下面是Python使用os模块和fileinput模块来操作文件目录的完整攻略: 1. os模块操作文件目录 os模块可以帮助我们实现文件夹的创建、移动、复制等操作。 1.1 创建文件夹 我们可以使用os模块中的makedirs()函数来创建新的文件夹,它也可以一次性创建多个文件夹。具体的函数调用代码如下: import os # 创建单个文件夹 os.mk…

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