工资管理系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工资管理系统相关的知识,希望对你有一定的参考价值。

作业需求:
工资管理系统
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
再见!

流程图:

技术分享图片

代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Lou

# 导入模块
import sys
import os

# 员工信息存储文件
filename = info.txt

# 过滤空行后的员工信息文件
new_filename = new_info.txt

# 员工姓名列表
info_dict = {}
# 员工工资列表
user_dict = {}


# 提取用户信息
def info():
    with open(filename, r,encoding=utf-8) as f:
        for i in f:
            if not i.startswith(\\n):
                i = i.strip() # 去除前后空格
                i = i.split( ) #根据空格切片
                info_dict[i[0]] = i[1] # 把员工和工资信息加入字典


# 删除和移动文件
def file():
    os.remove(filename) # 把原文件删除
    os.rename(new_filename, filename) # 把新文件重命名为原文件名


# 查询
def select():
    while True:
        info()
        user_info = input(请输入员工姓名:).strip()
        if user_info in info_dict.keys():
            print(%s的工资是:%s % (user_info, info_dict[user_info]))
            break
        else:
            print(用户不存在!!!)


# 新增
def insert():
    while True:
        info()
        user_info = input(请输入要增加的员工姓名和工资:).strip()
        user_list = user_info.split( ) # 把新员工信息转为列表
        # 把新员工的姓名和工资加入字典
        user_dict[user_info.split( )[0]] = user_info.split( )[1]
        # 当新员工在当前员工信息文件中不存在
        if user_list[0] not in info_dict.keys():
            # 写入新员工信息到文件中
            with open(filename, a+) as f:
                f.write(\\n+ user_info)
            print(%s 添加成功! % user_list[0])
            break
        else:
            # 当新员工在当前员工信息文件中存在
            print(用户已存在!!!)
    info_dict.clear()


# 修改
def update():
    while True:
        info()
        user_info = input(请输入要修改的员工姓名和工资:).strip()
        # 把新员工信息转为列表
        user_list = user_info.split( )
        # 当前需要修改的员工信息
        user_now = %s %s % (user_list[0], info_dict[user_list[0]])
        # 当新员工在当前员工信息文件中存在
        if user_list[0] in info_dict.keys() :
            with open(filename, r,encoding=utf-8) as fr, open(new_filename, w,encoding=utf-8) as fw:
                for i in fr:
                    if i.strip() == user_now:
                        fw.write(user_info)
                    else:
                        fw.write(i)
            file()
            print(%s 修改成功! % user_list[0])
            break
        else:
            # 当新员工在当前员工信息文件中不存在
            print(用户不存在!!!)
    info_dict.clear()


# 删除
def delete():
    while True:
        info()
        user_info = input(请输入要删除的员工姓名:).strip()
        # 当前需要修改的员工信息
        user_now = %s %s % (user_info, info_dict[user_info])
        # 当删除的员工在当前员工信息文件中存在
        if user_info in info_dict.keys():
            with open(filename, r,encoding=utf-8) as fr, open(new_filename, w,encoding=utf-8) as fw:
                for i in fr:
                    if i.strip() == user_now:
                        continue
                    else :
                        fw.write(i)

            file()
            print(%s 删除成功! % user_info)
            break
        else:
            # 当删除的员工在当前员工信息文件中不存在
            print(用户不存在!!!)
    info_dict.clear()

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

salary = {
    1: select,
    2: insert,
    3: update,
    4: delete,
    5: sys.exit,
}

while True:
    print(choose_msg)
    # 选择操作
    choose = input(\\033[31;1m请输入操作选项:\\033[0m).strip()
    if choose not in salary.keys():
        continue
    salary[choose]()

 





































以上是关于工资管理系统的主要内容,如果未能解决你的问题,请参考以下文章

人事工资信息管理系统(核心代码实现)

C#桌面办公应用-工资管理系统系列五

用c语言写一个职工工资管理程序

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

Eclipse+Java+Swing+Mysql实现员工工资管理系统

Eclipse+Java+Swing+Mysql实现员工工资管理系统