利用面向对象思想实现一个学校的学生、老师账户的管理系统,功能包含两类账户的增删改查,结果存储到各自的文件中。两类用户的公共属性提取到person公共父类中。代码写到jupyter-notebook文件中保存提交。
时间: 2024-09-24 21:29:38 浏览: 43
为了实现一个基于面向对象的学校学生和老师账户管理系统的Jupyter Notebook项目,首先我们需要创建几个类来表示用户(Person)、学生(Student)和老师(Teacher),并将它们的公共属性如姓名(name)和ID(id)抽取到名为`Person`的公共父类中。以下是基本的步骤和代码结构:
```python
# Person.py (公共父类)
class Person:
def __init__(self, id, name):
self.id = id
self.name = name
# 公共方法,如设置和获取信息
def set_info(self, new_name=None, new_id=None):
if new_name is not None:
self.name = new_name
if new_id is not None:
self.id = new_id
def get_info(self):
return f"ID: {self.id}, Name: {self.name}"
# Student.py (子类)
class Student(Person):
def __init__(self, id, name, grade):
super().__init__(id, name)
self.grade = grade
# 学生特有的方法,如添加课程
def add_course(self, course):
print(f"{self.get_info()} added a course: {course}")
# Teacher.py (子类)
class Teacher(Person):
def __init__(self, id, name, subject):
super().__init__(id, name)
self.subject = subject
# 老师特有的方法,如发布讲座
def publish_talk(self, talk_title):
print(f"{self.get_info()} published a talk: {talk_title}")
# 管理系统模块
def manage_accounts(user_type, action, *args):
if user_type == 'student':
user_class = Student
elif user_type == 'teacher':
user_class = Teacher
else:
raise ValueError("Invalid user type")
# 动态实例化并操作账户
account = user_class(*args)
if action == 'create':
print(f"Creating {account.get_info()}")
elif action == 'read':
print(account.get_info())
elif action == 'update':
account.set_info(*args[1:])
print(account.get_info())
elif action == 'delete':
print(f"{account.get_info()} has been deleted")
else:
raise ValueError("Unsupported action")
# 使用示例
manage_accounts('student', 'create', 1001, "张三", 9)
manage_accounts('teacher', 'create', 2001, "李四", "数学")
```
这个简单的实现展示了如何使用面向对象的方式处理学生的和老师的账户操作,并将公共部分封装到`Person`类中。每个类都有特定的方法(比如学生有添加课程,教师有发布讲座),并在`manage_accounts`函数中实现了增删改查的功能。
阅读全文