Ir ao conteúdo

Posts recomendados

Postado

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

Postado

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. ☻

Postado
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()

 

Postado

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]
 

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...