用Python写一个带界面的宿舍管理系统
来源:https://mp.weixin.qq.com/s/GLFeq_fAd89j5BKtM51VoA
用Python写一个宿舍管理系统
class Dormitory:def __init__(self, name, capacity):self.name = nameself.capacity = capacityself.students = []def add_student(self, student):if len(self.students) < self.capacity:self.students.append(student)return Trueelse:return Falsedef get_students(self):return self.studentsclass Student:def __init__(self, name, id):self.name = nameself.id = idclass DormitoryManager:def __init__(self):self.dormitories = []def add_dormitory(self, dormitory):self.dormitories.append(dormitory)def allocate_dormitory(self, student):for dormitory in self.dormitories:if dormitory.add_student(student):return Truereturn Falsedef get_dormitory_students(self, dormitory_name):for dormitory in self.dormitories:if dormitory.name == dormitory_name:return dormitory.get_students()return None# Test the systemmanager = DormitoryManager()# Add dormitoriesmanager.add_dormitory(Dormitory("Dormitory 1", 2))manager.add_dormitory(Dormitory("Dormitory 2", 1))# Add studentsstudent1 = Student("Alice", 1)student2 = Student("Bob", 2)student3 = Student("Charlie", 3)# Allocate dormitoriesmanager.allocate_dormitory(student1)manager.allocate_dormitory(student2)manager.allocate_dormitory(student3)# Print students in each dormitoryprint("Students in Dormitory 1:")for student in manager.get_dormitory_students("Dormitory 1"):print(student.name)print("Students in Dormitory 2:")for student in manager.get_dormitory_students("Dormitory 2"):print(student.name)
这个系统有三个类:Dormitory,Student和DormitoryManager。Dormitory类表示一个宿舍,它有名字和容量,以及一个学生列表。Student类表示一个学生,它有名字和ID。`DormitoryManager`类管理所有的宿舍,它可以添加宿舍,为学生分配宿舍,以及查看宿舍的学生列表。
升级下加个界面:
import tkinter as tkfrom tkinter import messageboxclass Dormitory:def __init__(self, name, capacity):self.name = nameself.capacity = capacityself.students = []def add_student(self, student):if len(self.students) < self.capacity:self.students.append(student)return Trueelse:return Falsedef get_students(self):return self.studentsclass Student:def __init__(self, name, id):self.name = nameself.id = idclass DormitoryManager:def __init__(self):self.dormitories = []def add_dormitory(self, dormitory):self.dormitories.append(dormitory)def allocate_dormitory(self, student):for dormitory in self.dormitories:if dormitory.add_student(student):return Truereturn Falsedef get_dormitory_students(self, dormitory_name):for dormitory in self.dormitories:if dormitory.name == dormitory_name:return dormitory.get_students()return Noneclass DormitoryGUI:def __init__(self, master):self.master = masterself.manager = DormitoryManager()self.dormitory_name_label = tk.Label(master, text="Dormitory Name")self.dormitory_name_label.pack()self.dormitory_name_entry = tk.Entry(master)self.dormitory_name_entry.pack()self.dormitory_capacity_label = tk.Label(master, text="Dormitory Capacity")self.dormitory_capacity_label.pack()self.dormitory_capacity_entry = tk.Entry(master)self.dormitory_capacity_entry.pack()self.add_dormitory_button = tk.Button(master, text="Add Dormitory", command=self.add_dormitory)self.add_dormitory_button.pack()def add_dormitory(self):dormitory_name = self.dormitory_name_entry.get()dormitory_capacity = int(self.dormitory_capacity_entry.get())dormitory = Dormitory(dormitory_name, dormitory_capacity)self.manager.add_dormitory(dormitory)messagebox.showinfo("Success", "Dormitory added successfully")root = tk.Tk()my_gui = DormitoryGUI(root)root.mainloop()
这个程序创建了一个简单的GUI,用户可以输入宿舍的名字和容量,然后点击"Add Dormitory"按钮添加宿舍。当宿舍添加成功后,会弹出一个消息框显示"Dormitory added successfully"。
热门推荐