博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【19】Python工资管理系统
阅读量:6897 次
发布时间:2019-06-27

本文共 3350 字,大约阅读时间需要 11 分钟。

实验名称:工资管理系统

实验要求:
Alex 100000
Rain 80000
Egon 50000
Yuan 30000
-----以上是info.txt文件-----
实现效果:
从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。
效果演示:

  1. 查询员工工资
  2. 修改员工工资
  3. 增加新员工记录
  4. 删除员工信息
  5. 退出

    >:1

    请输入要查询的员工姓名(例如:Alex):Alex
    Alex的工资是:100000。

  6. 查询员工工资
  7. 修改员工工资
  8. 增加新员工记录
  9. 删除员工信息
  10. 退出

    >:2

    请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):Alex 10
    修改成功!

  11. 查询员工工资
  12. 修改员工工资
  13. 增加新员工记录
  14. 删除员工信息
  15. 退出

    >:3

    请输入要增加的员工姓名和工资,共空格分割(例如:Eric 100000):Eric 100000
    增加成功!

  16. 查询员工工资
  17. 修改员工工资
  18. 增加新员工记录
  19. 删除员工信息
  20. 退出

    >:4

    请输入要增加的员工姓名和工资,共空格分割(例如:Eric 100000):Eric 100000
    增加成功!

  21. 查询员工工资
  22. 修改员工工资
  23. 增加新员工记录
  24. 删除员工信息
  25. 退出

    >:5

    再见!

代码实现:

#!/usr/bin/env python#-*- coding:utf-8 -*-import os######查询操作######def select():    name=input("请输入要查询的员工姓名(例如:Alex):").strip() #空格分段    flag=False #判断条件    with open("info.txt","r")as reads:        for line in reads: #遍历            if line.split()[0]==name:  ###[alex 1000],[Yuan 9999][0]==name                flag=True                print("员工信息",name,line.split()[1])  #[alex 1000][1]==1000            else:  ###跳过,知道遍历结束为查询到,执行if not flag的判断                continue    if not flag:        print("\033[31;1m未找到%s员工信息\033[0m"%name)#####修改操作######def revise():    reff=input("请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):").strip()  ##reff: "Alex 10000"    reff_list=reff.split() #reff_list : ['Alex','1000']  class list    flag=False    with open("info.txt","r")as reads,open("info",'w')as writes:        for line in reads: #遍历  line "alex 10000'            if line.split()[0] == reff_list[0]:   ##line "alex" == reff_list ["alex",""]                writes.write(reff+"\n")   #修改成功,True                flag=True            else:###                writes.write(line)    os.remove("info_bak.txt")    os.rename("info.txt","info_bak.txt")    os.rename("info","info.txt")    if flag:        print("修改成功")    else:        print("未找到需要修改的\033[31;1m%s\033[0m员工信息" % reff)def app():    rtff=input("请输入要增加的员工姓名和工资,共空格分割(例如:Eric 100000):").strip() ##以空格作为分隔符    rtff_list=rtff.split()    flag=False    with open("info.txt","r")as reads:        for line in reads:            if line.split()[0] == rtff_list[0]: ##当相同时,print 以重复。                flag = True            else:                continue    if flag:        print("\033[31;1m该%s用户已存在\033[0m"%rtff)    else:        with open("info.txt", "a") as writes:            writes.write("\n"+rtff)        print("增加成功")######删除操作#######def delete():    name=input("请输入要删除的员工姓名(例如:Alex):").strip()    flag=False    with open("info.txt","r") as reads,open("info","w")as writes:        for line in reads:            if line.split()[0]==name:                flag=True                continue            else:                writes.write(line)    os.remove("info_bak.txt")    os.rename("info.txt", "info_bak.txt")    os.rename("info", "info.txt")    if flag:        print("删除成功")    else:        print("未找到需要修改的\033[31;1m%s\033[0m员工信息" % name)#####菜单#####def main():    menu={        "1":select,        "2":revise,        "3":app,        "4":delete,        "5":exit,    }    while True:        print("""        请选择:            1,查询员工信息            2,修改员工工资            3,增加员工信息            4,删除员工信息            5,退出工资系统        """)        choice=input(">>>").strip()  ##choice :"1,2,3,4"        if choice in menu:  ###这里是menu字典的key值等于choice            menu[choice]() ###进入对应的valueif __name__ == "__main__":    main()本文转自白羊IT51CTO博客,原文链接:http://blog.51cto.com/000011211684/2052701,如需转载请自行联系原作者
你可能感兴趣的文章
Notes中几个处理多值域的通用函数
查看>>
量化生产力Quantifying Productivity
查看>>
趣文:我是一个线程
查看>>
iOS - UIAlertView
查看>>
【资料下载区】【iCore3相关代码、资料下载地址】更新日期2017/06/28
查看>>
短信发送的流程,硬编码在了服务方法里面,优化方案
查看>>
tcpdump
查看>>
maven的pom文件中配置测试用例
查看>>
Swift 方法
查看>>
angularjs等号运算
查看>>
LeetCode: Symmetric Tree 解题报告
查看>>
C# 线程手册 第五章 扩展多线程应用程序 CLR 和 线程
查看>>
html a name href
查看>>
JavaScript中json对象和string对象之间相互转化
查看>>
arm程序的反汇编程序
查看>>
SQL Server 2008数据库的一些基本概念
查看>>
在ASP.NET中重写URL
查看>>
职业化
查看>>
linux进程调度策略(SCHED_OTHER,SCHED_FIFO,SCHED_RR)
查看>>
栈,队列,双端队列
查看>>