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

yizhihongxing

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日

相关文章

  • Python字符串中删除特定字符的方法

    以下是Python字符串中删除特定字符的方法的完整攻略: 方法1:使用replace()函数 使用Python的replace()函数可以很方便地删除字符串中的特定字符。以下是一个示例代码: string = "Hello, World!" new_string = string.replace(",", "…

    python 2023年5月14日
    00
  • 500行Python代码打造刷脸考勤系统

    课程传送门:500行Python代码打造刷脸考勤系统 这本课程是一本介绍如何用Python语言实现一个基于摄像头和OpenCV的人脸识别考勤系统的教程。本文将对课程中提到的各个环节进行详细的讲解和说明。 课程大纲 Python语言基础 OpenCV安装和基本用法 人脸检测算法原理和实现 人脸识别算法原理和实现 Flask Web开发框架的使用 视频流和摄像头…

    python 2023年5月19日
    00
  • 详解Python如何生成优雅的二维码

    详解Python如何生成优雅的二维码 二维码已成为一种常用的信息传递方式,Python 作为一门高效的编程语言,能够为我们生成优雅的二维码。本攻略将详细讲解如何使用 Python 生成优雅的二维码。 准备工作 在使用 Python 生成二维码前,需要先安装 PyQRCode 模块。可以使用 pip 在终端或命令行中轻松安装: pip install PyQR…

    python 2023年6月6日
    00
  • Python中的defaultdict模块和namedtuple模块的简单入门指南

    下面是 Python 中 defaultdict 模块和 namedtuple 模块的完整攻略。 defaultdict模块 defaultdict是Python内置的模块,它的作用和字典很像,可以用于创建一个默认值非空的字典。具体来说,我们可以通过自定义的方式来设置字典的默认值,如果没有设置,则默认值为None。 首先导入模块: from collecti…

    python 2023年6月3日
    00
  • Python使用正则表达式去除(过滤)HTML标签提取文字功能

    在 Python 中,我们可以使用正则表达式去除 HTML 标签并提取文字。HTML 标签是一种特殊的文本格式,用于描述网页的结构和样式。在实际开发中,我们经常需要从 HTML 文本中提取纯文本内容,这时候就需要使用正则表达式去除 HTML 标签。下面将详细讲解 Python 使用正则表达式去除 HTML 标签的方法。 1. 使用 re.sub() 函数 P…

    python 2023年5月14日
    00
  • Python列表(list)、字典(dict)、字符串(string)基本操作小结

    以下是详细讲解“Python列表(list)、字典(dict)、字符串(string)基本操作小结”的完整攻略。 在Python中,列表、字典和字符串是三种常用的数据类型。本文将介绍这三种数据基本操作,包括创建、访问、添加和删除元素、切片、排序等。 列表(list)的基本操作 创建列表 在Python中,可以使用方括号[]或list()函数来创建一个列表。例…

    python 2023年5月13日
    00
  • Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)

    Python程序报错崩溃后如何倒回到崩溃的位置(推荐)攻略 在Python中,当程序出现错误时,程序会崩溃并停止执行。如果我们想要倒回到崩溃的位置,我们可以使用Python的调试工具来实现。本攻略将介绍如何使用Python程序报错崩溃后如何倒回到崩溃的位置,并提供两个示例。 解决方法 在Python中解决程序报错崩溃后如何倒回到崩溃的位置,我们可以尝试以下方…

    python 2023年5月13日
    00
  • pycharm console 打印中文为乱码问题及解决

    下面是“pycharm console 打印中文为乱码问题及解决”的完整攻略。 问题描述 在使用PyCharm打印中文字符时,可能会出现中文字符乱码的问题。例如使用print()函数打印中文字符,控制台可能输出乱码或者显示为英文字符。这可能是因为控制台编码格式错误导致的。 解决方法 在PyCharm中,有两种方式可以解决这个问题,分别是: 修改控制台编码格式…

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