• 第三周 工资管理系统


    实现如下功能:

    #!/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('请输入整数数据类型')
     
  • 相关阅读:
    SQL Server中的sysobjects
    SQL:事务(1)
    继续探究HTML与CSS:图像映射
    SQL:事务(2)
    找工作?该复习了!(转)
    继续探究HTML与CSS:!important 和 @import 规则
    JAVA数据结构:二叉树
    SQL:Like 通配符及特殊用法Escape
    JavaScript高级程序设计:在HTML中使用JavaScript
    一个有趣的时钟
  • 原文地址:https://www.cnblogs.com/hanfe1/p/10794945.html
Copyright © 2020-2023  润新知