工资管理系统

作业需求:
工资管理系统
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]()
时间: 2024-08-05 10:01:12

工资管理系统的相关文章

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

今天介绍介绍一下我自主开发的工资管理系统中的"汇总查询打印"模块,改小模块具有以下的功能:可以汇总统计员工的工资发放明细信息,可以查询指定的某个部门下的某些员工的工资发放明细信息,并打印成报表!开发的流程为:建立一个用于汇总的数据库表.制作报表.汇总.查询打印!我自己觉得这个功能是相当有趣的,而且在实际的企业中也具有一定的适用性,可以根据企业的需要自主定制相应的报表!若有博友想获取该系统的源码,或者想作为自己的毕业设计的系统实现,可以加我QQ:1974544863进行交流! 下面以&q

职工工资管理系统 --C语言

#include<stdio.h> #include<string.h> #include<stdlib.h> #define NUM 1000 void enter(); void search_num(); void dele_num(); void modi_num(); void browse(); void count(); void load(); void add(); void menu(); int n; //员工的总数 struct emploee

企业员工工资管理系统

企业工资管理是人力资源管理的一个核心环节,在市场经济和全球一体化的大背景下,随着人力资源管理在战略层面上发挥着越来越重要的作用,传统的薪酬制度已于现代化的要求不匹配,并越来越限制着企业的发展.本系统以员工的考勤信息作为基础,因为本系统是使用员工考勤信息来计算员工的工资.系统结合实际的人事.财务制度,通过实际的需求分析,采用功能强大的VS2008作为开发工具.SQL作为数据库开发出来的企业工资管理系统.使用的技术有:数据库的访问,菜单控制.本文分析了企业工资管理系统的应用现状,阐述了本工资管理系统

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

接前文工资管理系统系列六,本文将介绍C# winform应用程序中的查询模块功能.其中,就包括了综合.模糊查询以及分页查询:值得说明的是,综合查询,其实就是多个条件组合起来的组合查询啦,只不过我换了个不严谨的称呼罢了!组合多个条件并采用模糊查询的方法实现查询功能:而对于分页查询,我想,参与过企业的项目或者是一些实用的项目的博友而言,都不会陌生,就像我一样,我是搞java开发的,公司用的数据库是mysql,所以对于项目中前端页面使用的分页查询我是再熟悉不过了,这个等改天有空我也写篇博文介绍介绍我们

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

接前文系列四,本文将讲解实现工资管理系统的代码的层次结构.主要采用的是MVCS模式的代码层次结构,视图层(V):是各种winform窗体:控制层(C):主要是winform窗体中各种控件的各个逻辑处理事件:而模型层(M)则是各个model实体以及数据库访问层的代码:最后是服务层(S):是从模型层(M)中获取数据库访问操作的结果并为逻辑控制处理层(C)提供服务的层次.除此之外,还有另外的几个层次:工具类层util:主要是本系统共用的一些工具类的操作:报表打印层report:主要是在处理报表方面的共

简单的工资管理系统小程序,只是练手

需求如下: 工资管理系统aaa 100000bbb 80000ccc 50000ddd 30000-----以上是info.txt文件-----实现效果:从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件.效果演示:1. 查询员工工资2. 修改员工工资3. 增加新员工记录4. 退出 1 #!/usr/bin/env python 2 #-*- coding:utf-8 -*- 3 # @Time : 2017/9/21 15:19 4 # @

走进C++程序世界---------雇员工资管理系统

前面对C++ 面向对象的基本了解和认识,下面来运用前面的基础知识,来实现一个简单的雇员工资管理系统,雇员分为2中,普通员工和管理者,两者工资和工作年限挂钩.具体参见下图: 具体实现参见下面的代码: /*File : salarySystem.h *Auth : sjin *Date : 2014-04-27 *Mail : [email protected] */ #ifndef __SALARYSYSTEM_H #define __SALARYSYSTEM_H #include <string

工资管理系统的需求概述的资料收集与分析:

小马峰:20160401082,飞飞飞:20160401092 需求概述: 2.1 系统总体需求概况 本系统开发的主要目标就是要使企业单位工资管理实现计算机管理,使管理员能够有序的管理每一-位职工的各项工资条款的发放,以及企业工资的统计,使企业运用现代化技术创造更多更高的经济效益,在此基础上开发一个功能实用.界面美观.操作方便.实用性强的工资管理软件.实现本单位财务部门对工资发放的集中管理.可供财务人员对本单位的人员工资进行增加.删除.修改.查询.导入.导出文件.输出报表,并对系统的可登录人员进

工资管理系统的总体设计的资料收集与描述

小马峰:20160401082,飞飞飞:20160401092 总体设计: 2.1界面需求: 系统开发基于C/S的开发模式,界面直观.简洁,人机交互性强.基于表单和弹出式窗口的数据录入方式,菜单电击的方式操作.用户使用时,只要是按照格式和要求填入信息,系统在后台响应用户操作过程.让用户在最短时间里,不需要经过专门培训,就可以轻松上手使用. 本薪酬管理系统应当具有的页面有:用户登录界面.用户信息查询.配置用户薪酬. 2.2 基本设计概念和处理流程: 软件结构图设计的出发点是需求分析阶段得到的细化后