1. 程式人生 > 其它 >acwing 二分圖的最大匹配(匈牙利演算法)

acwing 二分圖的最大匹配(匈牙利演算法)

user_dict = {}


def userid(user_id, remark):
    if user_id in user_dict:
        input_code = input('請輸入密碼:').strip()
        if input_code == user_dict.get(user_id).get('密碼'):
            print('密碼正確')
            return user_id
        else:
            print('密碼錯誤')
            # input_id = input('請輸入員工編號').strip()
            # return userid(input_id, remark)
    else:
        print('請輸入正確編號')
        # input_id = input('請輸入員工編號').strip()
        # return userid(input_id, remark)


def check_isdigit(a, remark):
    if a.isdigit():
        return int(a)
    else:
        input.a = input('請輸入%s:' % (remark)).strip()
        return check_isdigit(input.a, remark)


def add_user():
    user_id = input('請輸入員工編號:')
    if user_id not in user_dict:
        name = input('請輸入名字:').strip()
        code = input('請輸入密碼:').strip()
        age = input('請輸入年齡:').strip()
        salary = input('請輸入薪水:').strip()
        user_dict1 = {
            '姓名': name,
            '密碼': code,
            '年齡': age,
            '薪水': salary,
        }
        user_dict[user_id] = user_dict1
        print(user_dict)
    else:
        print('員工編號已存在')


def updata_user():
    user_id = userid(input('請輸入員工編號:').strip(), '員工編號')

    print('''
                    1.修改年齡
                    2.修改薪水
                    ''')
    choice = input('請輸入功能編號:').strip()
    if choice == '1':
        new_age = check_isdigit(input('請輸入修改年齡:').strip(), '員工年齡')
        user_dict.get(user_id)['年齡'] = new_age
        print(f'編號{user_id}修改為', user_dict[user_id])

    elif choice == '2':
        new_salary = check_isdigit(input('請輸入新的薪水:').strip(), '員工薪水')
        user_dict.get(user_id)['薪水'] = new_salary
        print(f'編號{user_id}修改為', user_dict[user_id])
    else:
        print('請輸入正確編號')


def del_user():
    user_id = userid(input('請輸入員工編號:').strip(), '員工編號')
    res = user_dict.pop(user_id)
    print(f'編號{user_id}員工已刪除', res)


def find_user():
    user_id = userid(input('請輸入員工編號:').strip(), '員工編號')
    print(f"""
                ------------emp info------------
                        員工編號:{user_id}
                        員工姓名:{user_dict.get(user_id).get('姓名')}
                        員工年齡:{user_dict.get(user_id).get('年齡')}
                        員工薪資:{user_dict.get(user_id).get('薪水')}
                ---------------end--------------
                """)


def find_all_user():
    for k in user_dict:
        print(f"""
            ------------emp info------------
                    員工編號:{k}
                    員工姓名:{user_dict.get(k).get('姓名')}
                    員工年齡:{user_dict.get(k).get('年齡')}
                    員工薪資:{user_dict.get(k).get('薪水')}
            ---------------end--------------
            """)


func_dict = {
    '1': add_user,
    '2': updata_user,
    '3': del_user,
    '4': find_user,
    '5': find_all_user,

}

while True:
    print('''
    1.新增員工資訊
    2.修改員工資訊
    3.刪除員工資訊
    4.檢視單個員工資訊
    5.檢視所有員工資訊
    6.退出
    ''')
    choice = input('請輸入功能指令:').strip()
    if choice in func_dict:
        func_dict.get(choice)()
    else:
        if choice == '6':
            break
        else:
            print('請輸入正確功能指令')