教你用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让列表倒序输出的实例

    下面是关于如何让Python列表倒序输出的攻略: 方法1:使用reverse()方法 step 1: 定义一个普通的列表 lis = [1, 2, 3, 4, 5] step 2: 使用reverse()方法对整个列表进行倒序排列,并保存到一个新的列表中 new_list = lis[::-1] step 3:打印出新的列表, 即为正序的列表的倒序排列 pr…

    python 2023年6月5日
    00
  • 解析Python编程中的包结构

    当我们开发一个大型的Python项目时,往往需要模块化地组织代码,使得代码逻辑清晰,易于维护。为了实现这个目标,Python提供了包(Package)这个概念。 包的本质是一个目录,该目录下包含了多个模块(Module)文件和一个名为__init__.py的文件。在我们使用包中模块中的对象时,需要先导入这些对象。在导入时,Python解析器会按照一定的规则查…

    python 2023年6月2日
    00
  • centos6.5安装python3.7.1之后无法使用pip的解决方案

    CentOS 6.5 安装 Python3.7.1 后无法使用 Pip 的解决方案 问题背景 在 CentOS 6.5 上安装 Python3.7.1 后,可能会遇到无法使用 Pip 的问题。这是因为 Python3.7.1 安装时并没有自带 Pip,而 CentOS 6.5 上自带的 Python2.x 可以使用 Pip,因此如果要在 Python3.7.…

    python 2023年5月14日
    00
  • python实现简单的名片管理系统

    Python实现简单的名片管理系统 介绍 本文将介绍如何使用Python实现一个简单的名片管理系统。该系统具有以下功能: 添加一个新的名片 显示名片列表 按名字查找名片 按电话号码查找名片 删除名片 退出系统 实现步骤 创建一个空的名片列表 显示系统菜单,让用户选择需要执行的操作 根据用户的选择执行相应的操作 当用户选择退出系统时,保存名片列表并退出系统 具…

    python 2023年5月30日
    00
  • python网络爬虫精解之正则表达式的使用说明

    Python网络爬虫精解之正则表达式的使用说明 正则表达式是一种强大的工具,可以用于匹配、查找和替换文本中的模式。在Python网络爬虫中,正则表达式常用于解析HTML页面,提取所需的数据。本攻略将详细讲解Python中的正则表达式的基本用法、常用符号和例应用。 基本用法 Python中使用re模块提供的函数来操作正则表达式。模块提供了常用函数: re.se…

    python 2023年5月14日
    00
  • python获取网络图片方法及整理过程详解

    Python获取网络图片方法及整理过程详解 本文主要介绍Python获取网络图片的方法和整理过程,并且提供两条示例说明,帮助人们更好地理解。 获取网络图片方法 下面介绍两种获取网络图片的方法: 1、使用urllib库 import urllib url = ‘http://example.com/picture.jpg’ urllib.urlretrieve…

    python 2023年5月18日
    00
  • 使用python脚本自动创建pip.ini配置文件代码实例

    下面是使用python脚本自动创建pip.ini配置文件的完整攻略: 什么是pip.ini? pip.ini是pip配置文件,包含了一些配置信息,如设置pip源、设置代理等。当使用pip安装或更新Python库时,会从pip.ini文件中读取相应的配置信息,并据此执行相应的操作。 如果没有pip.ini文件,pip会使用默认配置信息进行操作。但是,如果你需要…

    python 2023年5月14日
    00
  • 关于python3安装pip及requests库的导入问题

    下面是安装Python3后安装pip及requests库的导入问题的完整攻略。 安装pip 下载get-pip.py脚本 在终端或CMD中输入以下命令进行下载: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 或者使用如下命令直接在终端下载: wget https://bootstrap.pyp…

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