学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 员工信息管理系统的更多相关文章

  1. jQuery实现的3个基础案例(仿QQ列表分组,二级联动下拉框,模拟员工信息管理系统)

    1.仿QQ列表分组 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&quo ...

  2. qt项目:员工信息管理系统

    开发一个员工信息管理系统 一.项目具体要求: 1.用qt开发界面,数据库用QSqlite 数据库文件名:demostudent.db 2.通过界面能够查看到数据库中员工信息表中内容,包括员工姓名.年龄 ...

  3. Python员工信息表练习

    1.用户可以模糊查询员工信息 2.显示匹配了多少条,匹配字符需要高亮显示 employee_db.txt 总经办 龚丽丽 总经理 男 -- 1月18日 汉 族 中共党员 已婚 总经办 李惠 副总经理 ...

  4. Python学生信息管理系统的开发

    # 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...

  5. python 学生信息管理系统

    python与数据库的例子 初始化数据库 链接数据库创建库和表并插入数据 init.py import pymysql sql_base='create database school;' sql_t ...

  6. Python:员工信息增删改查

    一:需求 homework.txt文件中有如下格式的人员信息: 1,Jack Wang,28,13451024608,HR,2015‐01‐072,Rain Wang,21,13451054608,I ...

  7. python作业员工信息表程序(第四周)

    作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...

  8. python--员工信息管理系统编译及思路

    员工管理系统,顾名思义,应该具有增删查改功能.拿到需求后,应该按照一定的流程依次编写,最后达到程序的统一和兼容. 系统需求如下: 文件存储格式如下: id,name,age,phone,job 1,A ...

  9. python员工管理系统(基础版)

    各位小伙伴们大家好,最近自学python已经差不多把基础学完了,现在运用这些基础知识写了一个简单版本的员工管理系统 因为在大学里我是学过java的,所以,当有了一定的基础和熏陶外,真心觉得python ...

随机推荐

  1. LeetCode(39)-Intersection of Two Linked Lists

    听歌曲初爱有感: 开头啰嗦两句,刚在做算法题目的时候,听到了杨宗纬的<初爱>,突然有了一种本科时候的感觉,想想自己现在研二了,青春喂了狗,我果断喝了一罐啤酒,循环这首歌到吐-.. 题目: ...

  2. ruby用来发送互联网邮件

    其实只要你任性的可以,用telnet也是可以发邮件的哦.不过本猫没那么任性,还是用KISS原则来发邮件吧.本篇博文只介绍了如何发邮件,但没涉及收邮件的事,以后如有机会会单独开一篇博文介绍. ruby通 ...

  3. 跨JavaScript对象作用域调用setInterval方法

    跨JavaScript对象作用域调用setInterval方法: var id = window.setInterval(function() {foofunc.call(this);}, 200);

  4. 解决:MySQL 报错:1045 - Access denied for user 'root'@'localhost'(using password YES)

    一.前言 今年疯狂迷上了开源,只要看到好的开源项目,就会不顾一切一股脑扎进去研究,五一期间发现一个很好的关于众筹的开源项目,但不巧,这个项目竟然是 PHP 写的,没学过 PHP,自然对这个开源项目毫无 ...

  5. List,Set,Map三种接口的区别

    set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构  map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换)   List按对象进 ...

  6. JDBC基本使用

    J2EE技术规范(二)——JDBC 分类: java2012-12-03 14:25 1060人阅读 评论(8) 收藏 举报 一.了解JDBC (1) JDBC是以统一方式访问数据库的API (2) ...

  7. Ng1从1.3开始的变更史

    从今有个ng1 spa项目,项目可能会有ng1的版本升级问题,特简要摘录从1.3的主要版本变更,所以内容来自migration guide. 1.3的主要变更: 1.controller不能再以全局简 ...

  8. 解决ubuntu unity下gvim菜单消失的问题

    #问题描述:在终端下用gvim 指令打开 gvim就不显示菜单.在不启用unity的桌面环境下用终端打开gvim是有菜单的.从程序菜单中打开gvim是显示菜单的.用sudo打开gvim也可以显示菜单, ...

  9. 0基础一分钟入门Python

    这篇文章面向所有想学python的小伙伴(甚至你从没听过编程),这篇文章将会带你以最快的速度入门python.赶快上车,时间来不及了... 一,下载和安装python 1.下载: 1.1 python ...

  10. Jmeter(二十七)_Beanshell保存响应内容到本地

    利用Jmeter-BeanShell PostProcessor可以提取响应结果并保存到本地文件,这种操作在jmeter做爬虫时非常有用,可以帮助你迅速的获取想要的内容到本地文件! 1:在本地新建一个 ...