教你用Python实现简易版学生信息管理系统(含源码)

教你用Python实现简易版学生信息管理系统(含源码)

概述

本文将介绍如何使用 Python 编写一个简单的学生信息管理系统。本系统支持添加、查询、删除和修改学生信息,并且所有数据都存储在本地文本文件中。本文将详细介绍系统的实现流程,并提供完整的源码。

实现步骤

1. 创建项目

首先,在本地环境中创建一个新的 Python 项目文件夹,并在文件夹中创建一个名为 students.txt 的空文本文件。该文件将用于存储所有学生的信息。

2. 实现学生类

创建一个名为 Student 的 Python 类,该类具有以下属性:idnamegenderagescore。通过实现该类,我们可以方便地对学生信息进行管理。

示例代码:

class Student:
    def __init__(self, id, name, gender, age, score):
        self.id = id
        self.name = name
        self.gender = gender
        self.age = age
        self.score = score

3. 实现数据存储工具类

创建一个名为 DataTool 的 Python 类,该类具有以下方法:

  • read_data():从本地文本文件中读取所有学生的信息,并将其存储在列表中。
  • write_data(data_list):将传递的学生信息列表写入本地文本文件。

示例代码:

class DataTool:
    def __init__(self, file_path):
        self.file_path = file_path

    def read_data(self):
        with open(self.file_path, 'r') as f:
            content = f.readlines()

        student_list = []
        for item in content:
            item = item.strip().split(',')
            student_list.append(Student(item[0], item[1], item[2], item[3], item[4]))
        return student_list

    def write_data(self, data_list):
        with open(self.file_path, 'w') as f:
            for item in data_list:
                write_str = '{0},{1},{2},{3},{4}\n'.format(item.id, item.name, item.gender, item.age, item.score)
                f.write(write_str)

4. 实现学生信息管理类

创建一个名为 StudentManager 的 Python 类,该类具有以下方法:

  • show_all_student():打印出所有学生的信息。
  • add_student():向学生列表中添加一个新学生。
  • delete_student():从学生列表中删除指定学生。
  • update_student():更新指定学生的信息。

示例代码:

class StudentManager:
    def __init__(self, file_path):
        self.data_tool = DataTool(file_path)
        self.student_list = self.data_tool.read_data()

    def show_all_student(self):
        if not self.student_list:
            print('No student information available.\n')
            return
        print('id  name  gender  age  score')
        for item in self.student_list:
            print('{0}  {1}  {2}  {3}  {4}'.format(item.id, item.name, item.gender, item.age, item.score))
        print()

    def add_student(self):
        id = input('Please enter the student id: ')
        name = input('Please enter the name of the student: ')
        gender = input('Please enter the gender of the student: ')
        age = input('Please enter the age of the student: ')
        score = input('Please enter the score of the student: ')

        new_student = Student(id, name, gender, age, score)
        self.student_list.append(new_student)
        self.data_tool.write_data(self.student_list)
        print('Add student successfully!\n')

    def delete_student(self):
        delete_id = input('Please enter the student id you want to delete: ')
        for i in range(len(self.student_list)):
            if self.student_list[i].id == delete_id:
                del self.student_list[i]
                self.data_tool.write_data(self.student_list)
                print('Delete student successfully!\n')
                return
        else:
            print('Sorry, student id not found.\n')

    def update_student(self):
        update_id = input('Please enter the student id you want to update: ')
        for item in self.student_list:
            if item.id == update_id:
                item.name = input('Please enter the new name of the student: ')
                item.gender = input('Please enter the new gender of the student: ')
                item.age = input('Please enter the new age of the student: ')
                item.score = input('Please enter the new score of the student: ')
                self.data_tool.write_data(self.student_list)
                print('Update student information successfully!\n')
                return
        else:
            print('Sorry, student id not found.\n')

5. 实现入口函数

创建一个名为 main() 的 Python 函数,用于运行该程序。通过调用 StudentManager 类中的方法,可以方便地实现对学生信息的管理。

示例代码:

def main():
    file_path = './students.txt'
    student_manager = StudentManager(file_path)

    while True:
        print('=== Student Information Management System ===')
        print('1. Show all student information.')
        print('2. Add new student.')
        print('3. Delete student.')
        print('4. Update student information.')
        print('0. Quit system.')
        choice = input('Please make a choice: ')

        if choice == '1':
            student_manager.show_all_student()

        elif choice == '2':
            student_manager.add_student()

        elif choice == '3':
            student_manager.delete_student()

        elif choice == '4':
            student_manager.update_student()

        elif choice == '0':
            print('Thank you for using Student Information Management System, goodbye!')
            break

        else:
            print('Invalid input, please try again.\n')

程序演示

请参考下方两个示例:

示例 1:添加学生信息

=== Student Information Management System ===
1. Show all student information.
2. Add new student.
3. Delete student.
4. Update student information.
0. Quit system.
Please make a choice: 2

Please enter the student id: 001
Please enter the name of the student: John
Please enter the gender of the student: Male
Please enter the age of the student: 18
Please enter the score of the student: 90

Add student successfully!

示例 2:显示所有学生信息

=== Student Information Management System ===
1. Show all student information.
2. Add new student.
3. Delete student.
4. Update student information.
0. Quit system.
Please make a choice: 1

id  name  gender  age  score
001  John  Male  18  90

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:教你用Python实现简易版学生信息管理系统(含源码) - Python技术站

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

相关文章

  • 解决python路径错误,运行.py文件,找不到路径的问题

    对于解决python路径错误,运行.py文件时找不到路径的问题,可按照以下攻略进行处理: 使用绝对路径或相对路径运行.py文件 如果我们在运行.py文件时,出现找不到路径的问题,我们可以尝试使用绝对路径或相对路径运行.py文件,来确保能够准确找到文件路径。具体的代码示例如下: 以绝对路径方式运行: python /Users/xxx/xxx/test.py …

    python 2023年6月2日
    00
  • Python 内置高阶函数详细

    Python 内置高阶函数详细 什么是高阶函数? 高阶函数是指可以接受函数作为参数或者返回函数作为结果的函数。在 Python 中,高阶函数非常常见,例如 map()、filter()、reduce() 等。 map() map() 函数可以对可迭代对象中的每一个元素应用给定的函数,并返回一个新的可迭代对象。它的语法如下: map(function, ite…

    python 2023年6月5日
    00
  • 关于Python-faker的函数效果一览

    关于Python-faker的函数效果一览是指Python的一个第三方库:faker,它是一个用来生成伪数据的工具。faker可以生成各种类型的数据,包括姓名、地址、邮箱、电话等等。它可以用来做数据脱敏、测试、数据填充等方面,使用起来非常灵活。 下面是关于Python-faker的常用函数及其效果一览。 安装 pip install Faker 基础用法 f…

    python 2023年6月2日
    00
  • 从 Python Discord 机器人中的线程发送消息

    【问题标题】:Sending messages from a thread in a Python Discord bot从 Python Discord 机器人中的线程发送消息 【发布时间】:2023-04-03 03:25:01 【问题描述】: 我正在使用 discord.py 库并正在开发一个 discord 机器人。 基本上,我需要我的机器人每小时访…

    Python开发 2023年4月8日
    00
  • 使用Python读取和修改Excel文件(基于xlrd、xlwt和openpyxl模块)

    下面详细讲解如何使用Python读取和修改Excel文件。 1. 介绍 Excel是一种广泛使用的电子表格软件,而Python是一种流行的编程语言。Python中有许多可以帮助我们读取和修改Excel文件的库。本教程将重点介绍三个最受欢迎的库:xlrd、xlwt和openpyxl。 xlrd:用于读取Excel文件,支持.xls和.xlsx格式。 xlwt:…

    python 2023年5月13日
    00
  • 对python自动生成接口测试的示例讲解

    下面是对Python自动生成接口测试的攻略,包含两条示例说明。 1. 什么是自动生成接口测试? 自动生成接口测试是指使用Python等编程语言,通过一些现成的工具包或库来自动化生成接口测试用例、测试报告、模拟请求等等。这可以大大缩短测试的时间,提高测试效率。 2. 示例1:使用unittest框架自动生成接口测试 使用unittest框架自动生成接口测试非常…

    python 2023年5月18日
    00
  • python 使用tkinter+you-get实现视频下载器

    Python 使用 tkinter + you-get 实现视频下载器 1. 简介 本项目使用 Python 语言编写,采用 tkinter 模块作为 GUI 界面,you-get 模块用于下载视频。该视频下载器可以提供给用户一个简单易用的界面,让用户可以通过输入视频链接地址,选择下载视频的质量,方便快捷地下载所需视频。 2. 环境准备 在使用本项目前,需要…

    python 2023年6月2日
    00
  • python保存字典数据到csv文件的完整代码

    下面是Python保存字典数据到CSV文件的完整攻略。 1. 需求说明 我们需要将一个Python字典(可以包含多个键值对)的数据保存到CSV文件中。CSV文件是一种常见的数据文件格式,它以逗号分隔的形式保存数据,通常用于在Excel等电子表格软件中快速地处理和分析数据。 2. 实现步骤 2.1 导入必要的库 我们需要使用Python中内置的CSV库来处理C…

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