题目19:课外兴趣小组管理19【问题描述】1该系统主要处理课外兴趣小组的相关信息。2学生信息主要包括:学号、姓名、性别、兴趣爱好等内容。3兴趣主要包括:兴趣编号、兴趣类型等内容。4完成以下的操作:实现学生兴趣信息的添加、修改、删除和查询。【任务要求】1建立学生类、兴趣类、兴趣类型类2学生、兴趣、兴趣类型信息的初始化3学生、兴趣、兴趣类型信息的添加、修改、删除、查找4学生兴趣信息的输出5将学生兴趣信
【解决方案】
- 建立学生类、兴趣类、兴趣类型类
class Student:
def __init__(self, student_id, name, gender, hobbies):
self.student_id = student_id
self.name = name
self.gender = gender
self.hobbies = hobbies
def __str__(self):
return f"Student ID: {self.student_id}\nName: {self.name}\nGender: {self.gender}\nHobbies: {', '.join(self.hobbies)}"
class Interest:
def __init__(self, interest_id, interest_type):
self.interest_id = interest_id
self.interest_type = interest_type
def __str__(self):
return f"Interest ID: {self.interest_id}\nInterest Type: {self.interest_type}"
class InterestType:
def __init__(self, type_id, type_name):
self.type_id = type_id
self.type_name = type_name
def __str__(self):
return f"Type ID: {self.type_id}\nType Name: {self.type_name}"
- 学生、兴趣、兴趣类型信息的初始化
def initialize_data():
students = []
interests = []
interest_types = []
# Initialize student data
student1 = Student("001", "John", "Male", ["Reading", "Music"])
student2 = Student("002", "Mary", "Female", ["Sports", "Painting"])
students.append(student1)
students.append(student2)
# Initialize interest data
interest1 = Interest("001", "Reading")
interest2 = Interest("002", "Music")
interest3 = Interest("003", "Sports")
interest4 = Interest("004", "Painting")
interests.append(interest1)
interests.append(interest2)
interests.append(interest3)
interests.append(interest4)
# Initialize interest type data
type1 = InterestType("001", "Literature")
type2 = InterestType("002", "Music")
type3 = InterestType("003", "Sports")
type4 = InterestType("004", "Art")
interest_types.append(type1)
interest_types.append(type2)
interest_types.append(type3)
interest_types.append(type4)
return students, interests, interest_types
- 学生、兴趣、兴趣类型信息的添加、修改、删除、查找
def add_student(students, student_id, name, gender, hobbies):
student = Student(student_id, name, gender, hobbies)
students.append(student)
def add_interest(interests, interest_id, interest_type):
interest = Interest(interest_id, interest_type)
interests.append(interest)
def add_interest_type(interest_types, type_id, type_name):
type = InterestType(type_id, type_name)
interest_types.append(type)
def modify_student(students, student_id, name, gender, hobbies):
for student in students:
if student.student_id == student_id:
student.name = name
student.gender = gender
student.hobbies = hobbies
def modify_interest(interests, interest_id, interest_type):
for interest in interests:
if interest.interest_id == interest_id:
interest.interest_type = interest_type
def modify_interest_type(interest_types, type_id, type_name):
for type in interest_types:
if type.type_id == type_id:
type.type_name = type_name
def delete_student(students, student_id):
for student in students:
if student.student_id == student_id:
students.remove(student)
def delete_interest(interests, interest_id):
for interest in interests:
if interest.interest_id == interest_id:
interests.remove(interest)
def delete_interest_type(interest_types, type_id):
for type in interest_types:
if type.type_id == type_id:
interest_types.remove(type)
def find_student_by_id(students, student_id):
for student in students:
if student.student_id == student_id:
return student
return None
def find_interest_by_id(interests, interest_id):
for interest in interests:
if interest.interest_id == interest_id:
return interest
return None
def find_interest_type_by_id(interest_types, type_id):
for type in interest_types:
if type.type_id == type_id:
return type
return None
- 学生兴趣信息的输出
def print_student_interests(students, interests):
for student in students:
print(student)
print("Interests:")
for hobby in student.hobbies:
interest = find_interest_by_id(interests, hobby)
if interest:
print(interest)
print("----------------------------------")
def print_all_interests(interests, interest_types):
for interest in interests:
print(interest)
type = find_interest_type_by_id(interest_types, interest.interest_type)
if type:
print(type)
print("----------------------------------")
- 将学生兴趣信息保存为文件
def save_student_interests(students, interests, filename):
with open(filename, 'w') as file:
for student in students:
file.write(str(student) + "\n")
file.write("Interests:\n")
for hobby in student.hobbies:
interest = find_interest_by_id(interests, hobby)
if interest:
file.write(str(interest) + "\n")
file.write("----------------------------------\n")
# Example usage:
students, interests, interest_types = initialize_data()
add_student(students, "003", "David", "Male", ["Sports", "Music"])
add_interest(interests, "005", "Dancing")
add_interest_type(interest_types, "005", "Performing Arts")
modify_student(students, "002", "Mary Smith", "Female", ["Sports", "Painting", "Music"])
modify_interest(interests, "004", "Photography")
modify_interest_type(interest_types, "004", "Visual Arts")
delete_student(students, "001")
delete_interest(interests, "002")
delete_interest_type(interest_types, "002")
student = find_student_by_id(students, "002")
if student:
print(student)
else:
print("Student not found")
interest = find_interest_by_id(interests, "004")
if interest:
print(interest)
else:
print("Interest not found")
interest_type = find_interest_type_by_id(interest_types, "002")
if interest_type:
print(interest_type)
else:
print("Interest type not found")
print_student_interests(students, interests)
print_all_interests(interests, interest_types)
save_student_interests(students, interests, "student_interests.txt")
这样,你就可以通过调用相应的函数来实现学生兴趣信息的添加、修改、删除和查询,并将学生兴趣信息保存到文件中
原文地址: https://www.cveoy.top/t/topic/hB3J 著作权归作者所有。请勿转载和采集!