Python 员工信息管理系统
学Python将近一个月了,第一次写了两百多行代码,一个很简单的脚本。
员工信息管理系统:
需求:
1.管理员账户能够增加,删除,修改,查询员工信息,并且设置管理员账户。
2.普通账户可以查看所有员工信息,但不能增加,修改,删除员工信息。
3.可以针对员工信息类型进行模糊查询,并能记录搜索出多少条结果。
4.三次密码输入错误退出程序。
5.员工工号自增。
思路:
时间太晚了,明天再写。
具体实现代码
#coding=utf-8
#__author:Administrator
#__time:2018/5/21 12:43
#__file_name:staff_list
import io
import time
import os
FileRead = io.open('Staff_list','r',encoding='utf8')
Staff_list = eval(FileRead.read())
username = 0
'''
员工信息管理系统
需求:
1.增
2.删
3.改
4.查
5.管理员登陆
6.模糊搜索
'''
string = '''
工号:%s
姓名:%s
年龄:%s
部门:%s
地址:%s
电话:%s
Q Q:%s
微信:%s
入职时间:%s
'''
Project = ['姓名','年龄','部门','地址','电话','qq','微信','入职时间']
def login():#登陆模块
global username
print '='*43,'员工信息管理系统','='*43
num = 1
while num <= 3 :
username = int(raw_input('请输入你的工号:\n'))
pwd = raw_input('请输入密码:\n')
if username not in Staff_list:
print '没有你的信息,请联系管理员添加或重新输入,还有 %d 次机会'%(3-num)
num += 1
elif Staff_list[username]['权限'] == 1 and pwd == Staff_list[username]['密码']:
print '欢迎 %s 进入员工信息管理系统'%Staff_list[username]['姓名']
AdminMenuShow()
elif Staff_list[username]['权限'] != 1 and pwd == Staff_list[username]['密码']:
print '欢迎 %s 进入员工信息系统'%Staff_list[username]['姓名']
StaffMenuShow()
else :
print '密码输入错误,还有 %d 次机会'%(3-num)
num += 1
else :
print '输入次数过多,已退出程序'
time.sleep(3)
exit()
def OptionJudge(chioce):#对用户输入进行判断
if chioce == 'A' or chioce == 'a': Increase()
elif chioce == 'B' or chioce == 'b': Delete()
elif chioce == 'C' or chioce == 'c': Amend()
elif chioce == 'D' or chioce == 'd': Query()
elif chioce == 'E' or chioce == 'e': AllStaff()
elif chioce == 'F' or chioce == 'f': Search()
elif chioce == 'G' or chioce == 'g': IncreaseAdmin()
elif chioce == 'H' or chioce == 'h': exit()
else :
chioce = raw_input('你的输入有误 请重新输入:\n')
OptionJudge(chioce)
def AdminMenuShow():#管理员菜单展示
print '=' * 43, '员工信息管理系统', '=' * 43
print '【A】增加一个成员 【B】删除一个成员'
print '【C】修改一个成员 【D】查询一个成员'
print '【E】查看所有成员 【F】关键词搜索 '
print '【G】增加一个管理员【H】退出系统'
print
chioce = raw_input('请输入你的选择:\n')
OptionJudge(chioce)
def StaffMenuShow():#普通用户菜单展示
print '=' * 43, '员工信息管理系统', '=' * 43
print '【E】查看所有成员 【D】查询一个成员'
print '【F】关键词搜索 【H】退出系统 '
chioce = raw_input('请输入你的选择:\n')
OptionJudge(chioce)
def Increase():#增加一个用户
print '=' * 44, '增加新的员工', '=' * 44
staff_num = Staff_list['num']
Staff_list[staff_num] = {}
Staff_list[staff_num]['姓名'] = raw_input('请输入员工姓名\n')
Staff_list[staff_num]['年龄'] = raw_input('请输入员工年龄\n')
Staff_list[staff_num]['部门'] = raw_input('请输入员工部门\n')
Staff_list[staff_num]['住址'] = raw_input('请输入员工地址\n')
Staff_list[staff_num]['电话'] = raw_input('请输入员工电话号码\n')
Staff_list[staff_num]['qq'] = raw_input('请输入员工QQ号码\n')
Staff_list[staff_num]['微信'] = raw_input('请输入员工微信号码\n')
Staff_list[staff_num]['入职时间'] = raw_input('请输入员工入职日期\n')
Staff_list[staff_num]['密码'] = raw_input('请设置员工登陆密码\n')
Staff_list[staff_num]['权限'] = raw_input('请设置员工权限\n')
Staff_list['num'] = Staff_list['num'] + 1
print '%s已录入成功,工号为%d' % (Staff_list[staff_num]['姓名'],staff_num)
Staff_list_UpDate()
def IncreaseAdmin():#创建管理员账户
print '=' * 43, '正在增加管理员', '=' * 43
staff_num = int(raw_input('请输入员工工号\n'))
if Staff_list[staff_num] == {}:
print '工号为%d的员工已离职,请重新输入' % staff_num
IncreaseAdmin()
elif staff_num in Staff_list and Staff_list[staff_num] != {}:
Flag = raw_input('确认是否将 %s 设置为管理员用户?Y/N' % Staff_list[staff_num]['姓名'])
if Flag == 'Y':
print '%s 已成功设置为管理员' % Staff_list[staff_num]['姓名']
Staff_list[staff_num]['权限'] = 1
time.sleep(3)
Staff_list_UpDate()
elif Flag == 'N':
print '正在返回主菜单'
AdminMenuShow()
else:
print '你的输入错误,正在为你返回主菜单'
AdminMenuShow()
else :
print '没有工号为%d的员工,请重新输入' % staff_num
IncreaseAdmin()
def Delete():#删除一个用户
print '=' * 46, '删除员工', '=' * 46
Staff_num = int(raw_input('请输入你要删除的员工工号\n'))
if Staff_num in Staff_list and Staff_list[Staff_num] != {}:
Flag = raw_input('确认是否删除 %s?Y/N ' % Staff_list[Staff_num]['姓名'])
if Flag == 'Y' or Flag == 'y' :
temp = Staff_list[Staff_num]['姓名']
Staff_list[Staff_num] = {}
time.sleep(3)
print '已经为您删除 %s'%temp
Staff_list_UpDate()
elif Flag == 'N' or Flag == 'n':
print '请重新输入'
Delete()
else:
print '你的输入错误,正在为你返回主菜单'
AdminMenuShow()
elif Staff_num in Staff_list and Staff_list[Staff_num] == {}:
print '%s已被删除,请重新输入'%Staff_list[Staff_num]['姓名']
Delete()
else:
print '没有工号为%d的用户,请重新输入'%Staff_num
Delete()
print '操作完毕,正在返回主菜单'
AdminMenuShow()
def Amend():#修改一个用户
print '=' * 44, '修改员工信息', '=' * 44
staff_num = int(raw_input('请输入你要修改的员工编号\n'))
if staff_num not in Staff_list:
print '你输入的员工编号不存在,请重新输入'
Amend()
elif staff_num == 0 :
print '你无权修改,请重新输入'
Amend()
elif Staff_list[staff_num] == {}:
print '你所要修改的员工已被删除,无法进行修改'
Amend()
else :
while True :
project = raw_input('请输入你要修改的项目(姓名/年龄/部门/地址/电话/qq/微信/入职时间)\n')
if project in Staff_list[staff_num] and project in Project :
content = raw_input('请输入你要修改的内容:\n')
Staff_list[staff_num][project] = content
print '已为您修改完毕,正在为您返回主菜单'
Staff_list_UpDate()
else :
print '你输入的项目不正确,请重新输入'
def Permissions():
if Staff_list[username]['权限'] == 1:
print '操作完毕,正在返回主菜单'
AdminMenuShow()
else:
print '操作完毕,正在返回主菜单'
StaffMenuShow()
def Query():#查询一个用户
print '=' * 44, '员工信息查询', '=' * 44
staff_num = int(raw_input('请输入员工工号\n'))
if Staff_list[staff_num] == {}:
print '该员工已被删除,请重新搜索你要查询的员工'
Query()
elif staff_num in Staff_list:
print '=' * 43, 'Info of %s' % Staff_list[staff_num]['姓名'], '=' * 43
print string % (
staff_num, Staff_list[staff_num]['姓名'], Staff_list[staff_num]['年龄'], Staff_list[staff_num]['部门'],
Staff_list[staff_num]['住址'], Staff_list[staff_num]['电话'], Staff_list[staff_num]['qq'],
Staff_list[staff_num]['微信'], Staff_list[staff_num]['入职时间'])
else :
print '没有工号为%d的员工,请重新输入'
Query()
Flag = raw_input('员工%s 信息已查询完毕,是否返回主菜单?Y/N ' % Staff_list[staff_num]['姓名'])
if Flag == 'Y' or Flag == 'y' :
Permissions()
else :
print '重新查询一个用户'
Query()
def AllStaff():#查看所有用户
for i in range(1, Staff_list['num']) :
if Staff_list[i] == {}:
print '=' * 45, '第%d 号员工'%i, '=' * 45
print '第%d 号员工已离职'%i
else :
print '=' * 44, '%s的信息' % Staff_list[i]['姓名'], '=' * 44,
print string % (
i, Staff_list[i]['姓名'], Staff_list[i]['年龄'], Staff_list[i]['部门'],
Staff_list[i]['住址'], Staff_list[i]['电话'], Staff_list[i]['qq'],
Staff_list[i]['微信'], Staff_list[i]['入职时间'])
Flag = raw_input('用户信息已查询完毕,是否返回主菜单?Y/N ')
if Flag == 'Y' or Flag == 'y':
Permissions()
else:
print '不允许操作'
def Search():#关键词搜索
print '=' * 44, '员工信息搜索', '=' * 44
project = raw_input('请输入你要查找的项目(姓名/年龄/部门/地址/电话/qq/微信/入职时间)\n')
num = 0
while True:
key = raw_input('请输入你要查找的关键字\n')
if project in Project:
for i in range(1, Staff_list['num']):
if Staff_list[i] == {}:
pass
elif key in Staff_list[i][project]:
print '=' * 44, '%s的信息' % Staff_list[i]['姓名'], '=' * 44,
print string % (
i, Staff_list[i]['姓名'], Staff_list[i]['年龄'], Staff_list[i]['部门'],
Staff_list[i]['住址'], Staff_list[i]['电话'], Staff_list[i]['qq'],
Staff_list[i]['微信'], Staff_list[i]['入职时间'])
num += 1
if num == 0:
print '没有搜索到结果,请重新搜索'
else:
print '共搜索到 %d 名 %s 为 %s 的员工' % (num, project, key)
Flag = raw_input('用户信息已查询完毕,任意键继续搜索,选择Y返回主菜单 ')
if Flag == 'Y' or Flag == 'y':
Permissions()
else :
Search()
else:
print '你要查找的项目不存在'
def Staff_list_UpDate():
global FileRead
FileRead.close()
with open('Staff_list_copy', 'w') as FileWrite :
Write_Staff_list = str(Staff_list)
FileWrite.write(Write_Staff_list)
os.remove('Staff_list')
os.renames('Staff_list_copy','Staff_list')
FileRead = io.open('Staff_list', 'r', encoding='utf8')
time.sleep(3)
AdminMenuShow()
login()
文本内容:
初始帐号:0
初始密码:123456
{0: {', '\xe6\x9d\x83\xe9\x99\x90': 1, '\xe5\xa7\x93\xe5\x90\x8d': 'admin'}}
Python 员工信息管理系统的更多相关文章
- jQuery实现的3个基础案例(仿QQ列表分组,二级联动下拉框,模拟员工信息管理系统)
1.仿QQ列表分组 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&quo ...
- qt项目:员工信息管理系统
开发一个员工信息管理系统 一.项目具体要求: 1.用qt开发界面,数据库用QSqlite 数据库文件名:demostudent.db 2.通过界面能够查看到数据库中员工信息表中内容,包括员工姓名.年龄 ...
- Python员工信息表练习
1.用户可以模糊查询员工信息 2.显示匹配了多少条,匹配字符需要高亮显示 employee_db.txt 总经办 龚丽丽 总经理 男 -- 1月18日 汉 族 中共党员 已婚 总经办 李惠 副总经理 ...
- Python学生信息管理系统的开发
# 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...
- python 学生信息管理系统
python与数据库的例子 初始化数据库 链接数据库创建库和表并插入数据 init.py import pymysql sql_base='create database school;' sql_t ...
- Python:员工信息增删改查
一:需求 homework.txt文件中有如下格式的人员信息: 1,Jack Wang,28,13451024608,HR,2015‐01‐072,Rain Wang,21,13451054608,I ...
- python作业员工信息表程序(第四周)
作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...
- python--员工信息管理系统编译及思路
员工管理系统,顾名思义,应该具有增删查改功能.拿到需求后,应该按照一定的流程依次编写,最后达到程序的统一和兼容. 系统需求如下: 文件存储格式如下: id,name,age,phone,job 1,A ...
- python员工管理系统(基础版)
各位小伙伴们大家好,最近自学python已经差不多把基础学完了,现在运用这些基础知识写了一个简单版本的员工管理系统 因为在大学里我是学过java的,所以,当有了一定的基础和熏陶外,真心觉得python ...
随机推荐
- mac os x下的一些小技巧
1显示swap空间: sysctl vm.swapusage 其中sysctl中有很多可以控制和查看的项,可以通过sysctl -A列举,另外可以通过man sysctl来查看. 而实际swap文件和 ...
- BT雷人的程序语言
原文:http://cocre.com/?p=1142 酷壳 这个世界从来都不会缺少另类的东西,人类自然世界如此,计算机世界也一样.编程语言方面,看过本站<6个变态的C语言Hello Worl ...
- Django之跨域请求
同源策略 首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性. 而如果我们要跳过这个策略,也就是说非要跨域请求,那么就需要通过J ...
- 负载均衡之让nginx跑起来
一个简单的原因,我不得不考虑负载 小源做了个网站,很简单,传统的java开放框架,和一个tomcat搞定,让人没想到的是网站既然火起来了,很快一个tomcat就搞不定了,怎么办? 网站访问量很大,既然 ...
- C++笔记018:构造函数的调用规则
原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 一.默认构造函数 两个特殊的构造函数 1.默认无参构造函数 当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空 ...
- 超精简易用cocoaPods的安装和使用
cocoaPods 安装和使用 第一步:替换ruby源 $ gem sources -l 查看当前ruby的源 $ gem sources ...
- 如何在asp.net mvc 中使用Autofac 控制反转(Ioc)
前言 最近看了一些关于Ioc方面的开源项目,里面的类跳来转去,看的迷迷糊糊的.项目里根本不需要这么“复杂的”设计,只需简单完成Ico,达到解耦的目的,并且能高效的完成项目.于是参考autofac的官网 ...
- IT轮子系列(一)——DropDownList 的绑定(二)
补记: 今天在阅读公司项目代码的时候,发现MVC中的dropdownlist已经封装了数据绑定方式.相对于第一篇文章,这样的方式更简便.简洁.现记录如下: 首先,创建我们的数据模型 如下图: 模型代码 ...
- 《深入理解Java虚拟机》读书笔记2--垃圾回收
回收哪些内存/对象 引用计数算法 可达性分析算法 finalize()方法 HotSpot实现分析 转载:http://blog.csdn.net/tjiyu/article/details/5398 ...
- 【深入理解Java内存模型】
深入理解Java内存模型(一)--基础 深入理解Java内存模型(二)--重排序 深入理解Java内存模型(三)--顺序一致性 深入理解Java内存模型(四)--volatile 深入理解Java内存 ...