Python 学生通讯录管理系统
导言
学生通讯录管理系统是一个用于存储、管理学生信息的程序。它可以实现学生信息的添加、查询、修改和删除等功能。本文将通过代码示例来介绍如何使用Python编程语言来实现这个学生通讯录管理系统。
项目概述
学生通讯录管理系统主要包含以下几个功能:
- 添加学生信息:输入学生姓名、学号、班级等信息,并将其保存到文件中。
- 查询学生信息:根据学号或姓名来查找学生信息,并返回查询结果。
- 修改学生信息:根据学号来修改学生的姓名、班级等信息。
- 删除学生信息:根据学号来删除学生的信息。
项目设计
在开始编写代码之前,我们可以先进行项目设计,即确定需要使用哪些类、函数和数据结构来实现该学生通讯录管理系统。
- 学生类(Student):包含学生的姓名、学号、班级等属性。
- 通讯录类(AddressBook):包含学生信息的列表,并提供对学生信息的增删改查等操作。
- 文件操作类(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-