Ir ao conteúdo
  • Cadastre-se

Python Sistema de Contatos (Falta barra de rolagem)


Posts recomendados

Alguém entende como fazer essa atividade? Estou tendo dificuldade. Está faltando a barra de rolagem

 

Tudo no gráfico

Campos: nome, telefone, data de nascimento.

Registros: no mínimo 20.

 

Relatórios:

- listagem completa (nome (ordem alfabética), telefone, data de nascimento)

- Buscar por telefone (retorna o nome)

- Apresentar os aniversariantes do mês específico (nome, telefone, dia(em ordem crescente))

trabalho RAD av2.rar

Link para o comentário
Compartilhar em outros sites

8 minutos atrás, Swalls disse:

Explique mais o seu trabalho, coloque o código na tag de código. se possível diga a parte do código que você está com dúvida.

Quero ajudar , mas não tenho coragem de baixar um .rar que n sei de onde vem. ☻

import tkinter as tk
from tkinter import messagebox
from operator import itemgetter
from datetime import datetime
import sqlite3

conexao = sqlite3.connect('contatos.db')
cursor = conexao.cursor()

cursor.execute('''
    CREATE TABLE contatos (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        nome TEXT,
        telefone TEXT,
        data_nascimento TEXT
    )
''')
conexao.commit()

# Dados iniciais
registros = [
    {'nome': 'João Silva', 'telefone': '123456789', 'data_nascimento': '1990-01-01'},
    {'nome': 'Maria Santos', 'telefone': '987654321', 'data_nascimento': '1992-05-15'},
    {'nome': 'Jose Antonio', 'telefone': '397439789', 'data_nascimento': '1974-05-10'},
    {'nome': 'Carlos Aurora', 'telefone': '382039299', 'data_nascimento': '1978-05-05'},
    {'nome': 'Jose Vitoria', 'telefone': '374938398', 'data_nascimento': '1988-05-02'},
    {'nome': 'Jose Maria', 'telefone': '374918398', 'data_nascimento': '1989-02-02'},
    {'nome': 'Jose Silva', 'telefone': '374938397', 'data_nascimento': '1996-01-02'},
    {'nome': 'Maria Jose', 'telefone': '374922398', 'data_nascimento': '1995-03-02'},
    {'nome': 'Emanuel Ricardo', 'telefone': '374910398', 'data_nascimento': '1990-04-12'},
    {'nome': 'Mario Antunes', 'telefone': '374128398', 'data_nascimento': '1985-03-02'},
    {'nome': 'Danilo Alves', 'telefone': '404938398', 'data_nascimento': '1973-05-02'},
    {'nome': 'Angelo Pereira', 'telefone': '404938398', 'data_nascimento': '1977-03-02'},
    {'nome': 'Adalberto Silva', 'telefone': '374638398', 'data_nascimento': '1975-04-02'},
    {'nome': 'Crisostemos Medeiros', 'telefone': '404938478', 'data_nascimento': '1979-10-02'},
    {'nome': 'Pablo Aparecido', 'telefone': '404938399', 'data_nascimento': '1990-10-02'},
    {'nome': 'Alex Aparecido', 'telefone': '404938389', 'data_nascimento': '1987-10-25'},
    {'nome': 'Marina Antunes', 'telefone': '407038399', 'data_nascimento': '1990-10-20'},
    {'nome': 'Marcos Leiria', 'telefone': '404936399', 'data_nascimento': '1977-07-02'},
    {'nome': 'Daniel Leiria', 'telefone': '407938399', 'data_nascimento': '1980-07-20'},
    {'nome': 'Marcos Pontes', 'telefone': '404939899', 'data_nascimento': '1990-10-18'},

]

def adicionar_registro():
    nome = entry_nome.get()
    telefone = entry_telefone.get()
    data_nascimento = entry_nascimento.get()

    registro = {'nome': nome, 'telefone': telefone, 'data_nascimento': data_nascimento}
    registros.append(registro)

    messagebox.showinfo('Sucesso', 'Registro adicionado com sucesso!')

    # Limpar campos de entrada
    entry_nome.delete(0, tk.END)
    entry_telefone.delete(0, tk.END)
    entry_nascimento.delete(0, tk.END)

def buscar_por_telefone():
    telefone = entry_telefone_busca.get()

    for registro in registros:
        if registro['telefone'] == telefone:
            messagebox.showinfo('Resultado', f'O nome correspondente ao telefone {telefone} é: {registro["nome"]}')
            return

    messagebox.showinfo('Resultado', 'Nenhum registro encontrado com o telefone informado.')

def aniversariantes_mes():
    mes = int(combo_mes.get())

    aniversariantes = []
    for registro in registros:
        data_nascimento = datetime.strptime(registro['data_nascimento'], '%Y-%m-%d')
        if data_nascimento.month == mes:
            aniversariantes.append(registro)

    if not aniversariantes:
        messagebox.showinfo('Resultado', 'Nenhum aniversariante encontrado para o mês informado.')
        return

    aniversariantes = sorted(aniversariantes, key=itemgetter('data_nascimento'))

    resultado = 'Aniversariantes do mês:\n\n'
    for aniversariante in aniversariantes:
        nome = aniversariante['nome']
        telefone = aniversariante['telefone']
        dia = datetime.strptime(aniversariante['data_nascimento'], '%Y-%m-%d').day
        resultado += f'Nome: {nome}\nTelefone: {telefone}\nDia do aniversário: {dia}\n\n'

    messagebox.showinfo('Resultado', resultado)

def listar_contatos():
    resultado = 'Lista de contatos:\n\n'
    for registro in registros:
        nome = registro['nome']
        telefone = registro['telefone']
        data_nascimento = registro['data_nascimento']
        resultado += f'Nome: {nome}\nTelefone: {telefone}\nData de Nascimento: {data_nascimento}\n\n'

    messagebox.showinfo('Lista de Contatos', resultado)


# Interface gráfica
window = tk.Tk()
window.title('CRUD - Registros')
window.geometry('400x400')

label_nome = tk.Label(window, text='Nome:')
label_nome.pack()
entry_nome = tk.Entry(window)
entry_nome.pack()

label_telefone = tk.Label(window, text='Telefone:')
label_telefone.pack()
entry_telefone = tk.Entry(window)
entry_telefone.pack()

label_nascimento = tk.Label(window, text='Data de Nascimento (AAAA-MM-DD):')
label_nascimento.pack()
entry_nascimento = tk.Entry(window)
entry_nascimento.pack()

button_adicionar = tk.Button(window, text='Adicionar Registro', command=adicionar_registro)
button_adicionar.pack()

label_telefone_busca = tk.Label(window, text='Buscar por Telefone:')
label_telefone_busca.pack()
entry_telefone_busca = tk.Entry(window)
entry_telefone_busca.pack()

button_buscar = tk.Button(window, text='Buscar', command=buscar_por_telefone)
button_buscar.pack()

label_mes = tk.Label(window, text='Mês (1-12):')
label_mes.pack()
combo_mes = tk.Entry(window)
combo_mes.pack()

button_aniversariantes = tk.Button(window, text='Aniversariantes do Mês', command=aniversariantes_mes)
button_aniversariantes.pack()

button_listar = tk.Button(window, text='Listar Contatos', command=listar_contatos)
button_listar.pack()

window.mainloop()

 

Link para o comentário
Compartilhar em outros sites

Diga onde está com problema e qual o objetivo(produto final requerido) do trabalho ou o que você deseja que façamos análise.

Como é um sistema, acredito que é melhor orientar a objetos pois as funções serão métodos e será possível modular e fazer modificações futuras.

 

 

def listar_contatos():
    return str(registros).replace(",","\n")[1:-1]
 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!