python 工资管理软件_python实战演练(四)工资管理系统

#-*- Coding:utf-8 -*-#Author: kking

'''实现功能

1、从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。

2、能增查改员工工资

3、增、改员工工资用空格分隔

4、实现退出功能'''

importsys,os,re

operation_lists= '''1.查询工资

2.修改工资

3.增加新员工记录

4.删除员工信息

5.退出'''user_dict= {} #定义一个存储员工姓名及工资的空字典

defuser_information():'''定义一个员工信息函数'''with open('info','r') as f:for i inf:

i= i.strip() #剔除字符串中的前后空格和换行

user_dict[i.split()[0]] = i.split()[1] #将员工姓名及工资存储到user_dict字典中,i.split()[0]=员工姓名 作为键

#i.split()[1]=员工工资 作为值

print('当前员工姓名:',i.split()[0])defuser_operations():'''定义一个用户操作的函数'''

whileTrue:print(operation_lists)

user_operation= input('请选择操作编号>>>:')ifuser_operation.isdigit():

user_operation=int(user_operation)if user_operation > 5:print('\033[31;1m请输入有效操作编号\033[0m')if user_operation == 1:

user_enquiries()if user_operation == 2:

salary_change()if user_operation == 3:

add_users()if user_operation == 4:

del_users()if user_operation == 5:

sys.exit('程序退出')else:print('\033[31;1m请输入有效操作编号\033[0m')defuser_enquiries():'''定义一个用户查询的函数'''

whileTrue:

user_information()

enquirie_name= input('请输入要查询的员工姓名(例如:Alex):')if enquirie_name.capitalize() in user_dict: #将输入的员工姓名首字母变大写,方便用户输入

print('\033[32;1m%s\033[0m 工资为: \033[32;1m%s\033[0m元'

%(enquirie_name.capitalize(),user_dict[enquirie_name.capitalize()]))break

else:print('\033[31;1m请输入有效用户名\033[0m')defsalary_change():'''定义一个修改工资函数'''

whileTrue:

user_information()

change_salary= input('请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):')

salary_lists= change_salary.split() #将用户输入的姓名和工资以列表形式打印

if len(salary_lists) < 2: #判断输入内容格式是否正确 姓名 工资

print('\033[31;1m请输入正确格式内容\033[0m')elif not salary_lists[1].isdigit(): #判断输入的工资是否是数字

print('\033[31;1m请输入有效工资金额\033[0m')else:

_name= salary_lists[0].capitalize() #定义_name变量存储 用户输入的姓名

_salary = salary_lists[1] #定义_salary变量存储 用户输入的工资

if _name inuser_dict:

with open('info','r') as f:

lines=f.readlines()

with open('info','w') as f_w:for line inlines:if _name inline:

line= line.replace(user_dict[_name],_salary) #将源文件中的工资金额替换为修改后的工资金额

f_w.write(line)print('已将 \033[32;1m%s\033[0m 的工资修改为 \033[32;1m%s\033[0m元'%(_name,_salary))break

else:print('\033[31;1m该用户不存在\033[0m')defadd_users():'''定义一个增加员工函数'''

whileTrue:

user_information()

add_user= input('请输入要增加员工姓名和工资,用空格分隔(例如:Eric 100000):')

add_lists=add_user.split()if len(add_lists) < 2: #判断输入内容格式是否正确 姓名 工资

print('\033[31;1m请输入正确格式内容\033[0m')elif not add_lists[1].isdigit(): #判断输入的工资是否是数字

print('\033[31;1m请输入有效工资金额\033[0m')else:

_name= add_lists[0].capitalize() #定义_name变量存储 用户输入的姓名

_salary = add_lists[1] #定义_salary变量存储 用户输入的工资

if _name in user_dict: #判断输入的姓名是否已存在

print('\033[31;1m该用户已存在\033[0m')elif not _name.isalpha(): #判断输入的姓名是否是纯英文

print('\033[31;1m请输入正确姓名\033[0m')else:

with open('info','a') as f:

f.write(_name+' ')

f.write(_salary+'\n')print('已将 \033[32;1m%s\033[0m 的信息添加成功' %_name)break

defdel_users():'''定义一个删除员工函数'''

whileTrue:

user_information()

del_user= input('请输入要删除的员工姓名(例如:Alex):')

del_name=del_user.capitalize()if del_name in user_dict: #将输入的员工姓名首字母变大写,方便用户输入

confirm_del = input('是否确认删除\033[32;1m%s\033[0m员工信息>>>任意键确认删除、按N不删除:'

%del_user.capitalize())if confirm_del.capitalize() != 'N': #判断用户选择确认删除

list = [] #定义一个空列表存储不需要删除员工信息

with open('info','r') as f:

lines=f.readlines()for line inlines:if not re.search(del_name,line): #判断哪些员工不需要删除 del_name为确认删除的员工

list.append(line)

with open('info','w') as f:

f.writelines(list)#将不需要删除员工的信息列表重新写入 info文本中

print('\033[32;1m%s\033[0m的员工信息已删除'%del_user.capitalize())break

else:print('\033[31;1m已取消删除\033[0m')else:print('\033[31;1m该用户不存在\033[0m')

user_operations()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值