Exemple #1
0
cl2 = Cliente('Jose',321,12/10/1997)
ban.adicionar_cliente(cl2)

c1 = Conta(123,cl1,100,1000)
ban.adcionar_conta(c1)
c2 = Conta(432,cl2,850,1000)
ban.adcionar_conta(c2)

print(ban.busca_conta(432))

print("Depositos:")
true_false(c1.deposita(10))
true_false(c1.deposita(900))

print("\n\nSaques:")
true_false(c1.saca(20))
true_false(c1.saca(100))

print("\n\nTransferencias:")
true_false(ban.transfere(c1.numero,c2.numero,50))
true_false(c2.transfere(1000,c1))

print("\n\nExtratos")
print(ban.extrato(123))
print(c2.extrato())

print("\n\nHistorico")
print(c1.ver_historico())
print(c2.ver_historico())

print(Conta.get_total_contas())
print('=' * 25)
x = str(input('Digite o Número da Conta: '))
y = str(input('Nome do Cliente: '))
print(f'{"Bem vindo(a)!":^25}')
print(f'O que deseja fazer hoje {y}?')

cliente1 = Banco(x, y)

while True:
    print('''Para extrato digite 1
Para saque digite 2
Para deposito digite 3
Para sair digite 000''')
    print('=' * 25)
    x = int(input('Opção desejada: '))
    print('=' * 25)
    if x == 1:
        cliente1.extrato()
        print('=' * 25)
    elif x == 2:
        cliente1.sacar()
        print('=' * 25)
    elif x == 3:
        cliente1.depositar()
        print('=' * 25)
    elif x == 000:
        print('Tenha um ótimo dia, até mais.')
        break
    else:
        print('Opção inválida, tente novamente.')
Exemple #3
0
class Servidor():
    def __init__(self):
        self.conexao = None
        self.serv = None
        self.banco = Banco()
        self.iniciar()
        self.menu()

    def iniciar(self):
        host = 'localhost'
        port = 8000
        addr = (host, port)
        serv_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        serv_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        serv_socket.bind(addr)
        serv_socket.listen(10)
        print('aguardando conexao...')
        con, client = serv_socket.accept()
        print(f'Conectado a {client}')
        self.conexao = con
        self.serv = serv_socket

    def recebe_dados(self):
        dados_recebidos = self.conexao.recv(1024).decode()
        dados = list(dados_recebidos.split(','))
        #print(f'Recebido: {dados}')
        return dados

    def enviar_dados(self, dados):
        self.conexao.send(str(dados).encode())
        print("Enviado!")

    def menu(self):
        '''
            Metodo que recebe dados de um cliente e chama um metodo de acordo com o primeiro item:
            1 - cadastra uma conta
            2 - login
            3 - Deposito
            4 - Saque
            5 - Extrato
            6 - transferencia
            Se o primeiro item nao for uma das opcoes acima, a conexao com o cliente é encerrada
        '''
        while True:
            d = self.recebe_dados()
            print(d)
            if d[0] == '1':
                self.cadastro(d)
            elif d[0] == '2':
                self.login(d)
            elif d[0] == '3':
                self.deposito(d)
            elif d[0] == '4':
                self.saque(d)
            elif d[0] == '5':
                self.extrato()
            elif d[0] == '6':
                self.transferencia(d)
            else:
                print('cliente encerrado')
                self.conexao = None
                print('aguardando conexao...')
                con, client = self.serv.accept()
                print(f'Conectado a {client}')
                self.conexao = con

    # lista: [1,cpf,nome,sobrenome,senha]
    def cadastro(self, d):
        if not self.banco._bd.busca(d[1]):
            if self.banco.cadastrar_conta(d[1], d[2], d[3], d[4]):
                numero = self.banco._bd.numero(d[1])
                self.enviar_dados('True,{}'.format(numero))
            else:
                self.enviar_dados('False')
        else:
            self.enviar_dados('False')

    #lista: [2,cpf,senha]
    def login(self, d):
        if self.banco.login(d[1], d[2]):
            dados = str(self.banco.conta_atual).strip('[]')
            self.enviar_dados(dados)
        else:
            self.enviar_dados(False)

    #lista: [3,valor]
    def deposito(self, d):
        d[1] = float(d[1])
        dep = self.banco.depositar(d[1])
        self.enviar_dados(dep)

    #lista: [4,valor]
    def saque(self, d):
        d[1] = float(d[1])
        saq = self.banco.saque(d[1])
        self.enviar_dados(saq)

    #lista = [5,cpf]
    def extrato(self):
        self.enviar_dados(self.banco.extrato())

    #lista: [6,cpf_dest,valor]
    def transferencia(self, d):
        d[2] = float(d[2])
        self.enviar_dados(self.banco.transfere(d[1], d[2]))