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

    Readme文件:

    | -----------------------------|
    | 程序名称:工资管理系统程序 |
    | -----------------------------|
    
    细节功能:
    1.根据用户名查询工资数额
    2.新增用户及工资
    3.根据用户名对工资数额进行修改
    4.根据用户名删除用户及工资条目记录
    5.上述所有操作均记录于文件中,每次操作记录结果均为最后一次结果进行保存
    --------------------------------------------------------------------------------
    程序运行:
    1. 运行前需要info.txt文件存在(即用户名、工资所存储的文件)
    2. new_info.txt是以临时文件存在(即用户操作过程中会产生临时转换数据)
    3. 直接运行Salary_system.py程序即可
    4. 如果想手工修改info.txt,请注意格式保持正确(用户名 + 空格 +工资)
    --------------------------------------------------------------------------------
    
    #######################################
    作者:王承祥
    联系方式1:13552310609
    联系方式2:dslmoon@163.com
    我的博客:https://www.cnblogs.com/wangcx
    #######################################

    info.txt文件:

    Tom 34
    Kathy 90
    George 100
    dd 22
    55 55
    00 100

    new_info.txt文件(默认为空,此处略):

    Salary_system(主程序):

    # -*-coding:utf-8-*-
    # _Author_:George
    
    #导入支持系统特性的模块
    import sys,os
    
    #用户工资信息文件
    filename = "info.txt"
    
    #过程操作临时文件
    new_filename = "new_info.txt"
    
    #用户名与工资字典
    info_dict = {}
    
    
    #初始化用户工资信息
    def info():
        with open(filename,"r") as f:
            for i in f:
                if not i.startswith("
    "):
                    i = i.strip()
                    info_dict[i.split(" ")[0]]=i.split(" ")[1]
    
    #查询函数
    def select():
        while True:
            info()
            user_info = input("33[35;1m查询33[0m请输入【姓名】:").strip()
            if user_info in info_dict.keys():
                print("33[34;1m%s33[0m的工资是:33[31;1m%s33[0m" %(user_info,info_dict[user_info]))
            if user_info == "b":
                break
            if user_info not in info_dict.keys():
                print("
    33[34;1m%s33[0m用户不存在请重新输入,或[按'33[31;1mb33[0m'返回]
    " %user_info)
    #新增函数
    def insert():
        while True:
            info()
            user_info = input("33[35;1m新增33[0m【姓名 工资】以空格隔开:").strip()
            user_list = user_info.split(" ")
            if user_list[0] == "" or user_list[0] == "
    " or len(user_list) is not 2:
                print("33[31;1m请正确输入信息...33[0m")
                continue
            if user_list[0] not in info_dict.keys():
                user_info = "
    " + user_info
                with open(filename,"a+") as f:
                    f.write(user_info)
                print("33[34;1m%s33[0m用户添加成功!" % user_list[0])
                break
            if user_info == "b":
                break
            if user_list[0] in info_dict.keys():
                print("
    33[34;1m%s33[0m用户已存在请重新输入,或[按'33[31;1mb33[0m'返回]
    " %user_list[0])
    # 修改函数
    def update():
        while True:
            info()
            user_info = input("33[35;1m修改33[0m请输入【姓名 工资】:").strip()
            user_list = user_info.split(' ')
            if user_list[0] in info_dict.keys():
                with open(filename, 'r') as f1, 
                        open(new_filename, 'w') as f2:
                    for i in f1:
                        if i.strip().split(" ")[0] == user_list[0] or i.startswith("
    "):
                            continue
                        f2.write(i)
                with open(new_filename,"a+") as f3:
                    f3.write("
    "+user_info.strip())
                    print("33[34;1m%s33[0m用户修改成功!" % user_list[0])
                os.remove(filename)
                os.rename(new_filename,filename)
            if user_info == "b":
                break
            if user_list[0] not in info_dict.keys():
                print("
    33[34;1m%s33[0m用户不存在请重新输入,或[按'33[31;1mb33[0m'返回]
    " %user_list[0])
    
    #删除函数
    def delete():
        while True:
            info()
            user_info = input("33[35;1m删除33[0m请输入【姓名】:")
            user_list = user_info.split(' ')
            if user_list[0] in info_dict.keys():
                with open(filename, 'r') as f1, 
                        open(new_filename, 'w') as f2:
                    for i in f1:
                        if i.strip().split(" ")[0] == user_list[0] or i.startswith("
    "):
                            continue
                        f2.write(i)
                        print("33[34;1m%s33[0m用户删除成功!" % user_list[0])
                os.remove(filename)
                os.rename(new_filename, filename)
            if user_info == "b":
                break
            if user_list[0] not in info_dict.keys():
                print("
    33[34;1m%s33[0m用户不存在请重新输入,或[按'33[31;1mb33[0m'返回]
    " % user_list[0])
    
    choose_msg = '''
    【1】: 查询
    【2】: 新增
    【3】: 修改 
    【4】: 删除
    【5】: 退出
    '''
    salary = {
        '1':select,
        '2':insert,
        '3':update,
        '4':delete,
        '5':sys.exit,
    }
    while True:
        print(choose_msg)
        choose = input("请输入操作选项:").strip()
        if choose not in salary.keys():
            continue
        salary[choose]()
  • 相关阅读:
    OC 中的强引用(strong referene)和弱引用( weak reference)
    OC 内存管理黄金法则
    理解NSSComparisionResult 类型
    Java 持有对象学习笔记
    Java相关配置
    Flash Builder
    WPS 导致 EXCEL 文件下载问题
    Cocos2dx 3.8-----裁剪层中控件的点击响应问题
    #cocos2dx游戏开发#UIImageView必须在加载了图片资源后再进行九宫格设置,否则无效。
    在普通class里使用onActivityResult获取从一个activity返回的数据 (待解)
  • 原文地址:https://www.cnblogs.com/wangcx/p/8093676.html
Copyright © 2011-2022 走看看