Day03-人事管理系统v2

#coding=utf-8

menu=’’’
1.增加员工信息(id 姓名 性别 年龄 薪水)
2.修改员工信息(根据id来修改年龄和薪水)
3.删除员工信息(根据id来删除员工)
4.查询员工信息(根据id 或者姓名 模糊查询)
5.公司所有员工(显示公司所有员工的详细信息)
6.退出(退出系统 不玩了)
请选择1-6:
‘’’
‘’’
对系统增加历史数据保存的功能(读写文件);今天先完成功能1 、5
‘’’
def Writefile(path,data,mode):
f=open(path,mode,encoding=‘utf-8’)
if type(data)==list: #判断要写入的数据是不是为列表
for i in data:
f.write(i+’\n’)
else:
f.write(data)
f.close()

def Readfile(path):
data=[]
f=open(path,“r”,encoding=‘utf-8’) #以只读的模式打开这个文件
for i in f:
data.append(i.strip()) #strip()去掉空字符
f.close()
return data

def Add(path):
id=str(Getid(path)) #用于拼接 所以这里强转字符型
name=input(‘input emp name::’)
sex=input(‘input emp sex::’)
age=input(‘input emp age::’)
sal=input(‘input emp sal::’)
data=id+"|"+name+"|"+sex+"|"+age+"|"+sal+’\n’ #1001|laowang|男|23|20000
Writefile(path, data, ‘a’)
print(‘员工 %s 增加成功!!!’%name)

def Getid(path):
allemp=Readfile(path)
if allemp.len()>0:
return int(allemp[-1].split("|")[0])+1 #从文件获取最大id+1
else:
return 1000 #如果公司没有人 就从1000开始

def Dispaly(path):
allemp=Readfile(path)
if allemp.len()>0:
print("%-10s%-10s%-10s%-10s%s"%(‘id’,‘name’,‘sex’,‘age’,‘sal’))
for emp in allemp: #emp 1001|laowang|男|23|20000
print("%-10s%-10s%-10s%-10s%s"%(emp.split("|")[0],emp.split("|")[1],emp.split("|")[2],emp.split("|")[3],
emp.split("|")[4]))
else:
print(‘公司没有员工,请先增加!’)
def Del(path):
flag=0
allemp=Readfile(path)
if allemp.len()>0:
_id=input(‘请输入要删除的id:’)
for emp in allemp:
if emp.split("|")[0]_id:
flag=1
allemp.remove(emp) #从列表删除数据
print(‘员工%s删除成功’%_id)
Writefile(path, allemp, “w”) #再写入列表
if flag
0:
print(‘没有找到这个家伙’)
else:
print(‘公司没有员工,请先增加!’)

def Update(path):
flag=0 #定义了一个很普通的变量 赋了一个值
allemp=Readfile(path)
if allemp.len()>0:
_id=input(‘请输入要修改的员工id:’)
for emp in allemp:
if _idemp.split("|")[0]:
flag=1 #公司已经找到员工 立即修改那个普通的变量 把值改掉 只要不等于false都ok
while 1:
_choose=input(’##########1.修改年龄 2.修改薪水 3.退出主菜单#############’)
if _choose
’1’:
_age=input(‘请输入修改后的年龄’)
#allemp[1]=
allemp[allemp.index(emp)]=emp.split("|")[0]+"|"+emp.split("|")[1]+"|"+emp.split("|")[2]+"|"
+_age+"|"+emp.split("|")[4]
Writefile(path, allemp, “w”)
print(‘员工%s年龄修改成功!’%_id)
emp=emp.split("|")[0]+"|"+emp.split("|")[1]+"|"+emp.split("|")[2]+"|"+_age+"|"+emp.split("|")[4]
elif _choose==‘2’:
_sal=input(‘请输入修改后的薪水’)
allemp[allemp.index(emp)]=emp.split("|")[0]+"|"+emp.split("|")[1]+"|"+emp.split("|")[2]+"|"
+emp.split("|")[3]+"|"+_sal
Writefile(path, allemp, “w”)
print(‘员工%s薪水修改成功!’%_id)
emp=emp.split("|")[0]+"|"+emp.split("|")[1]+"|"+emp.split("|")[2]+"|" +emp.split("|")[3]+"|"+_sal

                elif _choose=='3':
                    break
                else:
                    print('没有这个选项,请重试!')
    if flag==0: #判断我这个变量的值  是什么??
        print('公司没有这个家伙!')
else:
    print('系统没有员工,请先增加员工信息!') 

def Search(path):
allemp=Readfile(path)
if allemp.len()>0:
while 1:
_choose=input(’#############1.根据id查询 2.根据姓名查询 3.退回主菜单’)
if _choose==‘1’:
_id=input(‘请输入要查询的员工id:’)
print("%-10s%-10s%-10s%-10s%s"%(‘id’,‘name’,‘sex’,‘age’,‘sal’))
for emp in allemp:
if emp.split("|")[0].find(_id)!=-1:
print("%-10s%-10s%-10s%-10s%s"%(emp.split("|")[0],emp.split("|")[1],emp.split("|")[2],emp.split("|")[3],
emp.split("|")[4]))
elif _choose==‘2’:
_name=input(‘请输入要查询的员工name:’)
print("%-10s%-10s%-10s%-10s%s"%(‘id’,‘name’,‘sex’,‘age’,‘sal’))
for emp in allemp:
if emp.split("|")[1].find(_name)!=-1:
print("%-10s%-10s%-10s%-10s%s"%(emp.split("|")[0],emp.split("|")[1],emp.split("|")[2],emp.split("|")[3],
emp.split("|")[4]))
elif _choose==‘3’:
break
else:
print(‘没有这个选项’)
else:
print(‘系统没有员工,请先增加员工信息!’)

def login(path):

return True

###########################主程序########################
path=‘userdata.txt’
while 1:
if login(path):
choose=input(menu)
if choose==‘1’: Add(path)
elif choose==‘5’: Dispaly(path)
elif choose==‘3’: Del(path)
elif choose==‘2’: Update(path)
elif choose==‘4’: Search(path)
elif choose==‘6’: exit()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值