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

yizhihongxing

用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日

相关文章

  • 新手学习Python2和Python3中print不同的用法

    当学习 Python 编程语言时,我们会发现在 Python 2 和 Python 3 中,print 输出函数的用法是有所不同的。下面我给出一个完整的攻略来帮助新手快速搞清楚这个问题: Python 2 中的 print 在 Python 2 中,print 函数不需要使用括号进行参数的传递,而直接使用空格分隔参数即可。例如: print "He…

    python 2023年6月5日
    00
  • 学习Python selenium自动化网页抓取器

    学习Python Selenium自动化网页抓取器是一项非常重要的技能,可以大大提高爬虫开发的效率。下面是一份完整的攻略,供大家参考: 学习Python Selenium自动化网页抓取器 步骤一:安装Selenium和浏览器驱动 Selenium是Python的一个自动化测试框架,它可以模拟浏览器行为实现自动化操作,包括网页抓取。首先需要安装Selenium…

    python 2023年5月14日
    00
  • 使用 Python 更改 yaml 文件中的值

    【问题标题】:Changing a value in a yaml file using Python使用 Python 更改 yaml 文件中的值 【发布时间】:2023-04-07 02:26:02 【问题描述】: 我有一个要使用 Python 代码更新的 .yaml 文件。假设它看起来像这样: state: ‘present’ 我想要一个更改状态并保存…

    Python开发 2023年4月7日
    00
  • python os模块简单应用示例

    下面我将为你详细讲解“Python os模块简单应用示例”的完整攻略。 1. Python os模块简介 os模块是Python标准库中的一个模块,提供了访问操作系统的各种信息和功能的接口,比如文件操作、进程管理、用户账户管理等。 os模块中常用的函数包括: os.getcwd():获取当前工作目录 os.listdir(path=’.’):获取指定目录下的…

    python 2023年5月30日
    00
  • Python之进行URL编码案例讲解

    Python之进行URL编码案例讲解 什么是URL编码? URL编码,又称百分号编码,是一种用来对URL中的特殊字符进行编码的方法。URL中包含各种各样的字符,但是有一些特殊字符不能直接在URL中使用,比如空格、#、?等。这些特殊字符需要经过编码,才能被放入URL中,否则会引起URL解析错误。 如何进行URL编码? Python中可以使用urllib.par…

    python 2023年5月13日
    00
  • python def 定义函数,调用函数方式

    下面是完整的Python函数定义和调用攻略。 Python函数定义 在Python中,定义一个函数需要使用def关键字。函数定义的一般形式如下: def function_name(parameters): """函数文档字符串""" function_body return [expression…

    python 2023年6月5日
    00
  • 如何在Python中插入PostgreSQL数据库中的数据?

    以下是在Python中插入PostgreSQL数据库中的数据的完整使用攻略。 使用PostgreSQL数据库的前提条件 在使用Python连接PostgreSQL数据库之前,确已经安装了PostgreSQL数据库已经创建使用数据库和表,还需要安装Python的驱动程序,例如psycopg2。 步骤1:导入模块 在Python使用psycopg2模块连接Pos…

    python 2023年5月12日
    00
  • pip报错“TypeError: ‘module’ object is not subscriptable”怎么处理?

    当使用 pip 安装 Python 包时,可能会遇到 “TypeError: ‘module’ object is not subscriptable” 错误。这个错误通常是由于代码中使用了不正确的语法或版本不兼容导致的。以下是详细讲解 pip 报错 “TypeError: ‘module’ object is not subscriptable” 的原因与…

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