实现一个员工信息管理系统,针对员工信息(基本信息、薪资水平)进行管理。
主要面向的用户是老板或管理层,用户可以通过该系统查询、修改、添加、删除员工的个人信息,也可以对员工的信息进行一定的统计。
系统名称:员工信息管理系统
面向用户:老板、管理层
系统功能:
1 数据输入及存储,从文件中导入初始数据到系统,系统将每次处理后的数据再存入文件
2 数据的基本操作(增删改查),现有数据的查询、修改、删除,新增数据项
3 数据的统计分析,学生基本信息的统计分析(如不同性别员工的比例、员工的薪资分布、排序等)
4 数据处理结果的展示,针对统计分析、基本处理(增删改查)的结果进行展示
直接上代码
'''
功能:数据的读取
原始数据在 rawdata.txt文件里,需要将其获取出来存放到一个字典dic里面
'''
def raw_data():
dic = {}
with open(r'D:\staff\rawdata.txt', 'r') as file_r:
for line in file_r:
data = line.strip().split(',')
dic[data[0]] = {'name': data[1], 'sex': data[2], 'age':data[3], 'address':data[4],'phonenumber':data[5],'money':data[6]}
return dic
'''
功能:数据的保存
将原始数据读取到字典dic中之后,再将字典中的内容保存到info.csv文件里面
'''
def data_save(dic):
print('_____开始写入______')
with open(r'D:\staff\info.csv', 'w+') as file_w:
file_w.write('id,name,sex,age,address,phonenumber,money\n')
for k, v in dic.items():
file_w.write(k+','+v['name']+','+v['sex']+','+v['age']+','+v['address']+','+v['phonenumber']+','+v['money']+'\n')
print('_____写入完成______')
'''
功能:数据的查询
通过输入员工工号来查询员工信息,如果员工工号不存在则重新输入
'''
def data_query(dic):
while True:
id = input('请输入要查询的员工工号(输入0返回操作面板):')
if id == '0':
break
elif id in dic:
attr = input('请输入你要查询的属性(例如name,sex,age)输入0返回:')
if attr == '0':
continue
elif dic.get(id).get(attr, 1) != 1:
print(dic[id][attr])
continue
else:
print("没有这个属性!")
else:
print('没有这个ID!请重新输入!!')
'''
功能:数据的增
按照数据顺序逐个输入,然后保存到info.csv里面
'''
def data_add(dic):
temp = input('请按照数据顺序逐个输入员工信息,并用逗号分割(id,name,sex,age,address,phonenumber,money):')
temp = temp.split(',')
if temp[0] in dic.keys():
print('员工id已存在!')
return
else:
dic[temp[0]] = {'name': temp[1], 'sex': temp[2], 'age':temp[3], 'address':temp[4],'phonenumber':temp[5],'money':temp[6]}
return dic
'''
功能:数据的删
根据工号来删除数据,对行进行操作
'''
def data_del(dic):
id_del = input("请输入要删除员工信息的工号:")
if id_del not in dic.keys():
print('员工id不存在!')
return
else:
del dic[id_del]
print("删除成功!")
return dic
'''
功能:数据的修改
根据工号来修改数据,输入需要修改的属性以及属性对应的内容,并输出修改后的结果
'''
def data_modify(dic):
id_modify = input("请输入要修改员工信息的工号:")
if id_modify not in dic.keys():
print('员工id不存在!')
return
else:
new_attr = input('请输入要修改的属性(name,sex,age,address,phonenumber,money):')
print('原属性对应的值为:', dic[id_modify][new_attr])
new_value = input('请输入修改的数据:')
dic[id_modify][new_attr] = new_value
print('修改后该属性对应的值为:', dic[id_modify][new_attr])
return dic
'''
功能:分析员工薪资
'''
def money_analyse(dic):
money_list = []
# 分析最高最低薪资
for k, v in dic.items():
money_list.append(int(v.get('money')))
money_list.sort()
print('最高薪资是:', money_list[len(money_list)-1])
print('最低薪资是:', money_list[0])
# 分析平均薪资
sum_money = sum(money_list)
avg_money = sum_money / len(money_list)
print('平均薪资是:', avg_money)
return
'''
功能:分析员工年龄
'''
def age_analyse(dic):
age_list = []
# 分析最高最低年龄
for k, v in dic.items():
age_list.append(int(v.get('age')))
age_list.sort()
print('最高年龄是:', age_list[len(age_list)-1])
print('最低年龄是:', age_list[0])
# 分析平均年龄
sum_age = sum(age_list)
avg_age = sum_age / len(age_list)
print('平均年龄:', avg_age)
return
if __name__ == '__main__':
dic = raw_data()
while True:
print('''
a-数据的基本操作
b-数据的统计分析
c-保存
d-退出不保存
''')
option1 = input('请输入要执行的操作的序号:')
if option1 == 'a':
print('''
1-增
2-删
3-改
4-查
''')
option2 = input('请输入执行的基本操作的序号:')
if option2 == '1':
dic = data_add(dic)
elif option2 == '2':
dic = data_del(dic)
elif option2 == '3':
dic = data_modify(dic)
elif option2 == '4':
dic = data_query(dic)
else:
print('无该项操作!')
elif option1 == 'b':
print('''
1-员工薪资分析情况
2-员工年龄分析情况
''')
option2 = input('请输入要进行的统计操作的序号:')
if option2 == '1':
money_analyse(dic)
elif option2 == '2':
age_analyse(dic)
else:
print('无该项操作!')
elif option1 == 'c':
data_save(dic)
elif option1 == 'd':
break
else:
print('无该项操作!')