【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】

简介: 【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】

一、设计要求

该代码实现了一个基于 Python 的员工管理系统,使用 SQLite 数据库进行数据存储和管理。主要功能包括添加、更新、删除、查询和显示员工信息。以下是详细的设计思路分析:


1. 数据库管理模块

EmployeeDatabase 类

  • 初始化:连接 SQLite 数据库,并调用 create_table 方法创建员工表。
  • 创建表:在数据库中创建一个包含员工信息的表 employees,字段包括 ID、姓名、年龄、婚姻状况、学历、职位和入职日期。
  • 插入员工:向数据库中插入新的员工记录。
  • 更新员工:根据员工 ID 更新员工信息。
  • 删除员工:根据员工 ID 删除员工记录。
  • 查询员工:根据条件查询员工信息,返回所有符合条件的记录。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 员工 ” 获取,拿来即用。👈👈👈


2. 用户界面模块

EmployeeManagementSystem 类(继承自 QMainWindow)

  • 初始化:设置窗口标题和尺寸,初始化数据库连接,创建主窗口部件和布局。
  • 表单布局:创建一个表单布局,用于输入员工信息,包括姓名、年龄、婚姻状况、学历、职位和入职日期。
  • 按钮布局:创建多个按钮,分别用于添加、更新、删除、查询和显示所有员工。
  • 表格布局:创建一个表格,用于显示员工信息,表格的列包括 ID、姓名、年龄、婚姻状况、学历、职位和入职日期。


3. 事件处理模块
  • 添加员工
  • 从表单获取员工信息。
  • 调用数据库的 insert_employee 方法插入员工记录。
  • 显示成功信息。
  • 更新员工
  • 获取当前选中行的员工 ID 和表单中的更新信息。
  • 调用数据库的 update_employee 方法更新员工记录。
  • 显示成功信息。
  • 删除员工
  • 获取当前选中行的员工 ID。
  • 调用数据库的 delete_employee 方法删除员工记录。
  • 从表格中移除该行。
  • 查询员工
  • 根据表单中的输入条件构建查询条件字符串。
  • 调用数据库的 query_employees 方法查询符合条件的员工记录。
  • 更新表格显示查询结果。
  • 显示成功信息。
  • 显示所有员工
  • 调用数据库的 query_employees 方法查询所有员工记录。
  • 更新表格显示所有员工信息。


4. 用户交互模块
  • 表单输入:用户通过表单输入员工信息或查询条件。
  • 按钮点击:用户点击按钮触发相应的事件处理函数。
  • 表格显示:用户在表格中查看员工信息,选择行进行更新或删除操作。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 员工 ” 获取,拿来即用。👈👈👈


二、设计思路

1. 数据库管理模块

EmployeeDatabase 类

  • 初始化:创建与 SQLite 数据库的连接并初始化员工表。
  • 创建表:创建一个包含员工信息的表employees,包含以下字段:
  • id: 主键,整数类型。
  • name: 员工姓名,文本类型。
  • age: 员工年龄,整数类型。
  • marital_status: 婚姻状况,文本类型。
  • education: 学历,文本类型。
  • position: 职位,文本类型。
  • start_date: 入职日期,文本类型。
  • 插入员工:向数据库插入一条新的员工记录。
  • 更新员工:根据员工 ID 更新员工信息。
  • 删除员工:根据员工 ID 删除员工记录。
  • 查询员工:根据可选条件查询员工信息。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 员工 ” 获取,拿来即用。👈👈👈


代码示例

class EmployeeDatabase:
    def __init__(self):
        self.conn = sqlite3.connect('employee.db')
        self.create_table()

    def create_table(self):
        cursor = self.conn.cursor()
        cursor.execute('''CREATE TABLE IF NOT EXISTS employees (
                          id INTEGER PRIMARY KEY,
                          name TEXT,
                          age INTEGER,
                          marital_status TEXT,
                          education TEXT,
                          position TEXT,
                          start_date TEXT)''')
        self.conn.commit()

    def insert_employee(self, name, age, marital_status, education, position, start_date):
        cursor = self.conn.cursor()
        cursor.execute('INSERT INTO employees (name, age, marital_status, education, position, start_date) VALUES (?, ?, ?, ?, ?, ?)',
                       (name, age, marital_status, education, position, start_date))
        self.conn.commit()

    # 代码略(至少十行)... 
    # 代码略(至少十行)... 

    def delete_employee(self, emp_id):
        cursor = self.conn.cursor()
        cursor.execute('DELETE FROM employees WHERE id=?', (emp_id,))
        self.conn.commit()

    def query_employees(self, condition=None):
        cursor = self.conn.cursor()
        if condition:
            cursor.execute(f'SELECT * FROM employees WHERE {condition}')
        else:
            cursor.execute('SELECT * FROM employees')
        return cursor.fetchall()


2. 用户界面模块

EmployeeManagementSystem 类(继承自 QMainWindow)

  • 初始化:设置窗口标题和尺寸,初始化数据库连接,创建主窗口部件和布局。
  • 表单布局:创建用于输入员工信息的表单,包括姓名、年龄、婚姻状况、学历、职位和入职日期。
  • 按钮布局:创建按钮用于添加、更新、删除、查询和显示所有员工。
  • 表格布局:创建表格显示员工信息,表格的列包括 ID、姓名、年龄、婚姻状况、学历、职位和入职日期。


代码示例

class EmployeeManagementSystem(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('员工管理系统')
        self.setGeometry(100, 100, 800, 600)
        self.db = EmployeeDatabase()

        self.main_widget = QWidget()
        self.setCentralWidget(self.main_widget)
        self.layout = QVBoxLayout(self.main_widget)

    # 代码略(至少十行)... 
    # 代码略(至少十行)... 

        self.form_layout.addRow('姓名:', self.name_input)
        self.form_layout.addRow('年龄:', self.age_input)
        self.form_layout.addRow('婚姻状况:', self.marital_status_input)
        self.form_layout.addRow('学历:', self.education_input)
        self.form_layout.addRow('职位:', self.position_input)
        self.form_layout.addRow('入职日期:', self.start_date_input)

        self.layout.addLayout(self.form_layout)

    # 代码略(至少十行)... 
    # 代码略(至少十行)... 

        self.layout.addLayout(self.button_layout)

        self.table = QTableWidget()
        self.table.setColumnCount(7)
        self.table.setHorizontalHeaderLabels(['ID', '姓名', '年龄', '婚姻状况', '学历', '职位', '入职日期'])
        self.layout.addWidget(self.table)

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 员工 ” 获取,拿来即用。👈👈👈


3. 事件处理模块
  • 添加员工:从表单获取员工信息并插入数据库,显示成功信息。
  • 更新员工:获取当前选中行的员工 ID 和表单中的更新信息,更新数据库记录,显示成功信息。
  • 删除员工:获取当前选中行的员工 ID,删除数据库记录,从表格中移除该行,显示成功信息。
  • 查询员工:根据表单中的输入条件构建查询条件,查询数据库记录,更新表格显示结果。
  • 显示所有员工:查询所有员工记录,更新表格显示所有员工信息。


代码示例

    def add_employee(self):
        name = self.name_input.text()
        age = self.age_input.text()
        marital_status = self.marital_status_input.currentText()
        education = self.education_input.text()
        position = self.position_input.text()
        
    # 代码略(至少十行)... 
    # 代码略(至少十行)... 

        self.db.update_employee(emp_id, name, age, marital_status, education, position, start_date)
        QMessageBox.information(self, '成功', '员工更新成功!')

    def delete_employee(self):
        current_row = self.table.currentRow()
        if current_row == -1:
            QMessageBox.warning(self, '警告', '请选择要删除的员工')
            return
    # 代码略(至少十行)... 
    # 代码略(至少十行)... 

    def show_all_employees(self):
        employees = self.db.query_employees()
        self.table.setRowCount(0)
        for row_number, row_data in enumerate(employees):
            self.table.insertRow(row_number)
            for column_number, data in enumerate(row_data):
                self.table.setItem(row_number, column_number, QTableWidgetItem(str(data)))

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 员工 ” 获取,拿来即用。👈👈👈

(程序启动)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = EmployeeManagementSystem()
    window.show()
    sys.exit(app.exec_())


  1. 数据库管理EmployeeDatabase 类处理所有数据库操作,包括表的创建、员工记录的增删改查。
  2. 用户界面EmployeeManagementSystem 类创建 GUI 界面,包括表单输入、按钮和表格显示。
  3. 事件处理:各个按钮的点击事件处理函数实现具体功能,通过与数据库的交互来完成员工信息的管理。


实现了一个功能完整的员工管理系统,具有良好的用户交互体验和数据管理能力。


三、可视化分析

1. 添加员工信息


👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 员工 ” 获取,拿来即用。👈👈👈


2. 显示所有员工


3. 查询信息


3. 删除信息

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 员工 ” 获取,拿来即用。👈👈👈



4. 更改信息


👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 员工 ” 获取,拿来即用。👈👈👈

相关文章
|
7天前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
|
1月前
|
Ubuntu Shell Linux
pyenv 管理多个 Python 版本(1)
pyenv 管理多个 Python 版本(1)
183 86
pyenv 管理多个 Python 版本(1)
|
1月前
|
Shell Python
使用 pyenv 来管理多个 Python 版本(2)
使用 pyenv 来管理多个 Python 版本(2)
120 71
使用 pyenv 来管理多个 Python 版本(2)
|
14天前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
1月前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
52 7
|
2月前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
149 2
|
2月前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
Linux C语言 开发者
源码安装Python学会有用还能装逼 | 解决各种坑
相信朋友们都看过这个零基础学习Python的开篇了
469 0
源码安装Python学会有用还能装逼 | 解决各种坑