Python技术迷

用Python写一个带界面的宿舍管理系统

来源:https://mp.weixin.qq.com/s/GLFeq_fAd89j5BKtM51VoA

用Python写一个宿舍管理系统

下面是一个简单的Python宿舍管理系统的例子。这个系统可以添加学生,为学生分配宿舍,以及查看宿舍的学生列表。
class Dormitory:    def __init__(self, name, capacity):        self.name = name        self.capacity = capacity        self.students = []    def add_student(self, student):        if len(self.students) < self.capacity:            self.students.append(student)            return True        else:            return False    def get_students(self):        return self.studentsclass Student:    def __init__(self, name, id):        self.name = name        self.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 True        return False    def 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`类管理所有的宿舍,它可以添加宿舍,为学生分配宿舍,以及查看宿舍的学生列表。

升级下加个界面:

创建一个图形用户界面(GUI)需要使用到一些库,例如Tkinter(Python的标准GUI库)。下面是一个使用Tkinter创建宿舍管理系统界面的例子:
import tkinter as tkfrom tkinter import messageboxclass Dormitory:    def __init__(self, name, capacity):        self.name = name        self.capacity = capacity        self.students = []    def add_student(self, student):        if len(self.students) < self.capacity:            self.students.append(student)            return True        else:            return False    def get_students(self):        return self.studentsclass Student:    def __init__(self, name, id):        self.name = name        self.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 True        return False    def 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 = master        self.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"。

Image
 1
Image
热门推荐

Image