作业员工信息表实现增删改查操作

Posted 东大网管

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作业员工信息表实现增删改查操作相关的知识,希望对你有一定的参考价值。

有以下员工信息表

 

当然此表你在文件存储时可以这样表示

1
1,Alex Li,22,13651054608,IT,2013-04-01

现需要对这个员工信息文件,实现增删改查操作

  1. 可进行模糊查询,语法至少支持下面3种:
    1.   select name,age from staff_table where age > 22
    2.   select  * from staff_table where dept = "IT"
    3.       select  * from staff_table where enroll_date like "2013"
    4. 查到的信息,打印后,最后面还要显示查到的条数 
  2. 可创建新员工纪录,以phone做唯一键,staff_id需自增
  3. 可删除指定员工信息纪录,输入员工id,即可删除
  4. 可修改员工信息,语法如下:
    1.   UPDATE staff_table SET dept="Market" WHERE where dept = "IT"

 注意:以上需求,要充分使用函数,请尽你的最大限度来减少重复代码!

 

yuangong文件

1,Alex Li,22,13651054608,IT,2013-04-01
2,Jack Wang,30,13304320533,HR,2015-05-03
3,Rain Liu,25,13832353221,Sales,2016-04-22
4,Mack Cao,40,13561453431,HR,2009-03-01
5,lzd,112,13912985190,IT,2019-1-1

代码如下:

# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:lzd
#创建字典
list=dict()

#将文件导入到字典
with open(\'yuangong\',\'r\',encoding=\'utf-8\') as f:
    for i in f:
        j=i.split(\',\',1)
        list[j[0]]=j[1].strip().split(\',\')
#print(list)

#每次操作完毕都引用装饰器函数保存下文件
def baocun(func):
    def warpper(*args,**kwargs):
        func()
        with open(\'yuangong\', \'w\', encoding=\'utf-8\') as f:
            for i in list:
                f.write(i+\',\'+\',\'.join(list[i])+\'\\n\')
        print(\'文件保存成功!\\n\')
    return warpper

def chaxun():
    while True:
        # for i in list:
        #     print(i,list[i])
        print("""
        1、岁数
        2、部门
        3、入职年份
        4、退出
        """)
        tmpchaxun = input("请输入你想操作的步骤?直接输入数字即可。\\n")
        if tmpchaxun==\'1\' :
            tmpsuishu=input("请输入年龄,下面显示大于该年龄的员工:\\n")
            numm=0
            if tmpsuishu.isdigit():
                for i in list:
                    if int(list[i][1])>int(tmpsuishu):
                        print(list[i][0],list[i][1])
                        numm=numm+1
                print("大于%s岁数一共有%s个人"%(tmpsuishu, numm))
            else:
                print(\'年龄需要输入数字的,请重新输入\\n\')
        elif tmpchaxun==\'2\' :
            tmpbumen=input(\'请输入部门名称,下面显示该部门的所有员工:\\n\')
            numm=0
            for i in list:
                if list[i][3] == tmpbumen:
                    print(list[i])
                    numm=numm+1
            print("该%s部门一共有%s个人"%(tmpbumen,numm))
        elif tmpchaxun==\'3\' :
            tmpriqi=input(\'请输入员工入职年份,下面显示该年份的所有员工:\\n\')
            numm=0
            if tmpriqi.isdigit():
                for i in list:
                    if tmpriqi in list[i][4]:
                        print(list[i])
                        numm=numm+1
                print("该%s年一共有%s个人" %(tmpriqi, numm))
            else:
                print(\'年份需要输入数字的,请重新输入\\n\')
        elif tmpchaxun==\'4\':
            break
        else:
            print(\'请输入正确的数字。谢谢!\\n\')

@baocun
def chuangjian():
    while True:
        tmpxinxi = input(\'请输入员工的“姓名/年龄/手机号码/部门/入职时间” ,请用/来间隔\\n\')
        xinxi=tmpxinxi.split(\'/\')
        if len(xinxi) != 5:
            print(\'输入的格式不正确请重新输入\\n\')
            continue
        elif xinxi[2].isdigit():
            for kk in list.values():
                if xinxi[2] in kk:
                    print("手机号码重复啦~请重新输入!\\n")
                    break
            else:
                tmpid=str(int(sorted(list)[-1])+1)
                list[tmpid]=xinxi
                print(\'用户添加完毕!\\n\')
                break
        else:
            print(\'手机号码输入错误~!\\n\')
    #print(list)

@baocun
def shanchu():
    #print(\'shanchu\')
    while True:
        # for i in list:
        #     print(i,list[i])
        tmpshanchu=input(\'请输入你想删除的人员id号,退出请直接输入q\\n\')
        if tmpshanchu in list:
            del list[tmpshanchu]
            print(\'删除人员%s成功\\n\'%tmpshanchu)
        elif tmpshanchu==\'q\':
            break
        else:
            print(\'找不到这个人的id啊?你是不是输入错误了?\\n\')
@baocun
def xiugai():
    #print(\'xiugai\')
    while True:
        # for i in list:
        #     print(i,list[i])
        tmpxiugai=input(\'请输入你想修改部门的名称,比如你想修改Market的人员变成IT部门,\\
那么直接输入Market/IT,退出输入q\\n\')
        if tmpxiugai==\'q\':
            break
        bumen=tmpxiugai.split(\'/\')
        if len(bumen) !=2:
            print("输入格式不正确,请重新输入\\n")
            continue
        else:
            for i in list:
                if bumen[0] == list[i][3]:
                    list[i][3]=bumen[1]
                    print(\'部门修改完毕~!\\n\')
while True:
    print("""
    1、查询
    2、创建
    3、删除
    4、修改
    5、退出
    """)
    choosedic={1:chaxun,2:chuangjian,3:shanchu,4:xiugai}
    userchoose=int(input("请输入你想操作的步骤?直接输入数字即可。\\n"))
    if userchoose in choosedic:
        choosedic[userchoose]()
    elif userchoose==5:
        exit()
    else:
        print(\'请输入正确的数字\\n\')

 

以上是关于作业员工信息表实现增删改查操作的主要内容,如果未能解决你的问题,请参考以下文章

python实现员工信息表增删改查

代码 - 简单的员工信息增删改查程序

员工管理-登陆及增删改查功能的实现

Python3练习:对员工信息文件,实现增删改查操作

python练习——moudule02——员工信息增删改查

文件的增删改查