目录标题
企业管理系统
一.员工系统
1.主函数
import os # 导入os模块
def main02(): # 调用函数,定义一个函数
while True:
menu1() # 调用菜单menu1()这一函数
try: #异常处理,如果没有异常就执行try语句中的内容,如果存在异常就会进入except语句中
option = int(input("请输入:"))
except:
print('输入错误')
continue #结束当前循环
if is_login: #判断是否登录上,如果登录上则会进入if语句中,否则会进入下面else语句中运行
if option in [0, 1, 2, 3]: #选择你想要执行的功能
if option == 0:
answer = input("您确定退出系统吗?如果输入y或Y即退出,否则继续:")
if answer == 'y' or answer == 'Y':
print("感谢您的访问!")
break #结束整个循环
elif option == 1:
modify2() #调用修改个人信息这一方法
elif option == 2:
search1() #调用查找部门信息这一方法
elif option == 3:
display() #调用展示部门信息这一方法
else: #如果输入的不是0,1,2,3则会提示输入错误
print("输入错误,请重新输入!")
else: #进行没有登录上的操作
if option in [0, 1, 2]:
if option == 0:
answer = input("您确定退出系统吗?如果输入y或Y即退出,否则继续:")
if answer == 'y' or answer == 'Y':
print("感谢您的访问!")
break #结束整个循环
elif option == 1:
register() #调用register()这一函数
elif option == 2:
login() #调用login()这一函数
else: #如果输入的不是0,1,2会提示你重新输入
print("输入错误,请重新输入!")
2.员工系统菜单
def menu1(): #员工系统的菜单
if is_login: #如果登录成功,则会进入此菜单
print("-" * 20, "欢迎您进入员工系统", "-" * 20)
print("-" * 21, "功能选择", "-" * 22)
print("\t" * 5, "1.修改个人信息")
print("\t" * 5, "2.查找部门信息")
print("\t" * 5, "3.展示所有部门信息")
print("\t" * 5, "0.退出系统")
else: #如果没有登录成功将进入下面这个菜单
print("-" * 20, "欢迎您进入公司系统", "-" * 20)
print("-" * 21, "功能选择", "-" * 22)
print("\t" * 5, "1.注册")
print("\t" * 5, "2.登录")
print("\t" * 5, "0.退出系统")
3.员工注册
def register():
user_list = [] #声明两个空列表
old_user = []
while True: #录入员工信息
name = input("请输入用户名:")
password = input("请输入你的密码:")
sex =input("请输入你的性别:")
age = int(input("请输入你的年龄:"))
ability = input("请输入你的能力:")
telephone = int(input("请输入你的电话号码:"))
with open(filename1, 'r', encoding='utf-8') as fp: # 打开employee.txt文件,并读取文件内容
data = fp.readlines() # 读取文件中的每一行,保存在一个列表变量中,每一行作为一个元素
for i in data: # for循环语句
old_user.append(dict(eval(i))) # 在old_user列表中增加所读取的内容,并以字典的形式写入
u = True #声明一个u=True
for user in old_user:
if user['name'] == name:
u = False #如果输入的名字和文件中存在的一样,u=False
break # 用于结束整个循环
# continue 用于结束当前循环
if u: #如果u=True
print("注册成功!!")
user = {"name": name, "password": password, "sex":sex, "age": age, "ability": ability, "telephone":telephone} # 将字典拼接在一起
user_list.append(user) #在空列表中加入user中的内容
save(user_list) # 保存信息
return # 终止函数
else: #如果u=False
print('该用户已注册,请重新选择你要进行的操作')
break #结束整个循环
filename1 = 'employee.txt'
4.员工登录
import time
is_login = False
def login(): #登录函数
users_data = [] #声明一个空列表
while True:
with open(filename1, 'r', encoding='utf-8') as fp: #打开文件并读取文件内容
b = fp.readlines() #读取文件每行的内容
for i in b: #for
users_data.append(dict(eval(i)))
for h in range(3): # 只有三次登录机会
name = input("请输入用户名:")
password = input("请输入密码:")
for user in users_data:
if user['name'] == name and user['password'] == password:
print("登录成功!!")
global is_login # global为全局变量
is_login = True
return
print("用户名或密码错误,登陆失败")
print("您还剩%d次登录的机会" % (2 - h))
else:
print("登录失败,已超过3次,请稍后在试!")
time.sleep(3) # 停止三秒后可重新登录
break
5.员工修改个人信息
def show_employee1(lst):
if len(lst) == 0:
print('没有查询到该员工信息,无数据显示')
return
else:
print('name\t\t'+'password\t\t' + 'sex\t\t\t' + 'age\t\t\t' + 'ability\t\t' +'telephone')
for item in lst:
print(item.get('name') + ' ' * (12 - len(item.get('name'))),end='')
print(item.get('password')+' '*(17-len(item.get('password'))),end='')
print(item.get('sex')+' '*(13-len(item.get('sex'))),end='')
print(str(item.get('age')) + ' ' * (12 - len(str(item.get('age')))),end='')
print(item.get('ability')+' '*(15-len(item.get('ability'))),end='')
print(str(item.get('telephone')))
def modify2():
employee_l=[]
while True:
if os.path.exists(filename1):
name=input("请输入你的用户名:")
with open(filename1, 'r', encoding='utf-8') as rfile:
employee = rfile.readlines()
for item in employee:
d = dict(eval(item.strip()))
if name != '':
if d['name'] == name:
employee_l.append(d)
show_employee1(employee_l)
employee_l.clear() #清空列表
print("找到{name}的信息,可以修改")
break
else:
print(f'没有找到{name}的信息,请重新尝试')
answer = input('是否继续修改员工信息?如果输入y或Y即继续,否则退出:')
if answer == 'y' or answer == 'Y':
continue
else:
break
with open(filename1, 'w', encoding='utf-8') as wfile: #打开文件并清空
for item in employee:
d = dict(eval(item))
if d['name'] == name:
while True:
try:
d['sex'] = input('请输入你的性别:')
d['age'] = int(input('请输入修改后的年龄:'))
d['ability'] = input('请输入修改后的技能:')
d['telephone'] = int(input('请输入你的电话号码:'))
except:
print('输入有误,请重新输入')
continue
else:
break
wfile.write(str(d) + '\n')
else:
wfile.write(str(d) + '\n')
print("信息修改成功!!")
answer = input('是否继续修改员工信息?如果输入y或Y即继续,否则退出:')
if answer == 'y' or answer == 'Y':
continue
else:
break
6.查找部门信息
def search1():
depart_query = []
while True:
if os.path.exists(filename):
n = input('请输入1按部门名称查询:')
if n == '1':
depart = input("请输入部门的名称:")
else:
print("输入信息有误")
search1()
with open(filename, 'r', encoding='utf-8') as rfile:
depart1 = rfile.readlines()
for item in depart1:
d = dict(eval(item))
if depart != '':
if d['depart'] == depart:
depart_query.append(d)
# 显示查询结果
search_depart(depart_query)
depart_query.clear()
answer = input('是否继续查询部门信息?如果输入y或Y即继续,否则退出:: ')
if answer == 'y' or answer == 'Y':
continue
else:
return
else:
print('尚未保存部门信息:')
def search_depart(lst):
if len(lst) == 0:
print('没有查询到该部门信息,无数据显示')
return
else:
print('depart\t\t', 'numbers\t\t', 'introduce\t\t\t', 'slogan')
for item in lst:
print(item.get('depart') + " " * (12 - len(item.get('depart'))),
item.get('numbers') + " " * (12 - len(item.get('numbers'))),
item.get('introduce') + " " * (13 - len(item.get('introduce'))),
item.get('slogan') + " " * (len(item.get('slogan'))))
7.展示部门所有信息
def search_depart(lst):
if len(lst) == 0:
print('没有查询到该部门信息,无数据显示')
return
else:
print('depart\t\t', 'numbers\t\t', 'introduce\t\t\t', 'slogan')
for item in lst:
print(item.get('depart') + " " * (12 - len(item.get('depart'))),
item.get('numbers') + " " * (12 - len(item.get('numbers'))),
item.get('introduce') + " " * (13 - len(item.get('introduce'))),
item.get('slogan') + " " * (len(item.get('slogan'))))
def display():
depart_lst = []
if os.path.exists(filename):
with open(filename, 'r', encoding='utf-8') as rfile:
a = rfile.readlines()
for item in a:
depart_lst.append(eval(item))
if depart_lst:
search_depart(depart_lst)
二.管理员系统
1.主函数
def main():
while True:
menu() #调用菜单
try: #异常处理,如果没有错误就执行try语句,否则执行except语句
choice = int(input("请输入:"))
except:
print("输入错误")
continue
if is_dl: #如果管理员登录成功就进入以下操作
if choice in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11]:
if choice == 0:
answer = input("您确定退出系统吗?如果输入y或Y即退出,否则继续:")
if answer == 'y' or answer == 'Y':
print("感谢您的使用!")
break
elif choice == 1:
insert() #调用录入(增加)员工信息的函数
elif choice == 2:
search() #调用查找员工信息的函数
elif choice == 3:
delete() #调用删除员工信息的函数
elif choice == 4:
modify() #调用管理员修改员工信息的函数
elif choice == 5:
total() #调用统计员工总数的函数
elif choice == 6:
show() #调用展示所有员工信息的函数
elif choice == 7:
add1() #调用录入(增加)部门信息的函数
elif choice == 8:
search1() #调用查找部门信息的函数
elif choice == 9:
delete1() #调用删除部门信息的函数
elif choice == 10:
modify1() #调用修改部门信息的函数
elif choice == 11:
display() #调用展示所有部门信息的函数
else:
print("输入有误,请重新输入!")
else: #如果没有登录成功,则执行以下操作
if choice in [0, 1]:
if choice == 0:
answer = input("您确定退出系统吗?如果输入y或Y即退出,否则继续:")
if answer == 'y' or answer == 'Y':
print("感谢您的使用!")
break
elif choice == 1:
denglu()
else:
print("输入错误")
2.管理员系统菜单
def menu():
if is_dl: #如果管理员已登录则可进行下面功能
print("=" * 20, "企业管理系统", "=" * 20)
print("-" * 21, "功能选择", "-" * 22)
print("\t" * 5, "1.录入(增加)员工信息")
print("\t" * 5, "2.查找员工信息")
print("\t" * 5, "3.删除员工信息")
print("\t" * 5, "4.修改员工信息")
print("\t" * 5, "5.统计员员工信息")
print("\t" * 5, "6.显示所有员工信息")
print("\t" * 5, "7.录入(增加)部门信息")
print("\t" * 5, "8.查找部门信息")
print("\t" * 5, "9.删除部门信息")
print("\t" * 5, "10.修改部门信息")
print("\t" * 5, "11.显示所有部门信息")
print("\t" * 5, "0.退出系统")
else: #如果没有登录成功则进行下面操作
print("=" * 20, "管理员登录系统", "-" * 20)
print("-" * 21, "功能选择", "-" * 22)
print("\t" * 5, "1.登录")
print("\t" * 5, "0.退出系统")
3.管理员登录
import time
is_dl = False
def denglu():
for i in range(3): # 只有三次登录机会
name = input("请输入用户名:")
password = input("请输入密码:")
if name=='huangying' and password=='huangying':
print("登录成功!")
global is_dl # 全局变量
is_dl = True
return
else:
print("用户名或密码错误,登录失败")
print("您还剩%d次机会" % (2 - i))
else:
print("登录失败,已超过3次,请稍后在试!")
time.sleep(3) #三秒后才能再次进行登录
4.录入(增加)员工信息
def insert(): # 管理员录入(增加)员工信息
while True:
employee_name = input("请输入想要添加员工的name:")
employee_password = input("请输入需要添加的员工的密码:")
employee_sex =input("请输入你的性别:")
employee_age = int(input(("请输入需要添加员工的年龄:")))
employee_ability = input("请输入需要添加员工的技能:")
employee_telephone = int(input("请输入你的手机号码:"))
if employee_name != '' and employee_password != '' and employee_sex !='' and employee_age != '' and employee_ability != '' and employee_telephone !='':
if os.path.exists(filename1): # 如果这个文件存在
with open(filename1, 'r', encoding='utf-8') as file: # 打开文件并读取文件
employee_a = file.readlines() #读取文件每行的内容
else:
employee_a = [] #如果文件不存在,则会声明一个空列表
with open(filename1, 'a', encoding='utf-8') as wfile: # a代表追加内容
a = 0 # 没有一样的内容
for item in employee_a:
d = dict(eval(item))
if d['name'] == employee_name:
a += 1
print("已存在此员工")
if a == 0:
person = {'name': employee_name, 'password': employee_password, 'sex':employee_sex,'age': employee_age,
'ability': employee_ability,'telephone':employee_telephone}
wfile.write(str(person) + '\n') # 换行 并把此内容写到文件里
print(f"name为{employee_name}的员工信息已经添加!")
else:
print("没有添加成功")
else:
print('输入错误')
answer = input("是否继续输入员工信息?如果输入y或Y即继续,否则退出:")
if answer == 'y' or answer == 'Y':
continue
else:
break
#将员工信息保存到'employee.txt'文件中
filename1 = 'employee.txt'
def save(lst): # 保存到文件(保存员工信息)
try: # try,except语句异常处理,当try语句中无异常发生将不会执行except中的内容
emp_txt = open(filename1, 'a', encoding='utf-8')
except: # 只有在产生异常的情况下才会被执行
emp_txt = open(filename1, 'w', encoding='utf-8') #打开文件,将文件内容清空
for item in lst:
emp_txt.write(str(item) + '\n') #写入文件中
emp_txt.close() # 关闭文件
5.查找员工信息
def search():
employee_query = [] #声明一个空列表
while True:
if os.path.exists(filename1): #如果该文件存在
mode = input('按name查找请输入1:')
if mode == '1':
name = input('请输入员工姓名:')
else:
print("输入信息有误")
search() #调用search()函数
with open(filename1, 'r', encoding='utf-8') as rfile:
employee = rfile.readlines()
for item in employee:
d = dict(eval(item.strip())) # strip()默认删除字符串头和尾的空白字符
if name != '':
if d['name'] == name:
employee_query.append(d)
show_employee(employee_query) #调用show_employee()函数
employee_query.clear() # 将列表清空,以便再次输入查询其他信息
answer = input('是否继续查询员工信息?如果输入y或Y即继续,否则退出:')
if answer == 'y' or answer == 'Y':
continue
else:
break
else:
print('尚未保存员工信息')
def show_employee(lst):
if len(lst) == 0:
print('没有查询到该员工信息,无数据显示')
return
else:
print('name\t' + 'sex\t\t' + 'age\t\t' + 'ability\t\t' +'telephone')
for item in lst:
print(item.get('name') + ' ' * (8 - len(item.get('name'))) + item.get('sex')+' '*(7-len(item.get('sex'))) + str(item.get('age')) + ' ' * (
9 - len(str(item.get('age')))) + item.get('ability')+' '*(8-len(item.get('ability')))+str(item.get('telephone')))
6.删除员工信息
def delete():
while True:
employee_name = input('请输入想要删除的name:')
if employee_name != '':
if os.path.exists(filename1):
with open(filename1, 'r', encoding='utf-8') as file: #encoding='utf-8'是默认编码格式
employee_old = file.readlines()
else:
employee_old = []
flag = False
if employee_old:
with open(filename1, 'w', encoding='utf-8') as wfile: # w可以将内容写入文件中,如果文件中有内容将其清空
for item in employee_old: # w操作时写的文件不存在不会报错,会创建新的文件并写入
d = dict(eval(item))
if d['name'] != employee_name:
wfile.write(str(d) + '\n') # 还将以前的内容写入
else:
flag = True
if flag:
print(f"name为{employee_name}的员工信息已经删除!")
else:
print(f'没有找到name为{employee_name}的员工信息')
else:
print('无此员工信息')
show() # 调用函数
answer = input('请选择是否继续删除员工信息?如果输入y或Y即继续,否则退出:')
if answer == 'y' or answer == 'Y':
continue
else:
return
7.管理员修改员工信息
def modify():
show()
if os.path.exists(filename1):
with open(filename1, 'r', encoding='utf-8') as rfile:
employee_old = rfile.readlines()
else:
print()
return
while True:
employee_name = input('请输入你想要修改的员工的名字:')
for item in employee_old:
d = dict(eval(item))
if d['name'] == employee_name:
print(f'找到{employee_name}的信息,可以修改')
break
else:
print(f'没有找到{employee_name}的信息,请重新尝试')
answer = input('是否继续修改员工信息?如果输入y或Y即继续,否则退出:')
if answer == 'y' or answer == 'Y':
continue
else:
break
with open(filename1, 'w', encoding='utf-8') as wfile:
for item in employee_old:
d = dict(eval(item))
if d['name'] == employee_name:
while True:
try:
d['password'] = input('请输入修改后的密码:')
d['age'] = int(input('请输入修改后的年龄:'))
d['ability'] = input('请输入修改后的技能:')
d['telephone'] = int(input('请输入修改后的电话号码:'))
except:
print('输入有误,请重新输入')
continue
else:
break
wfile.write(str(d) + '\n')
else:
wfile.write(str(d) + '\n')
print("信息修改成功!!")
answer = input('是否继续修改员工信息?如果输入y或Y即继续,否则退出:')
if answer == 'y' or answer == 'Y':
continue
else:
break
8.统计员工信息
def total():
if os.path.exists(filename1):
with open(filename1, 'r', encoding='utf-8') as rfile:
employee = rfile.readlines()
if employee:
print(f'一共有{len(employee)}名员工') # 求所录员工的总人数
else:
print('还未录入员工信息')
else:
print('还未保存员工信息')
9.显示所有员工信息
def show():
employee_list = []
if os.path.exists(filename1):
with open(filename1, 'r', encoding='utf-8') as rfile:
employee = rfile.readlines()
for item in employee:
employee_list.append(eval(item))
if employee_list:
show_employee(employee_list)
10.打开一个新的文件
def save1(lst):
try:
dep_txt = open(filename, 'a', encoding='utf-8')
except:
dep_txt = open(filename, 'w', encoding='utf-8')
for item in lst:
dep_txt.write(str(item) + '\n')
dep_txt.close()
11.录入(增加)部门信息
def add1():
while True:
depart = input("请输入想要添加的部门的名称:")
numbers = input("请输入想要添加的部门所需人员数目:")
introduce = input("请输入想要添加的部门的简介:")
slogan = input("请输入想要添加的部门的口号:")
if depart != '' and numbers != '' and introduce != '' and slogan != '':
if os.path.exists(filename):
with open(filename, 'r', encoding='utf-8') as file:
depart_add1 = file.readlines()
else:
depart_add1 = []
with open(filename, 'a', encoding='utf-8') as wfile:
a = 0
for item in depart_add1:
d = dict(eval(item))
if d['depart'] == depart:
a += 1
print("已存在此部门")
if a == 0:
dep = {"depart": depart, "numbers": numbers, "introduce": introduce, "slogan": slogan}
wfile.write(str(dep) + '\n')
print(f"名字为为{depart}的部门信息已经添加!")
else:
print("该部门没有添加成功")
else:
print('输入错误')
answer = input("是否继续输入部门信息?如果输入y或Y即继续,否则退出:")
if answer == 'y' or answer == 'Y':
continue
else:
break
filename = 'depart.txt'
12.查询部门信息
def search1():
depart_query = []
while True:
if os.path.exists(filename):
n = input('请输入1按部门名称查询:')
if n == '1':
depart = input("请输入部门的名称:")
else:
print("输入信息有误")
continue
with open(filename, 'r', encoding='utf-8') as rfile:
depart1 = rfile.readlines()
for item in depart1:
d = dict(eval(item))
if depart != '':
if d['depart'] == depart:
depart_query.append(d)
# 显示查询结果
search_depart(depart_query)
depart_query.clear()
answer = input('是否继续查询部门信息?如果输入y或Y即继续,否则退出:: ')
if answer == 'y' or answer == 'Y':
continue
else:
return
else:
print('尚未保存部门信息:')
def search_depart(lst):
if len(lst) == 0:
print('没有查询到该部门信息,无数据显示')
return
else:
print('depart\t\t', 'numbers\t\t', 'introduce\t\t\t', 'slogan')
for item in lst:
print(item.get('depart') + " " * (12 - len(item.get('depart'))),
item.get('numbers') + " " * (12 - len(item.get('numbers'))),
item.get('introduce') + " " * (13 - len(item.get('introduce'))),
item.get('slogan') + " " * (len(item.get('slogan'))))
13.删除部门信息
def delete1():
while True:
depart = input('请输入想要删除的部门:')
if depart != '':
if os.path.exists(filename):
with open(filename, 'r', encoding='utf-8') as file:
depart_old = file.readlines()
else:
depart_old = []
flag = False
if depart_old:
with open(filename, 'w', encoding='utf-8') as wfile:
for item in depart_old:
d = dict(eval(item))
# print(d)
if d['depart'] != depart:
print(str(d))
wfile.write(str(d) + '\n')
else:
flag = True
if flag:
print(f"{depart}已经删除!")
else:
print(f'没有找到name为{depart}的部门信息')
else:
print('无此部门信息')
break
answer = input('请选择是否继续删除部门信息?如果输入y或Y即继续,否则退出:')
if answer == 'y' or answer == 'Y':
continue
else:
return
14.修改部门信息
def modify1():
display()
if os.path.exists(filename):
with open(filename, 'r', encoding='utf-8') as rfile:
depart_old = rfile.readlines()
else:
print()
return
while True:
depart_name = input('请输入你想要修改的部门的名称:')
for item in depart_old:
d = dict(eval(item))
if d['depart'] == depart_name:
print(f'找到{depart_name}部门的信息,可以修改')
break
else:
print(f'没有找到{depart_name}部门的信息,请重新尝试')
answer = input('是否继续修改部门信息?如果输入y或Y即继续,否则退出:')
if answer == 'y' or answer == 'Y':
continue
else:
break
with open(filename, 'w', encoding='utf-8') as wfile:
for item in depart_old:
d = dict(eval(item))
if d['depart'] == depart_name:
while True:
try:
d['depart'] = input('请输入修改后的部门的名称:')
d['numbers'] = input('请输入修改后的部门所需人员数量:')
d['introduce'] = input('请输入修改后的部门的简介:')
d['slogan'] = input('请输入修改后的部门的口号:')
except:
print('输入有误,请重新输入')
continue
else:
break
wfile.write(str(d) + '\n')
else:
wfile.write(str(d) + '\n')
print("信息修改成功!!")
answer = input('是否继续修改部门信息?如果输入y或Y即继续,否则退出:')
if answer == 'y' or answer == 'Y':
continue
else:
break
15.展示部门信息
def display():
depart_lst = []
if os.path.exists(filename):
with open(filename, 'r', encoding='utf-8') as rfile:
a = rfile.readlines()
for item in a:
depart_lst.append(eval(item))
if depart_lst:
search_depart(depart_lst)
16.主方法
if __name__ == '__main__': # 主方法,程序开始
while True:
c = input("你是管理员还是员工?如果是员工去输入1,如果是管理员请输入2:")
if c == '1':
main02() # 调用函数
break
elif c == '2':
main()
break
else:
print("输入错误,请重新输入!")
闭组会议总结
今天下午小组进行了闭组会议,闭组会议开始前是2018级的两位学姐给我们开的腾讯会员。会议上学姐主要介绍了一下她们找工作的经历以及对她们工作的具体方向进行详细的讲述,我简单地总结以下学姐所讲述的内容。
首先就是我们大四找实习单位的问题,我们要多投简历,也就是所谓的海投,因为只有投的简历多了,我们的机会才会更多。虽然我们每个人都想去大公司实习上班,但我们大学生缺乏实习经历,所有我们要先从基础做起,先向一些小的公司投入简历,获得工作经历,这样我们才能更好的去大公司面试,获得大公司的offer。其次,我们在面试的时候要问清楚面试官,进入公司后具体要做些什么,而且简历写的面试的方向要具体,一定不能过于宽泛,这样容易导致面试失败。还有就是我们要从现在开始坚持每天写一点算法题,这对以后我们面试是非常有帮助的,因为很多公司的面试都是包括算法题的。现在在小组每周都会写博客,这个在未来面试过程中也是一个加分项,我希望我能坚持下去,把博客写的越来越好。最后也是最重要的就是我们现在要学好高数,因为一些算法对我们的数学要求是非常高的,如果数学学的不会可能会导致我们无法完成算法,所以从现在开始我们要努力去学习高数,争取让自己变得更加优秀。
虽然从明天开始小组就闭组了,但我也会在空闲时间多来小组学习,好好备考,在期末考试中取得优异的成绩。