コード例 #1
0
def main():
    allUserInfo = {}

    try:
        f = open("peoplelist.txt", "rb")
        if len(f.read()) > 0:
            f.seek(0, 0)
            allUserInfo = pickle.load(f)
    except Exception as msg:
        print(msg)
        f = open("peoplelist.txt", "wb")
        print(msg)
    finally:
        f.close()

    adminview = View()
    adminview.printSysUI()

    atm = Atm(allUserInfo)

    #选择角色
    print("请选择角色:")
    print("1:管理员")
    print("2:普通用户")
    roleNum = input()  #角色序号
    if roleNum == '1':
        if not adminview.adminlogin():
            print("管理员登录失败")
            return
        time.sleep(1)
        print("管理员登录成功!请稍候...")

    elif roleNum == '2':
        #验证卡号是否存在
        while True:
            inputCard = input("请输入您的卡号:")
            isExist = atm.isExistCard(inputCard)
            if isExist:
                break

        #验证密码是否正确
        if not atm.isExistPwd(inputCard):
            #文件中写入所有用户信息
            f = open("peoplelist.txt", "wb")
            pickle.dump(atm.allUserInfo, f)
            f.close()
            return

    while True:
        adminview.printUI(roleNum)
        inputNum = input("请输入操作选项(数字):")

        if inputNum == '1' and roleNum == '1':
            print(atm.allUserInfo)
            atm.createUser()
            print(atm.allUserInfo)

        elif inputNum == '2' and roleNum == '2':
            #取款操作
            atm.nomony(inputCard)
        elif inputNum == '3' and roleNum == '2':
            atm.cunqian(inputCard)
        elif inputNum == '4' and roleNum == '2':
            atm.transMoney(inputCard)
        elif inputNum == '5' and roleNum == '2':
            atm.allpeople(inputCard)
        elif inputNum == '6' and roleNum == '2':
            atm.newpassword(inputCard)
        elif inputNum == '7' and roleNum == '1':
            if atm.jiechusuooding():
                print("解卡成功")
        elif inputNum == '0':
            exit()
        else:
            print("您操作有误,请重新操作!")

        #文件中写入所有用户信息
        f = open("peoplelist.txt", "wb")
        pickle.dump(atm.allUserInfo, f)
        f.close()