1. 程式人生 > >作業員工信息表實現增刪改查操作

作業員工信息表實現增刪改查操作

nbsp 手機號 add bre mark 作業 ket split 格式不正確

有以下員工信息表

技術分享

當然此表你在文件存儲時可以這樣表示

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)

作業員工信息表實現增刪改查操作