python实现员工管理系统

这是一个简易的员工管理系统,实现最简单的功能:

1.登录用户密码验证(错误三次自动退出)
2.支持文本员工的搜索、添加、删除、修改
3.一级层级多个选项、二级层级多个选项,都支持判空、退出、返回上一层级
4.针对删除和修改有员工当前自动搜索到的结果进行参照修改和特殊提醒是否删除

用到的基础知识点比较多:

1.计数器
2.while True 以及给while做退出层级标记
3.if…elif…else 的嵌套使用
4.continue 和 break 以及简单函数定义def
5.键盘抓取 raw_input 以及通过 os.system(‘clear')来调用linux中shell下的命令。
6.文本的读取写入原理(单读的不能实际写入,只能通过转存文本覆盖写入。)
如果是‘a+'则只为读取并可通过'writelines()'来写入,是追加写入
如果是‘w+'则为写入,可通过‘writelines()'来写入,是覆盖写入
7.列表的构成原理,列表的转换,列表的定位以及下标获取 listname.index(line)
8.特别需要注意程序执行前后顺序以及严格的缩进格式

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import sys
import os

#系统的用户登录
#os.system('clear')
time = 0
while True:  #this is login
    if time < 3:
        name = raw_input("\033[1mplease input your login account:").strip()
        passwd = raw_input("\033[1mplease input your login password:").strip()
        if len(name) == 0:               #.strip()意为去除空格
            print("\033[31mIt's not allow empty input!\n")
            continue
        elif name == 'zhangjun' and passwd == '123.com':
            print("\033[32mYour account and password right!")
            pass
        else:
            print("\033[31mYour account or password error!")
            time += 1
            continue
        break
    else:
        print("\033[31mYou are wrong three times, has already quit from the system!")
        sys.exit()

#系统的选择界面
#os.system('clear')
print ('\n')
def display(): #进行登陆后界面的函数定义,方便在下面的选用层级后,返回上一层时,依然可以看到选择大屏。
  print("\033[34m########################################################################")
  print("\033[34m\t######### \033[1;32mWelcome to this employee search system!\033[0;34m #########")
  print("\033[34m\t\t#################################################")
  print("\n")
  print("\033[32m\033[1m\t\t\t1\033[33m\033[1m.Search.(you can search the infomation for employee!)\n")
  print("\033[32m\033[1m\t\t\t2\033[33m\033[1m.Add.(Add a user into this employee system!)\n")
  print("\033[32m\033[1m\t\t\t3\033[33m\033[1m.Delete.(Delete a user from this employee system!)\n")
  print("\033[32m\033[1m\t\t\t4\033[33m\033[1m.Modify.(You can modify something infomation in this employee system!)\n")
  print("\033[32m\033[1m\t\t\t5\033[33m\033[1m.Quit.(quit this employee system!)\n")
  print("\n")
  dict ()
#指定文件路径
path = 'D:\Users\Franzhang\employee_list.txt'
#定义while层级标记break_tag1 = 0 以及登陆初始提示
break_tag1 = 0
while break_tag1 == 0:
  display()
  select_input = raw_input ("\033[37m\033[1mplease input you want to select items:").strip ()
  if len(select_input) == 0:
    continue
  elif select_input == 'quit':
    sys.exit ()
  #选项1进行模糊搜索
  elif int(select_input) == 1:
    # os.system('clear')
    break_tag2 = 0
    while break_tag2 == 0:
      content_open = open (path)
      search_input = raw_input ("please input your need (SEARCH MODE):").strip ()
      for line in content_open:
        if len (search_input) == 0:
          continue
        elif search_input in line:
          print line
        else:
          if search_input == 'all': #展示文本目前所有员工
            print line
          elif search_input == 'quit':
            break_tag2 = 1 #返回上一层级选择项
  #选项2进行员工信息添加(其实是添加了一行列表)
  elif int(select_input) == 2:
    # os.system('clear')
    content_write = file (path, 'a+') #读入文本
    break_tag3 = 0
    while break_tag3 == 0:
      addid_input = raw_input ("please input your need (ADD_ID):").strip ()
      if len (addid_input) == 0:
        continue
      elif addid_input == 'quit':
        break_tag3 = 1
        content_write.close () #文本使用完毕后需要关闭,以免占用内存。
        break
      addname_input = raw_input ("please input your need (ADD_NAME):").strip ()
      if len (addid_input) == 0:
        continue
      elif addname_input == 'quit':
        break_tag3 = 1
        content_write.close ()
        break
      addage_input = raw_input ("please input your need (ADD_AGE):").strip ()
      if len (addid_input) == 0:
        continue
      elif addage_input == 'quit':
        break_tag3 = 1
        content_write.close ()
        break
      adddpt_input = raw_input ("please input your need (ADD_DPT):").strip ()
      if len (addid_input) == 0:
        continue
      elif adddpt_input == 'quit':
        break_tag3 = 1
        content_write.close ()
        break
      addphone_input = raw_input ("please input your need (ADD_phone):").strip ()
      if len (addid_input) == 0:
        continue
      elif addphone_input == 'quit':
        break_tag3 = 1
        content_write.close ()
        break
      list_add = [addid_input, '\t', addname_input, '\t', addage_input, '\t', adddpt_input, '\t', addphone_input,'\n'] #将上面的单项录入写入列表list_add
      content_write.writelines (list_add) #将列表追加写入文本
      print("It's already insert the list!")
      continue
  #选项3进行员工删除
  elif int(select_input) == 3:
    # os.system('clear')
    break_tag4 = 0
    while break_tag4 == 0:
      content_opend = open (path)
      delete_input = raw_input ("please input your need (DELETE):").strip ()
      if len (delete_input) == 0:
        continue
      elif delete_input == 'quit':
        break_tag4 = 1
      for line in content_opend:
        if delete_input in line:
          print line
          sure = raw_input ("Are you sure delete this account line ? (yes/no):").strip ()
          if len (sure) == 0:
            continue
          elif sure == 'yes':
            inside = file (path, 'a+')
            bebe = inside.readlines () #按行读入文本并转换为列表data
            data = list (bebe)
            for i in data:
              if delete_input in i:
                w = data.index (i) #获取输入的员工在整个文本列表的位置
                del data[w] #删除单行
            data_in = data #转存删除后的文本列表(这个时候被读取的经过删除后的内容还在内存中。)
            inside.close () #转存后在关闭文本,否则导致转存因提前关闭而无效。
            inside_w = file (path, 'w+') #再次以覆盖写入方式读取文本
            inside_w.writelines (data_in) #将刚才转存的文本写入
            inside_w.close () #关闭文本后会自动保存写入
            break
          elif sure == 'no':
            break
        continue
  #选项4进行员工信息更改(整条员工信息的更改)
  elif int(select_input) == 4:
    break_tag5 = 0
    while break_tag5 == 0:
      modify_input = raw_input ("please input your modify item:").strip ()
      if len (modify_input) == 0:
        continue
      elif modify_input == 'quit':
        break
      content_modify = file (path, 'a+')
      modify_line = content_modify.readlines ()
      modata = list (modify_line)
      for i in modata:
        if modify_input in i:
          ms = modata.index (i)#获取输入变量的最终列表定位
          print i
          mosure = raw_input ("Are you sure to change this user ? (yes/no):").strip ()
          if len (mosure) == 0:
            continue
          elif mosure == 'yes':
            break_tag6 = 0
            while break_tag6 == 0:
              sureid_input = raw_input ("please input you will change this user id: ").strip ()
              if len(sureid_input) == 0:
                continue
              elif sureid_input == 'quit':
                break
              surename_input = raw_input ("please input you will change this user name:").strip ()
              if len(surename_input) == 0:
                continue
              elif surename_input == 'quit':
                sureid_input = None #此处赋空值,为了防止中途退出,而出现个别写入
                surename_input = None
                break
              sureage_input = raw_input ("please input you will change this user age:").strip ()
              if len(sureage_input) == 0:
                continue
              elif sureage_input == 'quit':
                sureid_input = None
                surename_input = None
                sureage_input = None
                break
              suredep_input = raw_input ("please input you will change this user department:").strip ()
              if len(suredep_input) == 0:
                continue
              elif suredep_input == 'quit':
                sureid_input = None
                surename_input = None
                sureage_input = None
                suredep_input = None
                break
              surephone_input = raw_input ("please input you will change this user phone:").strip ()
              if len(surephone_input) == 0:
                continue
              elif surephone_input == 'quit':
                sureid_input = None
                surename_input = None
                sureage_input = None
                suredep_input = None
                surephone_input = None
                break
              later_sure = [sureid_input, '\t', surename_input, '\t\t', sureage_input, '\t', suredep_input,'\t', surephone_input, '\n']#将上面的值放入列表
              del modata[ms] #当整个输入完成以后再进行删除,防止中途退出未完成状体的删除。
              modata_one = modata
              content_modify.close () #这里还是使用了删除、转存、重新写入的原理
              content_modify_list = file (path, 'w+')
              content_modify_list.writelines (modata_one)
              content_modify_list.close ()
              content_modify_list_one = file (path, 'a+')
              content_modify_list_one.writelines (later_sure)
              content_modify_list_one.close ()
              break
          elif mosure == 'quit' or 'no':
            break
  elif int (select_input) == 5:
    print("Thank you for use this employee system, write by franzhang!")
    sys.exit()

employee_list.txt:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • python实现学生管理系统
  • python实现外卖信息管理系统
  • Python实现学生成绩管理系统
  • 名片管理系统python版
  • Python学生成绩管理系统简洁版
  • Python实现学校管理系统
  • Python实现GUI学生信息管理系统
  • python版学生管理系统
  • python实现用户管理系统
  • 一个简单的Python名片管理系统
(0)

相关推荐

  • python实现外卖信息管理系统

    本文为大家分享了python实现外卖信息管理系统的具体代码,供大家参考,具体内容如下 一.需求分析 需求分析包含如下: 1.问题描述 以外卖信息系统管理员身份登陆该系统,实现对店铺信息.派送员信息.客服人员信息.订单信息.配送信息等进行有条件查询以及信息的录入.修改.删除等功能. 2.系统功能描述 (1)信息录入:使用wxpython设计排版编写窗口界面,给出录入信息的接口,通过python语句实现与数据库的连接,从而向数据库中插入相应数据. (2)信息修改:使用wxpython设计排版编写窗口

  • Python实现学生成绩管理系统

    本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本功能: 输入并存储学生的信息:通过输入学生的学号.姓名.和分数,然后就可以把数据保存在建立的student文件里面. 打印学生的所有信息:通过一个打印函数就可以把所有的信息打印在屏幕上. 修改学生信息:这个功能首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面. 删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找到进行删除. 按学生成绩进行排

  • 名片管理系统python版

    本文实例为大家分享了python名片管理系统的具体代码,供大家参考,具体内容如下 import os list_all = [] def page(): """输出主页面""" print("*" * 30) print("欢迎使用[名片管理系统]v2.0") print() print("1.新建名片") print("2.查看全部") print("3.

  • python版学生管理系统

    写一个学生管理系统,最好用python. 我都没学过python呢,只好开始临时抱佛脚,再到网上找找有没有例子看看,下面是我参照另一个博主写的,中间有一些和我不能融合的错误,我已经解决了. input("\n\nPress the enter key to exit.") def functionList(): # 定义功能菜单 print("---------请输入序号选择您要得功能---------") print("") print(&qu

  • Python实现学校管理系统

    本文实例为大家分享了Python实现学校管理系统的具体代码,供大家参考,具体内容如下 一.功能分析 此学校管理系统应该可以实现学校的师资力量的调配,学生的入学.学习以及修学或者退学的情况 二.程序解读 1.下面的程序实现了学校管理系统的基本功能,包括: 1)学校的招生 2)讲师的招聘 3)课程的增加 4)等等 2.未实现的功能也有很多,比如: 1)学生类中有一个方法是缴费,也有一个方法是注册,这两个方法应该关联起来,缴费成功后,才可以进行注册 2)每个老师应该可以通过各种方式来查看自己学生的信息

  • Python实现GUI学生信息管理系统

    本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境:  软件环境: OS:RedHat6.3                   Lib:Pygtk                   Language:Python                   Support tool:Glade3 项目简述: ①Glade3设计用户的登录窗口,功能主窗口 ②通过Gtk.Builder初始化,载入界面 ③在Mysql.py文件中实现Python操作数

  • python实现用户管理系统

    本文实例为大家分享了python实现用户管理系统的具体代码,供大家参考,具体内容如下 <python核心编程>第七章练习题第五题 一.题目描述 userpw2.py.下面的问题和例题7.1中的管理名字-密码的键值对数据程序有关. (a) 修改那个脚本,使他能记录用户上次的登陆日期和时间(用time模块),并与用户密码一起保存起来.程序的界面要求用户输入用户名和密码的提示.无论用户名是否登陆成功,都应有提示,在用户登陆成功后,应更新相应用户的上次登陆时间戳.如果本次登陆与上次登陆在时间上相差不超

  • Python学生成绩管理系统简洁版

    讲起学生成绩管理系统,从大一C语言的课程设计开始,到大二的C++课程设计都是这个题,最近在学树莓派,好像树莓派常用Python编程,于是学了一波Python,看了一点基本的语法想写点东西练下手. 开发环境:Ubuntu+Python2.7 代码如下: #coding=utf-8 #保存学生信息 studentList=[] def addInfo(name,addr): tempInfo={} tempInfo['name']=name tempInfo['addr']=addr student

  • python实现学生管理系统

    python写的简单的学生管理系统,练习python语法. 可以运行在windows和linux下,python 2.7. #!/usr/local/bin/python # -*- coding:utf-8 -*- import os import re #定义学生类 class Student: def __init__(self): self.name = '' self.ID = '' self.score = 0 #根据学生分数进行从大到小的冒泡排序 def BuddleSortByS

  • 一个简单的Python名片管理系统

    字符串和列表学完,自己试着写了一个非常简单的Python名片管理系统. 新萌尝试,大佬们不要喷. 修改名片的功能我偷了个懒,因为我不知道怎么通过定义下标,然后通过下标来修改列表内的字符串. 我的思路是,把用户准备修改的名片删除,再把用户新命名的名片添加即可: 如果有大佬有直接修改的办法,欢迎指点一下. 代码如下: name = [] while True: print("="*50) print(" 欢迎进入名片管理系统V1.0") print("1:添加

随机推荐