老男孩Day3作业:工资管理系统

作业需求:

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

2、能增查改员工工资

3、增、改员工工资用空格分隔

4、实现退出功能

1)编写思路

编写思路参考下面GitHub链接中的流程图

https://github.com/KongChan1988/51CTO-Treasure/blob/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day03/HomeWork/OB%2423%259IE%24XR8D59IN0%7B%24SJ.jpg

2)具体实现

#-*- Coding:utf-8 -*-
# Author: D.Gray
‘‘‘
作业需求
1、从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。
2、能增查改员工工资
3、增、改员工工资用空格分隔
4、实现退出功能
‘‘‘
import sys,os,re

operation_lists = ‘‘‘1.查询工资
2.修改工资
3.增加新员工记录
4.删除员工信息
5.退出‘‘‘
user_dict = {}                  #定义一个存储员工姓名及工资的空字典
def user_information():
    ‘‘‘定义一个员工信息函数‘‘‘
    with open(‘info‘,‘r‘) as f:
        for i in f:
            i = i.strip()           #剔除字符串中的前后空格和换行
            user_dict[i.split()[0]] = i.split()[1]  #将员工姓名及工资存储到user_dict字典中,i.split()[0]=员工姓名 作为键
                                                    #i.split()[1]=员工工资  作为值
            print(‘当前员工姓名:‘,i.split()[0])

def user_operations():
    ‘‘‘定义一个用户操作的函数‘‘‘
    while True:
        print(operation_lists)
        user_operation = input(‘请选择操作编号>>>:‘)
        if user_operation.isdigit():
            user_operation = int(user_operation)
            if user_operation > 5:
                print(‘\033[31;1m请输入有效操作编号\033[0m‘)
            if user_operation == 1:
                user_enquiries()
            if user_operation == 2:
                salary_change()
            if user_operation == 3:
                add_users()
            if user_operation == 4:
                del_users()
            if user_operation == 5:
                sys.exit(‘程序退出‘)
        else:
            print(‘\033[31;1m请输入有效操作编号\033[0m‘)

def user_enquiries():
    ‘‘‘定义一个用户查询的函数‘‘‘
    while True:
        user_information()
        enquirie_name = input(‘请输入要查询的员工姓名(例如:Alex):‘)
        if enquirie_name.capitalize() in user_dict:     #将输入的员工姓名首字母变大写,方便用户输入
            print(‘\033[32;1m%s\033[0m 工资为: \033[32;1m%s\033[0m元‘
                  %(enquirie_name.capitalize(),user_dict[enquirie_name.capitalize()]))
            break
        else:
            print(‘\033[31;1m请输入有效用户名\033[0m‘)

def salary_change():
    ‘‘‘定义一个修改工资函数‘‘‘
    while True:
        user_information()
        change_salary = input(‘请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):‘)
        salary_lists = change_salary.split()   #将用户输入的姓名和工资以列表形式打印
        if len(salary_lists) < 2:               #判断输入内容格式是否正确 姓名 工资
            print(‘\033[31;1m请输入正确格式内容\033[0m‘)
        elif not salary_lists[1].isdigit():     #判断输入的工资是否是数字
            print(‘\033[31;1m请输入有效工资金额\033[0m‘)
        else:
            _name = salary_lists[0].capitalize()        #定义_name变量存储 用户输入的姓名
            _salary = salary_lists[1]                   #定义_salary变量存储 用户输入的工资
            if _name in user_dict:
                with open(‘info‘,‘r‘) as f:
                    lines = f.readlines()

                with open(‘info‘,‘w‘) as f_w:
                    for line in lines:
                        if _name in line:
                            line = line.replace(user_dict[_name],_salary)   #将源文件中的工资金额替换为修改后的工资金额
                        f_w.write(line)

                print(‘已将 \033[32;1m%s\033[0m 的工资修改为 \033[32;1m%s\033[0m元‘%(_name,_salary))
                break
            else:
                print(‘\033[31;1m该用户不存在\033[0m‘)

def add_users():
    ‘‘‘定义一个增加员工函数‘‘‘
    while True:
        user_information()
        add_user = input(‘请输入要增加员工姓名和工资,用空格分隔(例如:Eric 100000):‘)
        add_lists = add_user.split()
        if len(add_lists) < 2:               #判断输入内容格式是否正确 姓名 工资
            print(‘\033[31;1m请输入正确格式内容\033[0m‘)
        elif not add_lists[1].isdigit():     #判断输入的工资是否是数字
            print(‘\033[31;1m请输入有效工资金额\033[0m‘)
        else:
            _name = add_lists[0].capitalize()  # 定义_name变量存储 用户输入的姓名
            _salary = add_lists[1]  # 定义_salary变量存储 用户输入的工资
            if _name in user_dict:  #判断输入的姓名是否已存在
                print(‘\033[31;1m该用户已存在\033[0m‘)
            elif not _name.isalpha():       #判断输入的姓名是否是纯英文
                print(‘\033[31;1m请输入正确姓名\033[0m‘)
            else:
                with open(‘info‘,‘a‘) as f:
                    f.write(_name+‘ ‘)
                    f.write(_salary+‘\n‘)
                print(‘已将 \033[32;1m%s\033[0m 的信息添加成功‘ % _name)
                break

def del_users():
    ‘‘‘定义一个删除员工函数‘‘‘
    while True:
        user_information()
        del_user = input(‘请输入要删除的员工姓名(例如:Alex):‘)
        del_name = del_user.capitalize()
        if del_name in user_dict:     #将输入的员工姓名首字母变大写,方便用户输入
            confirm_del = input(‘是否确认删除\033[32;1m%s\033[0m员工信息>>>任意键确认删除、按N不删除:‘
                                %del_user.capitalize())
            if confirm_del.capitalize() != ‘N‘:         #判断用户选择确认删除
                list = []                               #定义一个空列表存储不需要删除员工信息
                with open(‘info‘,‘r‘) as f:
                    lines = f.readlines()
                    for line in lines:
                        if not re.search(del_name,line):   #判断哪些员工不需要删除   del_name为确认删除的员工
                            list.append(line)

                with open(‘info‘,‘w‘) as f:
                    f.writelines(list)                      #将不需要删除员工的信息列表重新写入 info文本中
                print(‘\033[32;1m%s\033[0m的员工信息已删除‘%del_user.capitalize())
                break
            else:
                print(‘\033[31;1m已取消删除\033[0m‘)
        else:
            print(‘\033[31;1m该用户不存在\033[0m‘)

user_operations()

3)Github笔记

第三周的笔记的地址是:

https://github.com/KongChan1988/51CTO-Treasure/tree/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day03/Practice%20Notes

4)Readme.md文档

https://github.com/KongChan1988/51CTO-Treasure/blob/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day03/HomeWork/readme_%E5%B7%A5%E8%B5%84%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F.md

时间: 2024-10-18 05:33:36

老男孩Day3作业:工资管理系统的相关文章

工资管理系统

作业需求: 工资管理系统 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作为数据库开发出来的企业工资管理系统.使用的技术有:数据库的访问,菜单控制.本文分析了企业工资管理系统的应用现状,阐述了本工资管理系统

LMT NEW PBS作业排队管理系统分布式并行计算

LMT NEW PBS作业排队管理系统分布式并行计算 LMT NEW PBS作业排队管理系统,利用集群系统来构建分布式并行环境,将一个海量的计算请求看作一个作业,提交给集群系统,管理节点将这个作业分解为多个子任务,再根据收集的节点负载信息将这些任务分别映射到各个节点上进行计算. 一个作业在集群系统中的完整调度过程分为6个部分,分别为:提交作业,调度作业,分发作业,运行作业,返回输出和返回结果到提交节点. 基于集群系统的分布式并行计算结构如下图所示: (分布式并行计算结构图) 分布式并行计算结构包

c++大作业--学籍管理系统--

1.题目描述 学籍管理系统: 根据信息管理系统的业务流程.要求以及所要实现的目标,完成以下功能: (1)建立学生档案的管理和维护.实现计算机自动化管理体制. (2)建立学生成绩管理机制,在计算机的支持下快速的完成学生成绩的查询和修改. (3)建立课程设置管理,在计算机的支持下实现课程的添加.修改. (4)建立班级设置管理,在计算机的支持下实现班级的添加.删除和修改. (5)实现系统的权限设置管理,保证系统安全性.(登录密码输错3次不允许登录) (6)使用姓名学号查找学生信息. (7)将学生信息保

Python学习day3作业

Python学习day3作业 days3作业 作业需求     HAproxy配置文件操作 根据用户输入,输出对应的backend下的server信息 可添加backend 和sever信息 可修改backend 和sever信息 可删除backend 和sever信息 操作配置文件前进行备份 添加server信息时,如果ip已经存在则修改;如果backend不存在则创建:若信息与已有信息重复则不操作 [x] 博客 [x] 查询backend下的server信息 [x] 添加backend和se

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

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

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

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