Python 学生通讯录管理系统

导言

学生通讯录管理系统是一个用于存储、管理学生信息的程序。它可以实现学生信息的添加、查询、修改和删除等功能。本文将通过代码示例来介绍如何使用Python编程语言来实现这个学生通讯录管理系统。

项目概述

学生通讯录管理系统主要包含以下几个功能:

  1. 添加学生信息:输入学生姓名、学号、班级等信息,并将其保存到文件中。
  2. 查询学生信息:根据学号或姓名来查找学生信息,并返回查询结果。
  3. 修改学生信息:根据学号来修改学生的姓名、班级等信息。
  4. 删除学生信息:根据学号来删除学生的信息。

项目设计

在开始编写代码之前,我们可以先进行项目设计,即确定需要使用哪些类、函数和数据结构来实现该学生通讯录管理系统。

  1. 学生类(Student):包含学生的姓名、学号、班级等属性。
  2. 通讯录类(AddressBook):包含学生信息的列表,并提供对学生信息的增删改查等操作。
  3. 文件操作类(FileOperator):用于读取和写入学生信息的文件。

项目实现

首先,我们需要创建一个学生类(Student),并定义它的属性和方法。代码示例如下:

class Student:
    def __init__(self, name, number, cls):
        self.name = name
        self.number = number
        self.cls = cls

    def __str__(self):
        return f"姓名:{self.name},学号:{self.number},班级:{self.cls}"

接下来,我们创建一个通讯录类(AddressBook),并定义它的属性和方法。代码示例如下:

class AddressBook:
    def __init__(self):
        self.students = []

    def add_student(self, student):
        self.students.append(student)

    def search_student(self, keyword):
        result = []
        for student in self.students:
            if keyword in student.name or keyword in student.number:
                result.append(student)
        return result

    def modify_student(self, number, new_name, new_cls):
        for student in self.students:
            if student.number == number:
                student.name = new_name
                student.cls = new_cls
                break

    def delete_student(self, number):
        for student in self.students:
            if student.number == number:
                self.students.remove(student)
                break

最后,我们创建一个文件操作类(FileOperator),用于读取和写入学生信息的文件。代码示例如下:

class FileOperator:
    @staticmethod
    def read_students(file_path):
        students = []
        with open(file_path, 'r') as file:
            for line in file:
                name, number, cls = line.strip().split(',')
                student = Student(name, number, cls)
                students.append(student)
        return students

    @staticmethod
    def write_students(file_path, students):
        with open(file_path, 'w') as file:
            for student in students:
                file.write(f"{student.name},{student.number},{student.cls}\n")

项目演示

下面是一个使用学生通讯录管理系统的例子:

file_path = 'students.txt'
address_book = AddressBook()

# 读取学生信息
students = FileOperator.read_students(file_path)
address_book.students = students

# 添加学生信息
student1 = Student("张三", "001", "一班")
student2 = Student("李四", "002", "二班")
address_book.add_student(student1)
address_book.add_student(student2)

# 查询学生信息
result = address_book.search_student("张三")
for student in result:
    print(student)

# 修改学生信息
address_book.modify_student("001", "王五", "三班")

# 删除学生信息
address_book.delete_student("002")

# 将学生信息写入文件
FileOperator.write_students(file_path, address_book.students)

甘特图

下面是一个使用mermaid语法绘制的甘特图,展示了学生通讯录管理系统的开发进度:

gantt
    dateFormat  YYYY-MM-DD
    title 学生通讯录管理系统开发进度

    section 设计
    需求分析           :done,    des1, 2022-10-01, 5d
    项目设计           :done,    des2, 2022-10-