用Python实现职工信息管理系统
简介
本文将介绍如何使用Python实现一个职工信息管理系统。该系统将包括以下功能:
- 添加职工信息
- 删除职工信息
- 修改职工信息
- 查询职工信息
准备工作
在实现本系统之前,需要先安装Python解释器和相关库。我们强烈推荐使用Python 3.x版本。
安装完Python后,我们需要安装以下库:
- pandas:用于处理数据和文件数据输入输出
- tkinter:用于实现GUI界面
- 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技术站