用Python实现职工信息管理系统

用Python实现职工信息管理系统

简介

本文将介绍如何使用Python实现一个职工信息管理系统。该系统将包括以下功能:

  1. 添加职工信息
  2. 删除职工信息
  3. 修改职工信息
  4. 查询职工信息

准备工作

在实现本系统之前,需要先安装Python解释器和相关库。我们强烈推荐使用Python 3.x版本。

安装完Python后,我们需要安装以下库:

  1. pandas:用于处理数据和文件数据输入输出
  2. tkinter:用于实现GUI界面
  3. sqlite3:用于对SQLite数据库进行操作

安装pandas库

可以使用pip命令进行安装:

pip install pandas

安装tkinter库

Tkinter是Python自带的库,我们可以直接import使用:

import tkinter as tk

安装sqlite3库

可以使用pip命令进行安装:

pip install db-sqlite3

实现步骤

步骤一:创建数据库

我们使用SQLite数据库来存储职工信息。可以使用以下代码创建一个名为Employee的表:

import sqlite3

database = sqlite3.connect('employee.db')
cursor = database.cursor()
cursor.execute('''CREATE TABLE Employee
                 (ID INT PRIMARY KEY     NOT NULL,
                 NAME           TEXT    NOT NULL,
                 AGE            INT     NOT NULL,
                 ADDRESS        CHAR(100));''')
database.close()

步骤二:实现添加职工信息功能

可以使用以下代码实现添加职工信息功能:

import pandas as pd
import sqlite3

def add_employee(id, name, age, address):
    data = {'ID': [id], 'NAME': [name], 'AGE': [age], 'ADDRESS': [address]}
    df = pd.DataFrame(data)
    database = sqlite3.connect('employee.db')
    df.to_sql('Employee', database, if_exists='append', index=False)
    database.close()

该函数将接收职工的ID、姓名、年龄和地址作为参数,然后把它们打包成一个DataFrame对象,最后将这个对象写入到SQLite数据库中。

步骤三:实现删除职工信息功能

可以使用以下代码实现删除职工信息功能:

import sqlite3

def delete_employee(id):
    database = sqlite3.connect('employee.db')
    cursor = database.cursor()
    cursor.execute("DELETE FROM Employee WHERE ID=?", (id,))
    database.commit()
    database.close()

该函数将接收职工的ID作为参数,然后在SQLite数据库中删除该职工的信息。

步骤四:实现修改职工信息功能

可以使用以下代码实现修改职工信息功能:

import pandas as pd
import sqlite3

def update_employee(id, name=None, age=None, address=None):
    database = sqlite3.connect('employee.db')
    df = pd.read_sql_query("SELECT * from Employee WHERE ID = " + str(id), database)
    if not df.empty:
        if name is not None:
            df.loc[0, 'NAME'] = name
        if age is not None:
            df.loc[0, 'AGE'] = age
        if address is not None:
            df.loc[0, 'ADDRESS'] = address
        df.to_sql('Employee', database, if_exists='replace', index=False)
    database.close()

该函数将接收职工的ID、姓名、年龄和地址作为参数,然后在SQLite数据库中查找该职工的信息,如果找到了,就修改相应的信息,最后把修改后的信息写回到数据库中。

步骤五:实现查询职工信息功能

可以使用以下代码实现查询职工信息功能:

import pandas as pd
import sqlite3

def query_employee(id=None, name=None):
    database = sqlite3.connect('employee.db')
    if id is not None:
        df = pd.read_sql_query("SELECT * from Employee WHERE ID = " + str(id), database)
    elif name is not None:
        df = pd.read_sql_query("SELECT * from Employee WHERE NAME = '" + name + "'", database)
    else:
        df = pd.read_sql_query("SELECT * from Employee", database)
    database.close()
    return df

该函数将接收职工的ID或姓名作为参数,然后在SQLite数据库中查找相应的职工信息,最后把查询结果返回。

示例说明1:使用GUI界面添加职工信息

我们可以使用Tkinter库来实现一个简单的GUI界面来添加职工信息,代码如下:

import tkinter as tk
from tkinter import messagebox
import employee

class App:
    def __init__(self):
        self.window = tk.Tk()
        self.window.geometry("500x300")
        self.window.title("Add employee")

        tk.Label(self.window, text="ID", font=('Arial', 14)).place(x=100, y=50)
        tk.Label(self.window, text="Name", font=('Arial', 14)).place(x=100, y=100)
        tk.Label(self.window, text="Age", font=('Arial', 14)).place(x=100, y=150)
        tk.Label(self.window, text="Address", font=('Arial', 14)).place(x=100, y=200)

        self.id_entry = tk.Entry(self.window, font=('Arial', 14))
        self.id_entry.place(x=200, y=50)
        self.name_entry = tk.Entry(self.window, font=('Arial', 14))
        self.name_entry.place(x=200, y=100)
        self.age_entry = tk.Entry(self.window, font=('Arial', 14))
        self.age_entry.place(x=200, y=150)
        self.address_entry = tk.Entry(self.window, font=('Arial', 14))
        self.address_entry.place(x=200, y=200)

        tk.Button(self.window, text="Add", font=('Arial', 14), command=self.add_employee).place(x=200, y=250)

        self.window.mainloop()

    def add_employee(self):
        id = int(self.id_entry.get())
        name = self.name_entry.get()
        age = int(self.age_entry.get())
        address = self.address_entry.get()

        employee.add_employee(id, name, age, address)
        messagebox.showinfo("Add employee", "Employee added successfully.")

if __name__ == '__main__':
    app = App()

该界面将显示一个添加职工信息的表单,用户可以在表单中填写职工的ID、姓名、年龄和地址信息后,点击Add按钮,将会把填写的信息添加到数据库中。

示例说明2:使用命令行界面查询职工信息

我们可以使用命令行界面来实现查询职工信息的功能,代码如下:

import pandas as pd
import employee

def print_employee_info(df):
    for index, row in df.iterrows():
        print(row['ID'], row['NAME'], row['AGE'], row['ADDRESS'])

def main():
    id = int(input("Please input employee ID (0 for all employees): "))
    if id == 0:
        df = employee.query_employee()
    else:
        df = employee.query_employee(id=id)
    if df.empty:
        print("No employee found.")
    else:
        print_employee_info(df)

if __name__ == '__main__':
    main()

用户可以在命令行中输入职工的ID,程序将查询相应的职工信息,如果ID为0,则查询所有的职工信息,并将结果输出到命令行中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用Python实现职工信息管理系统 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • Python IO文件管理的具体使用

    下面我将为您详细讲解Python IO文件管理的具体使用。 介绍 在Python中,IO操作是非常常用和重要的部分,对于文件的读写操作、目录的浏览和管理、Sockets的操作等等都是需要用到IO操作的。在Python中,我们可以使用open()函数打开、读取和写入文件,使用os模块进行文件和目录的操作。 打开文件 我们可以使用open()函数打开一个文件,语…

    python 2023年5月20日
    00
  • 如何使用 Redis 的 Lua 脚本实现分布式锁?

    以下是详细讲解如何使用 Redis 的 Lua 脚本实现分布式锁的完整使用攻略。 Redis 分布式锁简介 Redis 分布式锁是一常用的分布式锁实现方式,可以用于控制分布式系统中的并发访问。 分布式锁的特点如下: Redis 分布式锁是基于 Redis 的 SETNX 命令实现的。 Redis 分布式锁是原子的,保证操作的原子性。 Redis 分布式锁是可…

    python 2023年5月12日
    00
  • 如何在NumPy中为行和列设置坐标轴

    在NumPy中,可以使用np.meshgrid函数为数组设置坐标轴。 首先,我们先导入NumPy库: import numpy as np 为行和列设置坐标轴 np.meshgrid函数可以将两个轴的坐标用于生成一个网格。该函数输入两个一维数组,并返回两个二维数组,其中一个数组用于行,另一个数组用于列。示例代码如下: x = np.array([1, 2, …

    python-answer 2023年3月25日
    00
  • Python 读取图片文件为矩阵和保存矩阵为图片的方法

    先从Python读取图片文件为矩阵说起。 1.安装PIL库 首先需要安装PIL (Python Imaging Library)库,使用以下命令即可: pip install Pillow 2.读取图片文件 接着,使用PIL库中的Image模块打开、读取图片文件,代码如下: from PIL import Image image = Image.open(‘…

    python 2023年5月18日
    00
  • python制作一个简单的gui 数据库查询界面

    下面是关于如何使用Python制作一个简单的GUI数据库查询界面的攻略: 简介 GUI(Graphical User Interface)是图形用户界面的缩写,通过图形界面来实现用户和程序之间的交互,比传统的命令行界面更方便、易用。在此基础上,结合数据库查询,可以实现更为复杂的数据操作。Python语言作为一种易学易用的编程语言,支持多种图形界面框架,如Tk…

    python 2023年6月13日
    00
  • Python+OpenCV检测灯光亮点的实现方法

    Python+OpenCV检测灯光亮点的实现方法 概述 在计算机视觉领域中,灯光亮点检测是一项基础任务,涉及到图像处理、边缘检测、图像分割等多个方面。通过在图像中检测亮点,可以实现诸如研究光学性质、寻找特定形状物体等任务。 OpenCV是一个流行的计算机视觉库,提供了大量的图像处理、机器学习、深度学习等功能。通过结合Python和OpenCV,可以实现灯光亮…

    python 2023年6月2日
    00
  • Python实现网站表单提交和模板

    Python实现网站表单提交和模板是一种常见的自动化测试方法,可以帮助我们更好地测试网站的功能和稳定性。本文将介绍如何使用Python实现网站表单提交和模板,并提供两个示例。 1. 使用requests库实现网站表单提交 我们可以使用requests库实现网站表单提交。以下是一个示例,演示如何使用requests库实现网站表单提交: import reque…

    python 2023年5月15日
    00
  • Python中的字符串切片(截取字符串)的详解

    关于Python中的字符串切片,以下是详细攻略: 什么是字符串切片? 字符串切片,也称为截取字符串,是指从字符串中提取出一部分字符串的操作。Python中的字符串切片采用类似于列表的访问方式,使用方括号“[ ]”并提供起始索引和结束索引,两者用冒号“:”隔开表示。 字符串切片步骤 使用方括号“[ ]”指定切片的范围。 以冒号“:”为分隔符,左边表示起始索引,…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部