用Python实现职工信息管理系统


Posted in Python onDecember 30, 2020

想要实现一个职工管理系统
首先我们看一下想要实现什么功能
最基础的增删改查肯定要实现的
然后增加一下数据显示、数据排序、数据统计功能

下面直接上代码

增加职工数据

# 接收用户收入
id = input('请输入职工号')
name = input('请输入姓名')
sex = input('请输入性别')
age = input('请输入年龄')
education = input('请输入学历')
address = input('请输入住址')
photonumber = input('请输入电话')
money = input('请输入工资')
# 向列表中添加数据
data.append([id, name, sex, age, education, address, photonumber, money])
print('添加成功')
# 调用保存函数 保存数据
save()

删除职工数据

id = input('请输入你要修改的职工编号')
ids = [i[0] for i in data]
if id not in ids:
  print('您查询的职工不存在')
  return
else:
  del data[ids.index(id)]
  print('删除成功')
save()

查询职工数据

# 选择查询目标
flag = int(input('1.按照职工编号查询 2.按照职工姓名查询'))
if flag == 1:
  id = input('输入职工编号')
  # 职工编号列表
  ids = [i[0] for i in data]
  # 判断输入的编号是否存在
  if id not in ids:
    print('您查询的职工不存在')
    return
  else:
    print('职工号 姓名 性别 年龄 学历 住址 电话 工资')
    # 打印该编号的信息
    for i in data[ids.index(id)]:
      print(i, end=' ')
    print()
else:
  name = input('输入职工姓名')
  # 职工姓名列表
  names = [i[1] for i in data]
  # 判断输入的姓名是否存在
  if name not in names:
    print('您查询的职工不存在')
    return
  else:
    print('职工号 姓名 性别 年龄 学历 住址 电话 工资')
    # 同上
    for i in data[names.index(name)]:
      print(i, end=' ')
    print()

修改职工信息

id = input('请输入你要修改的职工编号')
ids = [i[0] for i in data]
if id not in ids:
  print('您查询的职工不存在')
  return
else:
  # 输入要修改的数据
  name = input('请输入姓名')
  sex = input('请输入性别')
  age = input('请输入年龄')
  education = input('请输入学历')
  address = input('请输入住址')
  photonumber = input('请输入电话')
  money = input('请输入工资')
  # 修改数据
  data[ids.index(id)] = [id, name, sex, age, education, address, photonumber, money]
  print('修改成功')
save()

排序函数

global data
data = sorted(data, key=lambda x: x[1])

统计函数

counts = {}
# 统计每个工资的人数
for i in data:
  counts[int(i[-1])] = counts.get(i[-1], 0) + 1
# 按照人数多少排序
counts = dict(sorted(counts.items(), key=lambda x: x[1], reverse=True))
# 将结果打印
for money, count in counts.items():
  print('{0:<10}{1:>5}'.format(money, count))
print('工资最多的是:', max(counts))
print('工资最少的是:', min(counts))

显示函数

# 打印标题
print('职工号 姓名 性别 年龄 学历 住址 电话 工资')
# 遍历数据列表 然后打印数据
for i in data:
 for j in i:
   print(j, end=' ')
 print()

读取保存函数

def save(): # 保存函数
  # 打开文件,写入数据
  with open('数据.csv','w') as j:
    for i in data:
      j.write(','.join(i)+'\n')
  j.close()


def load(): # 读取函数
  # 读取文件
  with open('数据.csv','r') as j:
    # 读取每行数据
    for i in j.readlines():
      # 清洗掉换行符 然后以逗号为间隔符分割
      data.append(i.replace('\n','').split(','))
  j.close()

总结整体代码:

def add(): # 添加数据函数
  # 接收用户收入
  id = input('请输入职工号')
  name = input('请输入姓名')
  sex = input('请输入性别')
  age = input('请输入年龄')
  education = input('请输入学历')
  address = input('请输入住址')
  photonumber = input('请输入电话')
  money = input('请输入工资')
  # 向列表中添加数据
  data.append([id, name, sex, age, education, address, photonumber, money])
  print('添加成功')
  # 调用保存函数 保存数据
  save()


def show(): # 显示函数
  # 打印标题
  print('职工号 姓名 性别 年龄 学历 住址 电话 工资')
  # 遍历数据列表 然后打印数据
  for i in data:
    for j in i:
      print(j, end=' ')
    print()


def quety(): # 查询函数
  # 选择查询目标
  flag = int(input('1.按照职工编号查询 2.按照职工姓名查询'))
  if flag == 1:
    id = input('输入职工编号')
    # 职工编号列表
    ids = [i[0] for i in data]
    # 判断输入的编号是否存在
    if id not in ids:
      print('您查询的职工不存在')
      return
    else:
      print('职工号 姓名 性别 年龄 学历 住址 电话 工资')
      # 打印该编号的信息
      for i in data[ids.index(id)]:
        print(i, end=' ')
      print()
  else:
    name = input('输入职工姓名')
    # 职工姓名列表
    names = [i[1] for i in data]
    # 判断输入的姓名是否存在
    if name not in names:
      print('您查询的职工不存在')
      return
    else:
      print('职工号 姓名 性别 年龄 学历 住址 电话 工资')
      # 同上
      for i in data[names.index(name)]:
        print(i, end=' ')
      print()


def modify(): # 修改函数
  # 原理同上
  id = input('请输入你要修改的职工编号')
  ids = [i[0] for i in data]
  if id not in ids:
    print('您查询的职工不存在')
    return
  else:
    # 输入要修改的数据
    name = input('请输入姓名')
    sex = input('请输入性别')
    age = input('请输入年龄')
    education = input('请输入学历')
    address = input('请输入住址')
    photonumber = input('请输入电话')
    money = input('请输入工资')
    # 修改数据
    data[ids.index(id)] = [id, name, sex, age, education, address, photonumber, money]
    print('修改成功')
  save()


def sort(): # 排序函数
  global data
  data = sorted(data, key=lambda x: x[1])


def statistics(): # 统计函数
  counts = {}
  # 统计每个工资的人数
  for i in data:
    counts[int(i[-1])] = counts.get(i[-1], 0) + 1
  # 按照人数多少排序
  counts = dict(sorted(counts.items(), key=lambda x: x[1], reverse=True))
  # 将结果打印
  for money, count in counts.items():
    print('{0:<10}{1:>5}'.format(money, count))
  print('工资最多的是:', max(counts))
  print('工资最少的是:', min(counts))


def delete(): # 删除函数
  # 原理同上
  id = input('请输入你要修改的职工编号')
  ids = [i[0] for i in data]
  if id not in ids:
    print('您查询的职工不存在')
    return
  else:
    del data[ids.index(id)]
    print('删除成功')
  save()


def save(): # 保存函数
  # 打开文件,写入数据
  with open('数据.csv','w') as j:
    for i in data:
      j.write(','.join(i)+'\n')
  j.close()


def load(): # 读取函数
  # 读取文件
  with open('数据.csv','r') as j:
    # 读取每行数据
    for i in j.readlines():
      # 清洗掉换行符 然后以逗号为间隔符分割
      data.append(i.replace('\n','').split(','))
  j.close()


if __name__ == '__main__':
  data = [] # 数据保存列表
  # 读取文件 如果文件不存在 报错跳过 无视
  try:
    load()
  except FileNotFoundError:
    pass
  while True:
    # 根据玩家的输入 选择相应的功能
    choice = int(input('1.添加职工数据\n2.显示职工数据\n3.查询职工数据\n4.修改职工数据\n5.删除职工数据\n6.保存职工数据\n7.排序职工数据\n8.统计职工工资数据\n9.退出'))
    if choice == 1:
      add()
    elif choice == 2:
      show()
    elif choice == 3:
      quety()
    elif choice == 4:
      modify()
    elif choice == 5:
      delete()
    elif choice == 6:
      save()
    elif choice == 7:
      sort()
    elif choice == 8:
      statistics()
    elif choice == 9:
      print('退出程序')
      break

到此这篇关于用Python实现职工信息管理系统的文章就介绍到这了,更多相关Python 职工信息管理系统内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 实现堆排序算法代码
Jun 05 Python
Python中使用PDB库调试程序
Apr 05 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
python做量化投资系列之比特币初始配置
Jan 23 Python
python中kmeans聚类实现代码
Feb 23 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
python之pexpect实现自动交互的例子
Jul 25 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
python numpy 常用随机数的产生方法的实现
Aug 21 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
python实现双人五子棋(终端版)
Dec 30 #Python
pandas 数据类型转换的实现
Dec 29 #Python
python中xlutils库用法浅析
Dec 29 #Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 #Python
python中uuid模块实例浅析
Dec 29 #Python
python中pickle模块浅析
Dec 29 #Python
vue.js刷新当前页面的实例讲解
Dec 29 #Python
You might like
php 模拟POST|GET操作实现代码
2010/07/20 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
jquery获取radio值实例
2014/10/16 Javascript
js数组的操作指南
2014/12/28 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
2016/09/08 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
Vue3为什么这么快
2020/09/23 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
Python运用于数据分析的简单教程
2015/03/27 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python使用matplotlib画饼状图
2018/09/25 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
美国零售商店:Blue&Cream
2017/04/07 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
办公室驾驶员岗位职责
2013/11/15 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
酒店前台辞职书
2015/02/26 职场文书
导游词之吉林吉塔
2019/11/11 职场文书