第三周 工资管理系统

实现如下功能:

#!/usr/bin/env python3
# Author:zhangyang
# --*-- coding: utf-8 --*--
import os

def file_test():
    with open("The salary management", 'r+', encoding="utf-8") as f:
        file=list(f) #str-->list
        return file#['Alex 100000
', 'Rain 80000
', 'Egon 50000
', 'Yuan 30000
']

# file_test()

def server(): #启动服务窗口
    for i in range(1):
        print("1.查询员工工资
2.修改员工工资
3.增加新员工记录
4.退出")
        return i
#进入主程序
while 1:
    print('-----Welcome to the payroll management system-----')
    server()
    number=input('请选择你的服务:')
    if number.isdigit():
        number=int(number)
        file=file_test() #文件内容
        if number>0 and number<5:
            #查询功能
            if number==1:
                print('---欢迎进入查询界面---')
                name=input('请输入要查询的员工姓名:').strip()
                for i in file:
                    file=i.strip().split() #file=['Alex','100000']
                    if name in file: #如果输入的名字在文件中有
                        break
                for i in file:
                    if name in file:
                        salary = file[1]
                        print('%s的工资是:%s'%(name,salary))
                        break
                else:
                    print('没有此用户!')
            #修改功能
            elif number == 2:
                print('---欢迎进入修改界面---')
                name_old = input('请输入你要修改的员工姓名:')
                for i in file: #遍历这个文件 #['Alex 100000']
                    file=i.strip().split()  #字符串转为list-->file=['Alex','100000']
                    if name_old in file: #如果在输入的姓名在文件中
                        print(file)
                        salary_old=file[1] #记录这个员工未修改的工资
                        print('目前%s的工资是:%s'%(name_old,salary_old))
                        name_alter,salary_alter=input('请输入你要修改员工的姓名和工资,用空格分割:').strip().split() #接受两个变量

                        #打开文件读取
                        with open("The salary management", 'r', encoding="utf-8")as f ,
                                open("The salary management.bak", 'w', encoding="utf-8")as f_a:
                            lines=f.readlines()

                            for line in lines:  #line=['Alex 10000']
                                if name_old and salary_old in line: #['Alex', '100000']
                                    #print(line)
                                    line=line.replace(line,(name_alter+' '+salary_alter)+'
')
                                    #print(line)
                                f_a.write(line)

                        os.remove('The salary management')
                        os.rename('The salary management.bak','The salary management')
                        print('修改成功!')
                        break

                else:print('无此用户,请重试...')
            #增加功能
            elif number==3:
                print('---欢迎进入增加界面---')
                try: #判断参数数量
                    name_new,salary_new=input('请输入你要新增员工的姓名和工资金额(格式:员工 金额):').strip().split()
                except ValueError: #如果错误的话,执行这一句
                    print('输入的参数不够,请重试!!')

                else: #如果正确执行下面语句
                    if name_new.isalpha() and salary_new.isdigit():
                        for i in file:
                            file=i.strip().split()
                            if name_new not in file:
                                with open("The salary management", 'a+', encoding="utf-8") as f_b:
                                    f_b.write("%s %s" % (name_new,salary_new))
                                print('新增成功!')
                                break
                    else:print('新增内容数据类型不对,请重新输入!')
            #退出功能
            elif number == 4:
                print('33[32;0m谢谢使用,再见!33[;0m')
                break
        else:print('请输入正确的序列号')
    else:print('请输入整数数据类型')
 
原文地址:https://www.cnblogs.com/hanfe1/p/10794945.html