用python解决,尽量不使用ai,因为要进行答辩

简单的职工管理系统

◆ 问题描述
  对单位的职工进行管理,包括插入、删除、查找、排序等功能。
◆ 要求
  职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。
(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
(2)删除一名职工:从职工管理文件中删除一名职工对象。
(3)查询:从职工管理文件中查询符合某些条件的职工。
(4)修改:检索某个职工对象,对其某些属性进行修改。
(5)排序:按某种需要对职工对象文件进行排序。
◆ 实现提示
  职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。
(1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。
(2)对职工对象中的"姓名"按字典顺序进行排序。
(3)对排序后的职工对象进行增、删、查询、修改等操作。


import json

class Employee:
    def __init__(self, name, gender, birth_date, work_date, education, position, address, phone):
        self.name = name
        self.gender = gender
        self.birth_date = birth_date
        self.work_date = work_date
        self.education = education
        self.position = position
        self.address = address
        self.phone = phone

    def __str__(self):
        return f"姓名:{self.name}\n性别:{self.gender}\n出生年月:{self.birth_date}\n工作年月:{self.work_date}\n学历:{self.education}\n职务:{self.position}\n住址:{self.address}\n电话:{self.phone}"

class EmployeeManagementSystem:
    def __init__(self):
        self.employees = []

    def add_employee(self, employee):
        self.employees.append(employee)

    def remove_employee(self, name):
        for employee in self.employees:
            if employee.name == name:
                self.employees.remove(employee)
                return True
        return False

    def search_employee(self, name):
        for employee in self.employees:
            if employee.name == name:
                return employee
        return None

    def modify_employee(self, name, attribute, new_value):
        employee = self.search_employee(name)
        if employee:
            setattr(employee, attribute, new_value)
            return True
        return False

    def sort_employees(self):
        self.employees.sort(key=lambda x: x.name)

    def display_employees(self):
        for employee in self.employees:
            print(employee)
            print()

    def save_employees(self, filename):
        data = []
        for employee in self.employees:
            data.append({
                "name": employee.name,
                "gender": employee.gender,
                "birth_date": employee.birth_date,
                "work_date": employee.work_date,
                "education": employee.education,
                "position": employee.position,
                "address": employee.address,
                "phone": employee.phone
            })
        with open(filename, "w") as file:
            json.dump(data, file)

    def load_employees(self, filename):
        try:
            with open(filename, "r") as file:
                data = json.load(file)
                for item in data:
                    employee = Employee(
                        item["name"],
                        item["gender"],
                        item["birth_date"],
                        item["work_date"],
                        item["education"],
                        item["position"],
                        item["address"],
                        item["phone"]
                    )
                    self.add_employee(employee)
        except FileNotFoundError:
            print("未找到保存的职工信息文件!")

def main():
    emp_sys = EmployeeManagementSystem()

    # 加载之前保存的职工信息
    emp_sys.load_employees("employees.json")

    while True:
        print("********** 职工管理系统 **********")
        print("1. 新增职工")
        print("2. 删除职工")
        print("3. 查询职工")
        print("4. 修改职工")
        print("5. 排序职工")
        print("6. 显示职工")
        print("0. 退出系统")
        choice = input("请输入您的选择:")

        if choice == "1":
            name = input("请输入姓名:")
            gender = input("请输入性别:")
            birth_date = input("请输入出生年月:")
            work_date = input("请输入工作年月:")
            education = input("请输入学历:")
            position = input("请输入职务:")
            address = input("请输入住址:")
            phone = input("请输入电话:")
            employee = Employee(name, gender, birth_date, work_date, education, position, address, phone)
            emp_sys.add_employee(employee)
            print("职工添加成功!\n")

        elif choice == "2":
            name = input("请输入要删除的职工姓名:")
            if emp_sys.remove_employee(name):
                print("职工删除成功!\n")
            else:
                print("未找到该职工!\n")

        elif choice == "3":
            name = input("请输入要查询的职工姓名:")
            employee = emp_sys.search_employee(name)
            if employee:
                print(employee)
                print()
            else:
                print("未找到该职工!\n")

        elif choice == "4":
            name = input("请输入要修改的职工姓名:")
            attribute = input("请输入要修改的属性:")
            new_value = input("请输入新的属性值:")
            if emp_sys.modify_employee(name, attribute, new_value):
                print("职工修改成功!\n")
            else:
                print("未找到该职工!\n")

        elif choice == "5":
            emp_sys.sort_employees()
            print("职工排序成功!\n")

        elif choice == "6":
            emp_sys.display_employees()

        elif choice == "0":
            # 保存职工信息
            emp_sys.save_employees("employees.json")
            break

        else:
            print("请输入有效的选项!\n")

if __name__ == "__main__":
    main()

楼上几个都是ai机器写的,建议你还是别用,老师也不是傻瓜。
给你一个人工写的代码:

info_list = [] #用来存放所有职员数据,每一个职员的数据都是一个列表

while True:
    # 1、界面
    print("-------职员信息管理系统-------")
    print("--1、添加职员信息")
    print("--2、删除职员信息")
    print("--3、查看所有职员信息")
    print("--4、退出管理系统")
    print("-"*30)
    # 2、输入、接收用户的输入的数字,执行对应操作
    command = int(input("请输入1到4之间的数字,进行相应操作:"))
    # 3、通过判断用户输入的数字来执行对应的操作
    if command == 1:
        #添加员工信息
        #让用户输入姓名、员工ID、身份证号
        em_name = input("请输入员工姓名:")
        #获取员工id,长度为5位,并且只能为纯数字
        while True:
            em_work_id = input("请输入员工ID:")
            if len(em_work_id) == 5 and em_work_id.isdigit():
                break
            
            else:
                print("【ERROR】:员工ID必须为5位数字")

        #身份证号18位,要求除了第18位可以x,其余都只能为数字
        while True:
            em_id_num = input("请输入员工身份证号:")
            if len(em_id_num) == 18 and em_id_num[0:17].isdigit() and (em_id_num[-1] in "0123456789xX"):
                break
            else:
                print("【ERROR】:员工身份证号必须为18位,且除了第18位可以为x或者X,其余都是数字!")
        info_list.append([em_name,em_work_id,em_id_num])
        print("【INFO】:添加成功!")

    elif command == 2:
        #删除员工信息
        em_name = input("请输入姓名:")
        #遍历info_list这个列表(找到这个人)
        for i in info_list:
            if em_name in i:
                #在这个列表中就执行删除
                info_list.remove(i)
                print("【INFO】:删除成功!")
                break #找到了此人,所以后面不再需要遍历
            else:
                print("【ERROR】:查无此人!")
    elif command == 3:
        #查询所有员工信息
        print("【INFO】:所有员工信息如下")
        print(info_list)
    elif command == 4:
        #退出系统
        print("【INFO】:退出成功!谢谢使用")
    else:
        print("【ERROR】:请重新输入1到4之间的数字!")

引用 皆我百晓生 小程序回复内容作答:

下面是一个简单的职工管理系统的Python代码实现:

class Staff:
    def __init__(self, name, gender, birthdate, workdate, education, position, address, phone):
        self.name = name
        self.gender = gender
        self.birthdate = birthdate
        self.workdate = workdate
        self.education = education
        self.position = position
        self.address = address
        self.phone = phone

    def __str__(self):
        return f"姓名:{self.name},性别:{self.gender},出生年月:{self.birthdate},工作年月:{self.workdate},学历:{self.education},职务:{self.position},住址:{self.address},电话:{self.phone}"

    def get_name(self):
        return self.name

    def get_attr(self, attr):
        return getattr(self, attr, None)

class StaffManagementSystem:
    def __init__(self):
        self.staff_list = []

    def add_staff(self):
        name = input("请输入姓名:")
        gender = input("请输入性别:")
        birthdate = input("请输入出生年月:")
        workdate = input("请输入工作年月:")
        education = input("请输入学历:")
        position = input("请输入职务:")
        address = input("请输入住址:")
        phone = input("请输入电话:")
        staff = Staff(name, gender, birthdate, workdate, education, position, address, phone)
        self.staff_list.append(staff)
        print("添加职工成功!")

    def delete_staff(self):
        name = input("请输入要删除的职工姓名:")
        for staff in self.staff_list:
            if staff.get_name() == name:
                self.staff_list.remove(staff)
                print("删除职工成功!")
                return
        print("未找到要删除的职工!")

    def search_staff(self):
        option = input("请选择查询方式(1-按姓名查询,2-按属性查询):")
        if option == "1":
            name = input("请输入要查询的职工姓名:")
            for staff in self.staff_list:
                if staff.get_name() == name:
                    print(staff)
                    return
            print("未找到符合条件的职工!")
        elif option == "2":
            attr = input("请输入要查询的属性:")
            value = input("请输入要查询属性的值:")
            for staff in self.staff_list:
                if staff.get_attr(attr) == value:
                    print(staff)
            print("未找到符合条件的职工!")
        else:
            print("无效的选项!")

    def modify_staff(self):
        name = input("请输入要修改的职工姓名:")
        for staff in self.staff_list:
            if staff.get_name() == name:
                attr = input("请输入要修改的属性:")
                value = input("请输入要修改属性的值:")
                setattr(staff, attr, value)
                print("修改职工成功!")
                return
        print("未找到要修改的职工!")

    def sort_staff(self):
        self.staff_list.sort(key=lambda staff: staff.get_name())
        print("职工排序成功!")

    def print_staff_list(self):
        for staff in self.staff_list:
            print(staff)

if __name__ == "__main__":
    system = StaffManagementSystem()
    while True:
        print("""
        职工管理系统菜单:
        1. 新增职工
        2. 删除职工
        3. 查询职工
        4. 修改职工
        5. 排序职工
        6. 显示所有职工
        0. 退出系统
        """)
        option = input("请输入菜单选项:")
        if option == "1":
            system.add_staff()
        elif option == "2":
            system.delete_staff()
        elif option == "3":
            system.search_staff()
        elif option == "4":
            system.modify_staff()
        elif option == "5":
            system.sort_staff()
        elif option == "6":
            system.print_staff_list()
        elif option == "0":
            break
        else:
            print("无效的选项!")

这个代码实现了一个简单的职工管理系统,通过菜单选项来实现新增职工、删除职工、查询职工、修改职工、排序职工以及显示所有职工的功能。其中,职工信息存储在一个列表中,在进行查询、修改和排序操作时,使用Lambda表达式对职工对象进行匹配和排序。

如果需要答辩,线路2、12、9、1,可以帮助你答辩

这是一个Python实现的简单职工管理系统的例子。它使用了Python的内置模块,比如jsonos,并且所有的数据都保存在内存中,所以不需要进行内外存交换。

首先,我们定义一个职工类:

class Employee:
    def __init__(self, name, gender, birth_year, work_year, education, position, address, phone):
        self.name = name
        self.gender = gender
        self.birth_year = birth_year
        self.work_year = work_year
        self.education = education
        self.position = position
        self.address = address
        self.phone = phone

然后,我们定义一个管理类,用于管理职工:

import json
import os

class EmployeeManager:
    def __init__(self, file_path):
        self.file_path = file_path
        self.employees = []
        if os.path.exists(file_path):
            with open(file_path, 'r') as f:
                self.employees = json.load(f)

    def save(self):
        with open(self.file_path, 'w') as f:
            json.dump(self.employees, f)

    def add_employee(self, employee):
        self.employees.append(employee)
        self.save()

    def remove_employee(self, name):
        self.employees = [employee for employee in self.employees if employee.name != name]
        self.save()

    def find_employee(self, predicate):
        return [employee for employee in self.employees if predicate(employee)]

    def update_employee(self, name, new_values):
        for employee in self.employees:
            if employee.name == name:
                for key, value in new_values.items():
                    setattr(employee, key, value)
                self.save()
                return employee
        return None

这个管理类提供了添加职工、删除职工、查找职工和更新职工的方法。其中,查找职工的方法接受一个函数作为参数,这个函数用于判断是否符合查找条件。更新职工的方法接受一个名字和一个字典作为参数,这个字典包含了需要更新的属性和新的值。

注意,这个管理类的初始化方法会尝试从文件中读取职工数据。如果文件不存在,那么职工列表就会为空。保存方法会将当前的职工列表写入文件。添加、删除、查找和更新职工的方法都会调用保存方法,以确保数据的一致性。

import pickle  
  
class Employee:  
    def __init__(self, name, gender, birth_year, work_year, education, position, address, phone):  
        self.name = name  
        self.gender = gender  
        self.birth_year = birth_year  
        self.work_year = work_year  
        self.education = education  
        self.position = position  
        self.address = address  
        self.phone = phone  
  
    def __repr__(self):  
        return f'Employee({self.name}, {self.gender}, {self.birth_year}, {self.work_year}, {self.education}, {self.position}, {self.address}, {self.phone})'  
  
def load_employees():  
    try:  
        with open('employees.pkl', 'rb') as file:  
            employees = pickle.load(file)  
    except FileNotFoundError:  
        employees = {}  
    return employees  
  
def save_employees(employees):  
    with open('employees.pkl', 'wb') as file:  
        pickle.dump(employees, file)  
  
def add_employee(employees, employee):  
    employees[employee.name] = employee  
    save_employees(employees)  
  
def remove_employee(employees, name):  
    if name in employees:  
        del employees[name]  
    save_employees(employees)  
  
def find_employee(employees, name):  
    return employees.get(name)  
  
def modify_employee(employees, name, attribute, value):  
    if name in employees:  
        setattr(employees[name], attribute, value)  
    save_employees(employees)  
  
def sort_employees(employees):  
    sorted_employees = sorted(employees.values(), key=lambda x: x.name)  
    return sorted_employees  
  
def main():  
    employees = load_employees()  
    while True:  
        print('1: 添加员工')  
        print('2: 删除员工')  
        print('3: 查找员工')  
        print('4: 修改员工信息')  
        print('5: 排序员工')  
        print('6: 退出')  
        choice = input('请输入您的选择:')  
        if choice == '1':  
            name = input('请输入员工姓名:')  
            gender = input('请输入员工性别:')  
            birth_year = input('请输入员工出生年份:')  
            work_year = input('请输入员工工作年份:')  
            education = input('请输入员工学历:')  
            position = input('请输入员工职务:')  
            address = input('请输入员工住址:')  
            phone = input('请输入员工电话:')  
            employee = Employee(name, gender, birth_year, work_year, education, position, address, phone)  
            add_employee(employees, employee)  
            print('员工添加成功!')  
        elif choice == '2':  
            name = input('请输入要删除的员工姓名:')  
            remove_employee(employees, name)  
            print('员工删除成功!')  
        elif choice == '3':  
            name = input('请输入要查找的员工姓名:')  
            employee = find_employee(employees, name)  
            if employee:  
                print(f'找到员工:{employee}')  
            else:  
                print('未找到员工。')  
        elif choice == '4':  
            name = input('请输入要修改的员工姓名:')  
            attribute = input('请输入要修改的属性:')  
            value = input('请输入新的属性值:')  
            modify_employee(employees, name, attribute, value)  
            print('员工信息修改成功!')  
        elif choice == '5':  
            sorted_employees = sort_employees(employees)  
            for employee in sorted_employees:  
                print(employee)  
        elif choice == '6':  
            break  
        else:  
            print('无效的选项,请重新输入。')  
    save_employees(employees)  
    print('程序结束。')

结合GPT给出回答如下请题主参考
您好,下面是用Python写职工管理系统的示例代码,其中包括插入、删除、查找和排序等功能。这里使用了面向对象编程的思想,将职工信息封装在一个类中进行处理。

class Employee:
    def __init__(self, name, gender, birthday, jobtime, education, position, address, phone):
        self.name = name
        self.gender = gender
        self.birthday = birthday
        self.jobtime = jobtime
        self.education = education
        self.position = position
        self.address = address
        self.phone = phone

class EmployeeManagementSystem:
    def __init__(self):
        self.employees = []
    
    def add_employee(self, employee):
        self.employees.append(employee)
    
    def remove_employee(self, name):
        for employee in self.employees:
            if employee.name == name:
                self.employees.remove(employee)
                print(f"已删除职工{name}的信息。")
                return
        print(f"未找到姓名为{name}的职工。")
    
    def search_employee(self, name):
        for employee in self.employees:
            if employee.name == name:
                print(f"职工姓名:{employee.name}")
                print(f"性别:{employee.gender}")
                print(f"出生年月:{employee.birthday}")
                print(f"工作年月:{employee.jobtime}")
                print(f"学历:{employee.education}")
                print(f"职务:{employee.position}")
                print(f"住址:{employee.address}")
                print(f"电话:{employee.phone}")
                return
        print(f"未找到姓名为{name}的职工。")
    
    def sort_employees(self, key):
        sorted_employees = sorted(self.employees, key=lambda employee: getattr(employee, key))
        for employee in sorted_employees:
            print(f"职工姓名:{employee.name}{key}{getattr(employee, key)}")
    
    def print_employees(self):
        print("所有职工信息如下:")
        for employee in self.employees:
            print(f"职工姓名:{employee.name}")
            print(f"性别:{employee.gender}")
            print(f"出生年月:{employee.birthday}")
            print(f"工作年月:{employee.jobtime}")
            print(f"学历:{employee.education}")
            print(f"职务:{employee.position}")
            print(f"住址:{employee.address}")
            print(f"电话:{employee.phone}")
            print()

ems = EmployeeManagementSystem()
employee1 = Employee("张三", "男", "1980-01-01", "2000-01-01", "本科", "经理", "北京市", "13333333333")
ems.add_employee(employee1)
employee2 = Employee("李四", "女", "1985-01-01", "2005-01-01", "硕士", "工程师", "上海市", "14444444444")
ems.add_employee(employee2)

ems.print_employees()

ems.search_employee("张三")
ems.search_employee("王五")

ems.remove_employee("张三")
ems.remove_employee("王五")

ems.sort_employees("jobtime")

使用上述代码,您可以创建一个职工管理系统,并实现添加、删除、查找和排序等功能。在这个示例中,我们首先定义了一个职工类 Employee,它具有姓名、性别、出生年月、工作年月、学历、职务、住址和电话等基本属性。然后我们通过定义职工管理系统类 EmployeeManagementSystem 将职工信息进行管理。

EmployeeManagementSystem 类中,我们实现了以下方法:

  • __init__():初始化职工列表。
  • add_employee(employee):将职工信息添加到职工列表中。
  • remove_employee(name):从职工列表中删除指定姓名的职工信息。
  • search_employee(name):根据姓名查找职工信息。
  • sort_employees(key):根据指定属性对职工信息进行排序。
  • print_employees():打印所有职工信息。

最后,我们创建了两个职工实例,并通过 add_employee() 方法将它们添加到职工列表中。然后,我们调用 print_employees() 方法打印所有职工信息。接下来,我们调用 search_employee() 方法查找指定姓名的职工信息,并尝试删除职工信息。最后,我们通过 sort_employees() 方法将职工列表按照入职时间进行排序,并打印排序结果。

【以下回答由 GPT 生成】

问题描述: 我需要使用Python编写一个简单的职工管理系统,其中包括插入、删除、查找和排序等功能。职工对象包括一些基本信息,如姓名、性别、出生年月、工作年月、学历、职务、住址和电话。要求实现以下功能: - 新增一名职工:将新增的职工对象按照姓名的字典顺序保存在职工管理文件中。 - 删除一名职工:从职工管理文件中删除指定的职工对象。 - 查询:从职工管理文件中查询符合特定条件的职工。 - 修改:找到指定的职工对象,并对其某些属性进行修改。 - 排序:将职工管理文件中的职工对象按照指定的需求进行排序。

实现提示:职工对象数目较少,可以将所有操作保存在内存中,无需进行内外存交换。可以通过键盘输入职工对象,并以文件方式保存。程序执行时可以先将文件读入内存。对职工对象中的姓名按字典顺序进行排序,然后在排序后的职工对象上进行增删查改等操作。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你安装了Django了吗
用Django的话,可以参考一下这个:
在Django中定义一个模型来表示职工:

# models.py  
from django.db import models  
  
class Employee(models.Model):  
    name = models.CharField(max_length=100)  
    gender = models.CharField(max_length=10)  
    birth_year = models.IntegerField()  
    work_year = models.IntegerField()  
    education = models.CharField(max_length=50)  
    position = models.CharField(max_length=50)  
    address = models.CharField(max_length=200)  
    phone = models.CharField(max_length=20)  
  
    def __str__(self):  
        return self.name

在创建相应的视图来处理职工的增、删、查、改操作


# views.py  
from django.shortcuts import render, redirect  
from .models import Employee  
  
def index(request):  
    employees = Employee.objects.all().order_by('name')  
    return render(request, 'index.html', {'employees': employees})  
  
def add_employee(request):  
    if request.method == 'POST':  
        name = request.POST['name']  
        gender = request.POST['gender']  
        birth_year = request.POST['birth_year']  
        work_year = request.POST['work_year']  
        education = request.POST['education']  
        position = request.POST['position']  
        address = request.POST['address']  
        phone = request.POST['phone']  
        Employee.objects.create(name=name, gender=gender, birth_year=birth_year, work_year=work_year, education=education, position=position, address=address, phone=phone)  
        return redirect('/')  
    return render(request, 'add_employee.html')  
  
def delete_employee(request, id):  
    Employee.objects.get(id=id).delete()  
    return redirect('/')  
  
def update_employee(request, id):  
    if request.method == 'POST':  
        employee = Employee.objects.get(id=id)  
        employee.name = request.POST['name']  
        employee.gender = request.POST['gender']  
        employee.birth_year = request.POST['birth_year']  
        employee.work_year = request.POST['work_year']  
        employee.education = request.POST['education']  
        employee.position = request.POST['position']  
        employee.address = request.POST['address']  
        employee.phone = request.POST['phone']  
        employee.save()  
        return redirect('/')  
    employee = Employee.objects.get(id=id)  
    return render(request, 'update_employee.html', {'employee': employee})

代码解释:
对于查询功能,可以在index视图中完成,通过Employee对象的all()方法获取所有的职工,然后使用filter()方法进行筛选。例如,可以筛选出所有性别为男的职工:Employee.objects.filter(gender='男')。

对于排序功能,我们可以在查询职工时使用order_by()方法,例如,可以按姓名进行排序:Employee.objects.all().order_by('name')
解决问题的话,记得采纳哦