文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python第三周作业--工资管理系统

2023-01-31 01:04

关注
工资管理系统
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 100000
Rain 80000
Egon 50000
Yuan 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("请输入正确的选项")
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯