Para a apresentação do trabalho, incluir na tela inicial uma opção de login e senha de um usuário já cadastrado (administrador). Também já deverão estar cadastradas pelo menos 3 eleições, com 2 , 5 e 10 candidatos, respectivamente, e pelo menos 10 eleitores em cada. Pelo menos um eleitor deverá estar cadastrado somente em uma das eleições.

Passo 1

Beleza, vamos entender o que a questão está pedindo. A gente precisa criar a tela inicial de um aplicativo ou sistema que tenha uma opção de login e senha para um usuário que já está cadastrado, que no caso é o administrador. Além disso, já temos que ter 3 eleições cadastradas, cada uma com 2, 5 e 10 candidatos, respectivamente. Também precisamos cadastrar pelo menos 10 eleitores para cada eleição, garantindo que pelo menos um eleitor esteja cadastrado apenas em uma das eleições.
Para resolver isso, vamos precisar de conhecimentos básicos de programação, especialmente sobre interfaces de usuário (UI) para criar a tela de login, bancos de dados para armazenar usuários, eleições, candidatos e eleitores, e lógica de programação para garantir que os dados sejam inseridos corretamente.

Passo 2

Primeiro, vamos criar a tela de login. Essa tela deve ter campos para o usuário inserir o nome de usuário e a senha. Também precisamos de um botão para enviar essas informações e tentar fazer o login.
Para isso, podemos usar uma linguagem de programação como Python com uma biblioteca de interface gráfica como Tkinter, ou qualquer outra linguagem e framework de sua preferência.

Passo 3

Em seguida, precisamos criar o usuário administrador que já está cadastrado. Isso significa que, no nosso banco de dados, vamos ter uma tabela de usuários onde já vai existir uma entrada com o nome de usuário e a senha do administrador.
Por exemplo, se estivermos usando um banco de dados SQLite, a tabela de usuários poderia ser assim:
CREATE TABLE usuarios (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nome_usuario TEXT NOT NULL,
    senha TEXT NOT NULL,
    perfil TEXT NOT NULL
);

INSERT INTO usuarios (nome_usuario, senha, perfil) VALUES ('admin', 'senha123', 'administrador');

Passo 4

Agora, vamos cadastrar as 3 eleições com a quantidade de candidatos especificada.
Vamos criar uma tabela para as eleições e outra para os candidatos, relacionando cada candidato à sua eleição.
Por exemplo:
CREATE TABLE eleicoes (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nome_eleicao TEXT NOT NULL
);

CREATE TABLE candidatos (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nome_candidato TEXT NOT NULL,
    eleicao_id INTEGER,
    FOREIGN KEY (eleicao_id) REFERENCES eleicoes(id)
);
Inserindo as eleições e os candidatos:
-- Inserindo eleições
INSERT INTO eleicoes (nome_eleicao) VALUES ('Eleição 1');
INSERT INTO eleicoes (nome_eleicao) VALUES ('Eleição 2');
INSERT INTO eleicoes (nome_eleicao) VALUES ('Eleição 3');

-- Inserindo candidatos para Eleição 1 (2 candidatos)
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato A1', 1);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato A2', 1);

-- Inserindo candidatos para Eleição 2 (5 candidatos)
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato B1', 2);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato B2', 2);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato B3', 2);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato B4', 2);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato B5', 2);

-- Inserindo candidatos para Eleição 3 (10 candidatos)
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C1', 3);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C2', 3);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C3', 3);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C4', 3);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C5', 3);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C6', 3);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C7', 3);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C8', 3);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C9', 3);
INSERT INTO candidatos (nome_candidato, eleicao_id) VALUES ('Candidato C10', 3);

Passo 5

Agora vamos cadastrar os eleitores. Precisamos de pelo menos 10 eleitores para cada eleição, e pelo menos um eleitor deve estar cadastrado apenas em uma das eleições.
Vamos criar uma tabela para os eleitores e uma tabela de relacionamento para associar eleitores às eleições.
Por exemplo:
CREATE TABLE eleitores (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nome_eleitor TEXT NOT NULL
);

CREATE TABLE eleicao_eleitores (
    eleicao_id INTEGER,
    eleitor_id INTEGER,
    FOREIGN KEY (eleicao_id) REFERENCES eleicoes(id),
    FOREIGN KEY (eleitor_id) REFERENCES eleitores(id)
);
Inserindo os eleitores:
-- Inserindo eleitores (Total: 31 eleitores)
-- Eleitores para Eleição 1
INSERT INTO eleitores (nome_eleitor) VALUES ('Eleitor 1');
INSERT INTO eleitores (nome_eleitor) VALUES ('Eleitor 2');
...
INSERT INTO eleitores (nome_eleitor) VALUES ('Eleitor 10');

-- Associando eleitores à Eleição 1
INSERT INTO eleicao_eleitores (eleicao_id, eleitor_id) VALUES (1, 1);
INSERT INTO eleicao_eleitores (eleicao_id, eleitor_id) VALUES (1, 2);
...
INSERT INTO eleicao_eleitores (eleicao_id, eleitor_id) VALUES (1, 10);

-- Eleitores para Eleição 2
INSERT INTO eleitores (nome_eleitor) VALUES ('Eleitor 11');
...
INSERT INTO eleitores (nome_eleitor) VALUES ('Eleitor 20');

-- Associando eleitores à Eleição 2
INSERT INTO eleicao_eleitores (eleicao_id, eleitor_id) VALUES (2, 11);
...
INSERT INTO eleicao_eleitores (eleicao_id, eleitor_id) VALUES (2, 20);

-- Eleitores para Eleição 3
INSERT INTO eleitores (nome_eleitor) VALUES ('Eleitor 21');
...
INSERT INTO eleitores (nome_eleitor) VALUES ('Eleitor 30');

-- Associando eleitores à Eleição 3
INSERT INTO eleicao_eleitores (eleicao_id, eleitor_id) VALUES (3, 21);
...
INSERT INTO eleicao_eleitores (eleicao_id, eleitor_id) VALUES (3, 30);

-- Eleitor exclusivo em uma eleição
INSERT INTO eleitores (nome_eleitor) VALUES ('Eleitor 31');
INSERT INTO eleicao_eleitores (eleicao_id, eleitor_id) VALUES (1, 31);

Resposta

Prontinho! Agora a tela inicial tem a opção de login para o administrador, e já estão cadastradas 3 eleições com 2, 5 e 10 candidatos cada. Além disso, cada eleição tem pelo menos 10 eleitores, e um eleitor está cadastrado somente em uma das eleições. Tudo pronto para seguir com o desenvolvimento!

Exercícios relacionados