python实现 --工资管理系统

# -*- coding: utf-8 -*-
__author__ = ‘hjianli‘
# import re
import os

info_message = """Alex 100000
Rain 80000
Egon 50000
Yuan 30000
"""
#序列字典
xulie_dict = {}

#工资字典
gongzi_dict = {}

#本地创建的文件名
file_name = "info.txt"

#创建文件的路径
Path = os.getcwd()
os.chdir(Path)

#创建文件函数
def flush_info_txt(file_name, info=info_message):
    with open(file_name, "wt", encoding="utf8") as f:
        f.write(info + "\n")

#追加新用户信息使用函数
def add_info_txt(file_name, info=None):
    with open(file_name, "a+", encoding="utf8") as f:
        f.writelines(info)

#读取用户和工资信息函数
def read_file_txt(file_name):
    with open(file_name) as f:
        f = f.read()
    return f

#将读取出来的姓名和工资形成字典对应
def info_user():
    with open(file_name) as f:
        file = f.read().strip().split()
        keys = [x for x in range(len(file)) if x % 2 == 0]
        value = [x for x in range(len(file)) if x % 2 == 1]
        for x, y in zip(keys,value):
            gongzi_dict[file[x]] = file[y]
    return gongzi_dict

#检测初始文件是否存在。不存在就创建,存在就忽略
def check_file():
    if not os.path.exists(file_name):
        flush_info_txt(file_name)
    else:
        pass
check_file()

#检测输入是否合理
def check_error(shuru):
    if len(shuru) == 0:
        print("您输入的为空,请检查输入!")
    elif str(shuru).isdigit() == False :
        print("输入了错误的字符,请输入数字")
    else:
        return True

#检测输入的用户名是否在字典的keys中
def check_user(shuru):
    if shuru not in gongzi_dict.keys():
        pass
    elif len(shuru) == 0 or int(len(shuru)) > 6:
        print("用户姓名输入错误!不符合姓名的格式.超过6个字段.")
    else:
        print("您输入的用户出现冲突,用户姓名必须唯一,请核对该用户的信息")

choice_exit = True

def check_choice(choice):
    if (len(choice) != 0) and (int(choice) in list_num):
        for i, q in enumerate(list_choice):
            xulie_dict[i+1] = q

        for key, value in xulie_dict.items():
            if int(choice) == 4:
                print("......程序正在退出..........")
                exit(2)

            elif int(choice) == key:
                    input_user_name = input("您选择的是:({}),请输入想要{}的员工姓名:".format(key, value[0:2]))
                    dict_name = info_user()
                    if input_user_name in dict_name.keys():
                        if key == 1:
                            print("{}的工资是:{}\n******************************".format(input_user_name,dict_name[input_user_name]))
                            break

                        elif key == 2:
                            dict_name = info_user()
                            old_gongzi = dict_name[input_user_name]
                            # print(old_gongzi)
                            update_gongzi = input("请输入修改后的工资金额:")
                            check_error(update_gongzi)
                            dict_name[input_user_name] = update_gongzi
                            update_gongzi = dict_name[input_user_name]
                            str_info = read_file_txt(file_name)
                            str_info = str_info.replace(old_gongzi, update_gongzi)
                            # print(str_info)
                            flush_info_txt(file_name, info=str_info)
                            print("修改成功!")

                        else:
                            pass

                    elif key ==3:
                        new_gongzi = input("请输入他的工资: ")
                        check_user(input_user_name)
                        new_user_info = str(input_user_name) + " " + new_gongzi
                        add_info_txt(file_name, new_user_info)
                        print("新用户增加成功")
                    else:
                        print("您输入的用户名不存在,请检查后重新输入!")
                        break

    else:
        print("您输入了错误的数字,请检查重新输入是否在{}范围内".format(list_num))

while choice_exit:
    list_choice = ["查询员工工资", "修改员工工资", "增加新员工记录", "退出"]
    for i, q in enumerate(list_choice):
        print(str(i+1) + "." + str(q))

    list_num = [x+1 for x in range(len(list_choice))]

    input_number = input(">>>>请输入您要进行的操作: ")
    if str(input_number).isdigit():
        check_choice(input_number)
    else:
        check_error(input_number)
        continue

时间: 2024-10-19 00:05:34

python实现 --工资管理系统的相关文章

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

需求如下: 工资管理系统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 # @

工资管理系统

作业需求: 工资管理系统 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. 修改员

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:主要是在处理报表方面的共

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