博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实战演练(四)工资管理系统
阅读量:6354 次
发布时间:2019-06-22

本文共 5145 字,大约阅读时间需要 17 分钟。

一 实现功能:

1、从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。
2、能增查改员工工资
3、增、改员工工资用空格分隔
4、实现退出功能

 

二 流程图

 

三 代码

#-*- Coding:utf-8 -*-# Author: kking'''实现功能1、从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。2、能增查改员工工资3、增、改员工工资用空格分隔4、实现退出功能'''import sys,os,reoperation_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)                breakdef 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()

 

转载于:https://www.cnblogs.com/kking-lh/p/10018861.html

你可能感兴趣的文章
Oracle复制表数据的两种用法
查看>>
swift 3.0 新特征
查看>>
使用POI创建word表格合并单元格兼容wps
查看>>
Vue.js 2.x笔记:组件(5)
查看>>
CentOS7 安装Nginx+MySQL
查看>>
egret中报错 “xxx 文件 is not defined”
查看>>
Spring Cloud-微服务架构集大成者
查看>>
CI调试
查看>>
Canvas中点到点的路径运动
查看>>
python CheatSheet
查看>>
asp .net 页面跳转
查看>>
java程序中路径问题
查看>>
Linux下的压缩命令
查看>>
Angular: Can't bind to 'ngModel' since it isn't a known property of 'input'问题解决
查看>>
UITableview中怎么找到每个cell
查看>>
Python手势识别
查看>>
表达式求值
查看>>
Ubuntu 安装Qt开发环境
查看>>
《赢在测试2-中国软件测试专家访谈录》读书笔记
查看>>
Excel VBA - Range对象
查看>>