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

Posted 空s蝉灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老男孩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

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

老男孩Day2作业:购物车程序

老男孩DAY1作业二

老男孩Day8作业:FTP

老男孩python第八次作业

老男孩作业day1—用户登陆

老男孩Python3.5培训第一周作业