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

用Python写一个宿舍管理系统

下面是一个简单的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.students

class Student:

def \_\_init\_\_(self, name, id):

    self.name = name

    self.id = id

class 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 system

manager = DormitoryManager()

# Add dormitories

manager.add_dormitory(Dormitory(“Dormitory 1”, 2))

manager.add_dormitory(Dormitory(“Dormitory 2”, 1))

# Add students

student1 = Student(“Alice”, 1)

student2 = Student(“Bob”, 2)

student3 = Student(“Charlie”, 3)

# Allocate dormitories

manager.allocate_dormitory(student1)

manager.allocate_dormitory(student2)

manager.allocate_dormitory(student3)

# Print students in each dormitory

print(“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创建宿舍管理系统界面的例子:

```python

import tkinter as tk

from tkinter import messagebox

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.students

class Student:

def \_\_init\_\_(self, name, id):

    self.name = name

    self.id = id

class 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

class 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"。

点击下方安全链接前往获取

CSDN大礼包:《Python入门&进阶学习资源包》免费分享

👉Python实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

👉Python书籍和视频合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

图片

👉Python副业创收路线👈

图片

这些资料都是非常不错的,朋友们如果有需要《Python学习路线&学习资料》,点击下方安全链接前往获取

CSDN大礼包:《Python入门&进阶学习资源包》免费分享

本文转自网络,如有侵权,请联系删除。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我将为你提供一个简易的高校宿舍管理系统,包含登陆界面和基本的数据库操作。这个系统将使用SQLite作为数据库,Python作为开发语言,Tkinter作为GUI工具。 1. 登陆界面 以下是一个简单的登陆界面的代码示例: ```python from tkinter import * import sqlite3 # 创建数据库 conn = sqlite3.connect('dormitory.db') cursor = conn.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password TEXT NOT NULL)''') conn.commit() # 处理用户登录 def login(): username = username_entry.get() password = password_entry.get() cursor.execute("SELECT * FROM users WHERE username = ? AND password = ?", (username, password)) if cursor.fetchone() is not None: # 登录成功 print("Welcome, " + username + "!") else: # 登录失败 print("Incorrect username or password.") # 创建登陆界面 root = Tk() root.title("Dormitory Management System") username_label = Label(root, text="Username") username_label.pack() username_entry = Entry(root) username_entry.pack() password_label = Label(root, text="Password") password_label.pack() password_entry = Entry(root, show="*") password_entry.pack() login_button = Button(root, text="Login", command=login) login_button.pack() root.mainloop() ``` 2. 数据库操作 以下是一个简单的数据库操作的代码示例: ```python import sqlite3 # 连接数据库 conn = sqlite3.connect('dormitory.db') cursor = conn.cursor() # 创建宿舍表 cursor.execute('''CREATE TABLE IF NOT EXISTS dormitories (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE, capacity INTEGER NOT NULL)''') conn.commit() # 插入宿舍信息 cursor.execute("INSERT INTO dormitories (name, capacity) VALUES (?, ?)", ("Dorm A", 50)) conn.commit() # 更新宿舍信息 cursor.execute("UPDATE dormitories SET capacity = ? WHERE name = ?", (60, "Dorm A")) conn.commit() # 查询宿舍信息 cursor.execute("SELECT * FROM dormitories") rows = cursor.fetchall() for row in rows: print(row) # 关闭数据库连接 conn.close() ``` 综上所述,这是一个简易的高校宿舍管理系统,包含登陆界面和基本的数据库操作。你可以根据自己的需要进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值