zoukankan      html  css  js  c++  java
  • 工资管理系统


     

    作业需求:

    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('33[31;1m请输入有效操作编号33[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('33[31;1m请输入有效操作编号33[0m')
    def user_enquiries():
    '''定义一个用户查询的函数'''
    while True:
    user_information()
    enquirie_name = input('请输入要查询的员工姓名(例如:Alex):')
    if enquirie_name.capitalize() in user_dict: #将输入的员工姓名首字母变大写,方便用户输入
    print('33[32;1m%s33[0m 工资为: 33[32;1m%s33[0m元'
    %(enquirie_name.capitalize(),user_dict[enquirie_name.capitalize()]))
    break
    else:
    print('33[31;1m请输入有效用户名33[0m')
    def salary_change():
    '''定义一个修改工资函数'''
    while True:
    user_information()
    change_salary = input('请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):')
    salary_lists = change_salary.split() #将用户输入的姓名和工资以列表形式打印
    if len(salary_lists) < 2: #判断输入内容格式是否正确 姓名 工资
    print('33[31;1m请输入正确格式内容33[0m')
    elif not salary_lists[1].isdigit(): #判断输入的工资是否是数字
    print('33[31;1m请输入有效工资金额33[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('已将 33[32;1m%s33[0m 的工资修改为 33[32;1m%s33[0m元'%(_name,_salary))
    break
    else:
    print('33[31;1m该用户不存在33[0m')
    def add_users():
    '''定义一个增加员工函数'''
    while True:
    user_information()
    add_user = input('请输入要增加员工姓名和工资,用空格分隔(例如:Eric 100000):')
    add_lists = add_user.split()
    if len(add_lists) < 2: #判断输入内容格式是否正确 姓名 工资
    print('33[31;1m请输入正确格式内容33[0m')
    elif not add_lists[1].isdigit(): #判断输入的工资是否是数字
    print('33[31;1m请输入有效工资金额33[0m')
    else:
    _name = add_lists[0].capitalize() # 定义_name变量存储 用户输入的姓名
    _salary = add_lists[1] # 定义_salary变量存储 用户输入的工资
    if _name in user_dict: #判断输入的姓名是否已存在
    print('33[31;1m该用户已存在33[0m')
    elif not _name.isalpha(): #判断输入的姓名是否是纯英文
    print('33[31;1m请输入正确姓名33[0m')
    else:
    with open('info','a') as f:
    f.write(_name+' ')
    f.write(_salary+'
    ')
    print('已将 33[32;1m%s33[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('是否确认删除33[32;1m%s33[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('33[32;1m%s33[0m的员工信息已删除'%del_user.capitalize())
    break
    else:
    print('33[31;1m已取消删除33[0m')
    else:
    print('33[31;1m该用户不存在33[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

     
     
     
  • 相关阅读:
    python selenium 弹框元素获取
    python小知识点
    ubuntu下配置java环境变量
    用Filezilla往ubuntu虚拟机上传文件
    jmeter,监控插件
    fiddler接口测试
    ZeroClipboard 复制到剪贴板 中文文档
    常用正则表达式
    中英文字体对照 ueditor添加字体
    字符串操作
  • 原文地址:https://www.cnblogs.com/gaodi2345/p/11412786.html
Copyright © 2011-2022 走看看