为了账号安全,请及时绑定邮箱和手机立即绑定

Python工资管理系统

标签:
Python

工资管理系统

Alex 100000

Rain 80000

Egon 50000

Yuan 30000

-----以上是info.txt文件-----

实现效果:

从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。

效果演示:

1. 查询员工工资

2. 修改员工工资

3. 增加新员工记录

4. 退出

>>:1

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

Alex的工资是:100000。

1. 查询员工工资

2. 修改员工工资

3. 增加新员工记录

4. 退出

>>:2

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

修改成功!

1. 查询员工工资

2. 修改员工工资

3. 增加新员工记录

4. 退出

>>:3

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

增加成功!

1. 查询员工工资

2. 修改员工工资

3. 增加新员工记录

4. 退出

>>:4

再见!

info.txt 数据库文件

Alex 100000Rain 80000Egon 50000Yuan 30000

hrms.py 运行文件

#!/use/bin/env python

# -*- coding:utf-8 -*-

import os

def select(): # 查询员工工资

    with open("info.txt", "r", encoding="utf-8") as f:

        fsb = f.readlines()

    user_choice = input("请输入你要查询的员工姓名:")

    for line in fsb:

        if user_choice.split()[0] in line.split()[0]:

            print(user_choice, "的工资是:",line.split()[1])

def update(): # 修改员工工资

    user_choice_1 = input("请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):").strip()

    with open("info.txt", "r", encoding="utf-8") as f,open("info.bak", "w", encoding="utf-8") as f1:

        for user_list in f:

            if user_list=="\n": # 判断文本中有空行的话直接跳过

                continue

            if user_choice_1.split()[0] in user_list.split()[0]: #判断输入的员工是否在文本中

                user_list = user_list.replace(user_list.split()[1], user_choice_1.split()[1]) # 修改员工工资

            f1.write(user_list)# info.txt文本内容已经重新写入info.bak

        f.close()# 关闭f

        f1.close()# 关闭f1

        os.remove("info.txt")# 删除info.txt文件

        os.rename("info.bak","info.txt")# 把info.bak文本重新命名为info.txt

    print("修改成功")

def add(): # 添加新员工

    user_add = input("请输入要增加的员工姓名和工资(例如:Eric 100000):")

    with open("info.txt", "a", encoding="utf-8") as f:

        # f.seek(0)

        f.write('\n' + user_add)

        print("添加成功")

def delete(): # 删除员工

    user_choice = input("请输入要删除的员工姓名:").strip()

    with open("info.txt", "r", encoding="utf-8") as f, open("info.bak", "w", encoding="utf-8") as f1:

        for user_list in f:

            if user_list =="\n": # 判断文本中有空行的话直接跳过

                continue

            if user_choice in user_list.split()[0]:  # 判断输入的员工是否在文本中

                continue # 直接跳过输入的用户,这样也相当于删除了

            f1.write(user_list) # 输入的用户直接跳过了,所以不会加载到文本中

        f.close() # 关闭f

        f1.close() # 关闭f1

        os.remove("info.txt") # 删除info.txt文件

        os.rename("info.bak", "info.txt") # 把info.bak文本重新命名为info.txt

    print("删除成功")

while True:

    user_chioce = '''

    1.查询员工工资

    2.修改员工工资

    3.增加新员工记录

    4.删除员工

    5.退出

    '''

    print(user_chioce)

    user_choice = input("请输入你的选择:")

    if user_choice.isdigit(): # 判断输入的是否数字类型

        if user_choice == '1':

            select() # 查询

        elif user_choice == '2':

            update() # 修改

        elif user_choice == '3':

            add() # 添加

        elif user_choice == '4':

            delete() # 删除

        elif user_choice == '5':

            exit() # 退出

        else:

            print("请输入正确的选项")

    else:

        print("请输入正确的选项")

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消