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

yizhihongxing

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

系统简介

本系统是基于Python语言实现的简易学生信息管理系统。它可以方便地增加、删除、修改和查询学生信息,同时支持将信息存储到文件或者从文件中读取信息。系统主要包含以下功能模块:

  • 添加学生信息
  • 删除学生信息
  • 修改学生信息
  • 查询学生信息
  • 展示所有学生信息
  • 保存学生信息到文件
  • 从文件中读取学生信息

系统实现

数据结构设计

系统中的主要数据结构是学生信息,每个学生信息包含以下字段:

  • 学生姓名
  • 学生年龄
  • 学生性别
  • 学生籍贯
  • 学生专业

在实现过程中,我们使用了Python中的字典(dict)作为学生信息的数据类型,其中key值分别为上述字段名,value值为具体的信息。

功能模块实现

在实现上述功能模块之前,我们需要先初始化一个学生信息列表,存放所有的学生信息。

students = []

添加学生信息

在添加学生信息的代码实现过程中,我们需要使用Python中的input函数获取用户输入的学生信息,并将其添加到学生信息列表中。

def add_student(students):
    name = input("请输入学生姓名:")
    age = input("请输入学生年龄:")
    sex = input("请输入学生性别:")
    place = input("请输入学生籍贯:")
    major = input("请输入学生专业:")
    student = {
        'name': name,
        'age': age,
        'sex': sex,
        'place': place,
        'major': major
    }
    students.append(student)
    print("添加成功!")

删除学生信息

在删除学生信息的代码实现过程中,我们需要先查询出要删除的学生信息,并将其从学生信息列表中删除。

def del_student(students):
    name = input("请输入要删除的学生姓名:")
    for student in students:
        if student['name'] == name:
            students.remove(student)
            print("删除成功!")
            return
    print("未找到该学生!")

修改学生信息

在修改学生信息的代码实现过程中,我们需要先查询出要修改的学生信息,并将其修改为新的信息。

def modify_student(students):
    name = input("请输入要修改信息的学生姓名:")
    for student in students:
        if student['name'] == name:
            student['age'] = input("请输入学生新年龄:")
            student['sex'] = input("请输入学生新性别:")
            student['place'] = input("请输入学生新籍贯:")
            student['major'] = input("请输入学生新专业:")
            print("修改成功!")
            return
    print("未找到该学生!")

查询学生信息

在查询学生信息的代码实现过程中,我们需要先输入要查询的学生姓名,并在学生信息列表中查找该学生信息。

def query_student(students):
    name = input("请输入要查询的学生姓名:")
    for student in students:
        if student['name'] == name:
            print("学生姓名:{},学生年龄:{},学生性别:{},学生籍贯:{},学生专业:{}".format(student['name'], student['age'], student['sex'], student['place'], student['major']))
            return
    print("未找到该学生!")

展示所有学生信息

在展示所有学生信息的代码实现过程中,我们需要遍历学生信息列表,并输出每个学生的信息。

def show_all_students(students):
    for student in students:
        print("学生姓名:{},学生年龄:{},学生性别:{},学生籍贯:{},学生专业:{}".format(student['name'], student['age'], student['sex'], student['place'], student['major']))

保存学生信息到文件

在保存学生信息到文件的代码实现过程中,我们需要使用Python中的pickle模块将学生信息列表序列化到文件中。

import pickle

def save_to_file(students):
    with open('students.data', 'wb') as file:
        pickle.dump(students, file)
    print("保存成功!")

从文件中读取学生信息

在从文件中读取学生信息的代码实现过程中,我们需要使用Python中的pickle模块将序列化文件中的学生信息列表反序列化到内存中。

import pickle

def read_from_file():
    try:
        with open('students.data', 'rb') as file:
            students = pickle.load(file)
            print("读取成功!")
            return students
    except FileNotFoundError:
        print("未找到学生信息文件!")

功能模块集成

将以上所有功能模块集成到一个主函数中:

def main():
    students = read_from_file()
    while True:
        print("==============================")
        print("欢迎使用学生信息管理系统!")
        print("1、添加学生信息")
        print("2、删除学生信息")
        print("3、修改学生信息")
        print("4、查询学生信息")
        print("5、展示所有学生信息")
        print("6、保存学生信息到文件")
        print("7、从文件中读取学生信息")
        print("0、退出系统")
        print("==============================")
        choice = input("请输入您的选择:")
        if choice == '1':
            add_student(students)
        elif choice == '2':
            del_student(students)
        elif choice == '3':
            modify_student(students)
        elif choice == '4':
            query_student(students)
        elif choice == '5':
            show_all_students(students)
        elif choice == '6':
            save_to_file(students)
        elif choice == '7':
            students = read_from_file()
        elif choice == '0':
            print("感谢使用!")
            break
        else:
            print("输入错误,请重新输入!")

示例说明

示例1:添加学生信息

用户输入如下信息,添加一个学生信息:

请输入学生姓名:Tom
请输入学生年龄:20
请输入学生性别:男
请输入学生籍贯:北京
请输入学生专业:计算机科学与技术
添加成功!

示例2:查询学生信息

用户输入要查询的学生姓名为Tom,系统返回如下查询结果:

请输入要查询的学生姓名:Tom
学生姓名:Tom,学生年龄:20,学生性别:男,学生籍贯:北京,学生专业:计算机科学与技术

在以上示例中,我们展示了添加学生信息和查询学生信息两个功能模块的使用方法。用户可以根据上述示例,进一步了解系统的所有功能模块。

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

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

相关文章

  • python实现马丁策略的实例详解

    Python实现马丁策略的完整攻略 什么是马丁策略 马丁策略是一种基于赌博的投资策略。其核心思想是,在每次投资时,让投资金额随着上次投资失败而增加。这样,当获利时,能够收回之前的损失,并获得更高的利润。 马丁策略最初源于赌博,但其思想同样适用于股票、外汇等金融投资领域。而在Python中,我们可以用编程实现马丁策略来帮助我们进行投资决策。 马丁策略的实现 代…

    python 2023年5月18日
    00
  • Python获取航线信息并且制作成图的讲解

    要获取航线信息并制作成图,需要使用Python中的一些库和工具。本文将详细讲解如何使用Python获取航线信息并制作成图的过程。 步骤1:获取航线信息 要获取航线信息,可以使用Python中的requests库和BeautifulSoup库。以下是一个获取航线信息的示例: import requests from bs4 import BeautifulSo…

    python 2023年5月15日
    00
  • Python简单实现阿拉伯数字和罗马数字的互相转换功能示例

    你好,下面是“Python简单实现阿拉伯数字和罗马数字的互相转换功能示例”的完整攻略。 1. 实现数字转罗马数字功能 在 Python 中,我们可以使用简单的数学运算实现阿拉伯数字和罗马数字的互相转换。我们需要编写一个函数,输入一个阿拉伯数字,输出对应的罗马数字字符串。具体的实现过程如下: def int_to_roman(num: int) -> s…

    python 2023年6月5日
    00
  • python爬取足球直播吧五大联赛积分榜

    本攻略将介绍如何使用Python爬取足球直播吧五大联赛积分榜的爬虫实例。我们将使用requests库获取网页内容,并使用BeautifulSoup库解析HTML文档。我们将提供两个示例,分别用于获取英超和西甲的积分榜。 获取英超积分榜 以下是一个示例代码,用于获取英超积分榜: import requests from bs4 import Beautiful…

    python 2023年5月15日
    00
  • Python基于辗转相除法求解最大公约数的方法示例

    下面是“Python基于辗转相除法求解最大公约数的方法示例”的完整攻略。 一、什么是辗转相除法 辗转相除法(又称欧几里得算法)是一种求最大公约数的算法,其思路是利用较小数除较大数,然后再用除数去除余数,直到余数为 0 为止。 同时,根据裴蜀定理,如果 a 和 b 是整数,且它们的最大公约数为 d,那么关于未知数 x,y 的线性不定方程(称为裴蜀等式) $ax…

    python 2023年6月5日
    00
  • python爬虫爬取某站上海租房图片

    请问您指的是如何使用 Python 编写爬虫程序爬取某个网站上的“上海租房”相关图片吗? 如果是这样,下面是详细的攻略。 1. 确定爬取目标 首先需要找到目标网站,了解该站点的页面结构和图片资源存储方式。一些常见的租房网站有链家、58同城、房天下等。以链家为例子,在链家的租房页面可以找到对应城市的租房房源信息,每个房源信息都会有一些图片。图片通常会保存在该房…

    python 2023年5月14日
    00
  • 举例详解Python中的split()函数的使用方法

    以下是“举例详解Python中的split()函数的使用方法”的完整攻略: split()函数的基本用法 在Python中,split()函数是一个字符串方法,用于将字符串分割成子字符串,并将其存储在一个列表中。split()函数的基本用法如下: string.split(separator, maxsplit) 其中,separator是分隔符,用于指定在…

    python 2023年5月14日
    00
  • Python实现的自定义多线程多进程类示例

    下面是关于Python实现自定义多线程多进程类的完整攻略。 标准的Python多线程多进程实现 Python内置了threading和multiprocessing两个模块来实现多线程和多进程。 多线程示例 import threading class MyThread(threading.Thread): def __init__(self, name):…

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