Python实现一个完整学生管理系统

Python实现一个完整学生管理系统

本篇攻略将从以下三个方面分别进行讲解:

  1. 学生管理系统的功能需求
  2. 学生管理系统的设计思路以及实现细节
  3. 学生管理系统代码示例

学生管理系统的功能需求

学生管理系统主要需要实现以下功能:

  1. 添加学生信息
  2. 删除学生信息
  3. 修改学生信息
  4. 查询学生信息

其中,学生信息需要至少包含以下内容:

  1. 学号
  2. 姓名
  3. 年龄
  4. 性别
  5. 成绩

学生管理系统的设计思路以及实现细节

数据存储

数据存储是学生管理系统中非常重要的一环,数据存储方式的选择直接影响到系统的性能以及可维护性。

以下是主流的数据存储方式:

  1. 文本文件
  2. 关系型数据库
  3. 非关系型数据库

在本篇攻略中,我们使用文本文件的方式进行数据存储。

系统设计

根据学生管理系统的功能需求,我们可以将学生信息存储在一个文本文件中。每行代表一个学生信息,使用逗号或其他符号将不同字段的信息分隔开来。

以下是学生信息的示例:

001,张三,18,男,90
002,李四,19,女,85
003,王五,20,男,95

在程序运行时,我们读取文本文件中的内容,并将其转化为列表的形式。每一个元素代表一个学生信息,使用字典存储不同字段的值。

以下是学生信息读取和存储的示例代码:

students = []

def read_file():
    with open('students.txt', 'r') as f:
        for line in f.readlines():
            student_info = line.strip().split(',')
            student = {
                'id': student_info[0],
                'name': student_info[1],
                'age': student_info[2],
                'gender': student_info[3],
                'score': student_info[4]
            }
            students.append(student)

def write_file():
    with open('students.txt', 'w') as f:
        for student in students:
            student_info = [
                student['id'], 
                student['name'], 
                student['age'], 
                student['gender'], 
                student['score']
            ]
            line = ','.join(student_info) + '\n'
            f.write(line)

功能实现

  1. 添加学生信息

添加学生信息的方法如下:

def add_student():
    id = input('请输入学号:')
    name = input('请输入姓名:')
    age = input('请输入年龄:')
    gender = input('请输入性别:')
    score = input('请输入成绩:')

    student = {
        'id': id,
        'name': name,
        'age': age,
        'gender': gender,
        'score': score
    }

    students.append(student)

    write_file()

    print('添加成功!')
  1. 删除学生信息

删除学生信息的方法如下:

def remove_student():
    id = input('请输入要删除的学生学号:')

    for index, student in enumerate(students):
        if student['id'] == id:
            students.pop(index)

    write_file()

    print('删除成功!')
  1. 修改学生信息

修改学生信息的方法如下:

def modify_student():
    id = input('请输入要修改的学生学号:')

    for student in students:
        if student['id'] == id:
            print('请选择要修改的信息:')
            print('1.姓名 2.年龄 3.性别 4.成绩')
            choice = int(input('请选择:'))
            if choice == 1:
                name = input('请输入新的姓名:')
                student['name'] = name
                print('修改成功!')
            elif choice == 2:
                age = input('请输入新的年龄:')
                student['age'] = age
                print('修改成功!')
            elif choice == 3:
                gender = input('请输入新的性别:')
                student['gender'] = gender
                print('修改成功!')
            elif choice == 4:
                score = input('请输入新的成绩:')
                student['score'] = score
                print('修改成功!')

    write_file()
  1. 查询学生信息

查询学生信息的方法如下:

def show_student():
    id = input('请输入要查询的学生学号:')

    for student in students:
        if student['id'] == id:
            print('学号:', student['id'])
            print('姓名:', student['name'])
            print('年龄:', student['age'])
            print('性别:', student['gender'])
            print('成绩:', student['score'])
            return

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

学生管理系统代码示例

完整的学生管理系统代码如下:

students = []

def read_file():
    with open('students.txt', 'r') as f:
        for line in f.readlines():
            student_info = line.strip().split(',')
            student = {
                'id': student_info[0],
                'name': student_info[1],
                'age': student_info[2],
                'gender': student_info[3],
                'score': student_info[4]
            }
            students.append(student)

def write_file():
    with open('students.txt', 'w') as f:
        for student in students:
            student_info = [
                student['id'], 
                student['name'], 
                student['age'], 
                student['gender'], 
                student['score']
            ]
            line = ','.join(student_info) + '\n'
            f.write(line)

def add_student():
    id = input('请输入学号:')
    name = input('请输入姓名:')
    age = input('请输入年龄:')
    gender = input('请输入性别:')
    score = input('请输入成绩:')

    student = {
        'id': id,
        'name': name,
        'age': age,
        'gender': gender,
        'score': score
    }

    students.append(student)

    write_file()

    print('添加成功!')

def remove_student():
    id = input('请输入要删除的学生学号:')

    for index, student in enumerate(students):
        if student['id'] == id:
            students.pop(index)

    write_file()

    print('删除成功!')

def modify_student():
    id = input('请输入要修改的学生学号:')

    for student in students:
        if student['id'] == id:
            print('请选择要修改的信息:')
            print('1.姓名 2.年龄 3.性别 4.成绩')
            choice = int(input('请选择:'))
            if choice == 1:
                name = input('请输入新的姓名:')
                student['name'] = name
                print('修改成功!')
            elif choice == 2:
                age = input('请输入新的年龄:')
                student['age'] = age
                print('修改成功!')
            elif choice == 3:
                gender = input('请输入新的性别:')
                student['gender'] = gender
                print('修改成功!')
            elif choice == 4:
                score = input('请输入新的成绩:')
                student['score'] = score
                print('修改成功!')

    write_file()

def show_student():
    id = input('请输入要查询的学生学号:')

    for student in students:
        if student['id'] == id:
            print('学号:', student['id'])
            print('姓名:', student['name'])
            print('年龄:', student['age'])
            print('性别:', student['gender'])
            print('成绩:', student['score'])
            return

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

def main():
    read_file()

    while True:
        print('1.添加学生信息')
        print('2.删除学生信息')
        print('3.修改学生信息')
        print('4.查询学生信息')
        print('5.退出系统')

        choice = int(input('请选择功能:'))

        if choice == 1:
            add_student()
        elif choice == 2:
            remove_student()
        elif choice == 3:
            modify_student()
        elif choice == 4:
            show_student()
        elif choice == 5:
            break
        else:
            print('请选择正确的功能!')

if __name__ == '__main__':
    main()

上述代码中,我们实现了一个基于文本文件的学生管理系统,您可以在自己的电脑上运行该程序,体验程序的功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现一个完整学生管理系统 - Python技术站

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

相关文章

  • 如何在NumPy中为行和列设置坐标轴

    在NumPy中,可以使用np.meshgrid函数为数组设置坐标轴。 首先,我们先导入NumPy库: import numpy as np 为行和列设置坐标轴 np.meshgrid函数可以将两个轴的坐标用于生成一个网格。该函数输入两个一维数组,并返回两个二维数组,其中一个数组用于行,另一个数组用于列。示例代码如下: x = np.array([1, 2, …

    python-answer 2023年3月25日
    00
  • 在 python 中使用 networkx 包的 K-最短路径

    【问题标题】:K-shortest paths using networkx package in python在 python 中使用 networkx 包的 K-最短路径 【发布时间】:2023-04-06 07:18:01 【问题描述】: 我使用 osmnx 包创建了荷兰高速公路的多向图。 该图是从 osmnx 返回的多向图。由于我有兴趣计算起点和终点…

    Python开发 2023年4月6日
    00
  • Python绘图示例程序中的几个语法糖果你知道吗

    当我们编写Python程序时,有时候我们需要对数据进行绘图来更好地理解和分析数据。Python中有一些绘图工具库,如matplotlib、seaborn和plotly等,它们可以帮助我们实现丰富的可视化效果。本文主要讲解matplotlib中的几个语法糖,帮助读者更快更容易地进行数据可视化。 语法糖一:以极简的代码实现动态数据展示 在matplotlib中,…

    python 2023年5月14日
    00
  • python实现图片,视频人脸识别(opencv版)

    Python实现图片、视频人脸识别(opencv版)完整攻略 简介 OpenCV(Open Source Computer Vision)是一个开源的计算机视觉库。它最初由英特尔于1999年发起,如今是由Willow Garage、Itseez、Intel等公司和个人维护的一个跨平台计算机视觉库。OpenCV使用C++语言编写,同时支持Java、Python…

    python 2023年5月18日
    00
  • pip报错“ModuleNotFoundError: No module named ‘pip._vendor.distlib’”怎么处理?

    当使用pip时,可能会遇到“ModuleNotFoundError: No module named ‘pip._vendor.distlib’”错误。这个错误通常是由以下原因之一引起的: pip安装或更新过程中出现错误:如果pip安装或更新过程中出现错误,则可能会导致此错误。在这种情况下,需要重新安装或更新pip。 pip安装或更新过程中出现中断:如果pi…

    python 2023年5月4日
    00
  • 关于使用python对mongo多线程更新数据

    关于使用Python对Mongo多线程更新数据,下面是详细的攻略。 准备工作 在开始之前,需要安装pymongo和threading两个库: pip install pymongo import threading 同时,需要对MongoDB的基础知识有一定了解,如数据库、集合等的概念。 步骤一:建立MongoDB连接 import pymongo clie…

    python 2023年5月19日
    00
  • python中有关时间日期格式转换问题

    下面我就来详细讲解Python中有关时间日期格式转换问题的完整攻略。 1. 时间和日期的常用表现形式 在Python中,日期和时间的表现形式有如下几种: timestamp,指一个距离1970年1月1日00:00:00 UTC的浮点数,精确到秒或毫秒,可用于时间的比较和运算。 datetime.datetime,表示日期和时间的类,包括年、月、日、时、分、秒…

    python 2023年6月2日
    00
  • 使用python从HTML表格的行中提取文本

    【问题标题】:Extract text from row of HTML table using python使用python从HTML表格的行中提取文本 【发布时间】:2023-04-05 03:33:02 【问题描述】: 我正在尝试使用 Python 从下面的 HTML 表中提取日出时间(上午 7:56),我使用漂亮的汤来抓取该表。这是第二行的“文本右侧…

    Python开发 2023年4月6日
    00
合作推广
合作推广
分享本页
返回顶部