Você está na página 1de 15

10/10/2020

2
10/10/2020

Projeto Cadastro de Aluno

• Estrutura de Dados: Lista


• Projeto no Kodular
• Armazenamento Local
• Design
• Implementação

Armazenamento em Lista

• Uma lista é uma estrutura de dados que faz referência a um objeto que
armazena dados que são referenciados por meio de índices.
• Em cada índice podem ser armazenados valores de diferentes tipos e inclusive
outras listas.
• Os índices começam pelo valor 0.

4
10/10/2020

Armazenamento em Lista

L1 = [1,2,3]
L1[0] retorna o valor 1
L1[1] retorna o valor 2
L1[2] retorna o valor 3

ALUNO = [23456,"George","M"]
ALUNO[1] retorna o valor "George“
ALUNO[0] <- 23412 //atribuindo o conteudo 23412 para o indice 0 da lista aluno.
ALUNO passa a ser [23412,"George","M"]

Armazenamento em Lista

• Em uma lista podem conter outras listas

ALUNOS = [ [23456,"GEORGE","M"],[21256,"MARIA","F"],[45456,"PAULA","F"]
]
ALUNOS[0] retorna uma lista [23456,"GEORGE","M"]
ALUNOS[0][2] retorna o valor "M“

6
10/10/2020

Armazenamento em Lista

• Cada dado de um aluno também pode ser uma lista representando o nome do dado e o conteúdo
ALUNOS = [
[ ["MATRICULA",23456] , ["NOME","GEORGE"] , ["SEXO","M"] ],
[ ["MATRICULA",21256] , ["NOME","MARIA"] , ["SEXO","F"] ],
[ ["MATRICULA",45456] , ["NOME","PAULA"] , ["SEXO","F"] ]
]
ALUNOS[2] retorna [ ["MATRICULA",45456] , ["NOME","PAULA"] , ["SEXO","F"] ]
ALUNOS[2][2] retorna ["SEXO","F"]
ALUNOS[2][2][1] retorna o valor "F"

Armazenamento em Lista

ALUNOS = [
[ ["MATRICULA",23456] , ["NOME","GEORGE"] , ["SEXO","M"] ],
[ ["MATRICULA",21256] , ["NOME","MARIA"] , ["SEXO","F"] ],
[ ["MATRICULA",45456] , ["NOME","PAULA"] , ["SEXO","F"] ]
]
ALUNOS[0][0][1] retorna o valor 23456
ALUNOS[0][1][0] retorna o valor "NOME"
ALUNOS[0][1][1] retorna o valor "GEORGE"

8
10/10/2020

Exercício
Criar uma estrutura de dados de armazenamento em Listas, para armazenar 2
registros e apresentar o comando para retornar o TELEFONE_CELULAR do segundo
registro.

AGENDA
NOME
TELEFONE_FIXO
TELEFONE_CELULAR
ENDERECO

Armazenamento Chave e Valor


• Um dos formato de armazenamento NoSql (Not Only SQL) é por meio
de Chave e Valor
• Uma chave comporta-se como um índice que representa um dados
único ou uma estrutura de dados
• No Kodular o componente TinyDb e no Google o Firebase

10
10/10/2020

BANCO DE DADOS ESCOLA

NAMESPACE ALUNOS
23456:[["MATRICULA",23456],["NOME","GEORGE"],["SEXO","M"],["SALA",1]]
21256:[["MATRICULA",21256],["NOME","MARIA"],["SEXO","F"],["SALA",2]]
45456:[["MATRICULA",45456],["NOME","PAULA"],["SEXO","F"],,["SALA",2]]

11

Exercício

Criar a estrutura do banco de dados AGENDA


AGENDA
NOME
TELEFONE_FIXO
TELEFONE_CELULAR
ENDERECO
Chave será o TELEFONE_CELULAR
O valor será uma lista com todos os dados: NOME, TELEFONE_FIXO,
TELEFONE_CELULAR e ENDERECO

12
10/10/2020

Projeto Cadastro Aluno

Tela Principal (Screen1)

Tela Inserir

Tela Listagem

Tela Detalhe

13

• Screen1:
Tela Principal (Screen1) • Desativar Title Visible
• Horizontal_Arrangment
• Height: Automatic
• Width:Full Parent
• Align Horizontal: Center
• Label1:
• Text: Cadastro Aluno
• Font Size: 25
• Ativar Font Bold
• Vertical Arrangment
• Height: Full Parent
• Width: Full Parent
• Align Horizontal: Center
• Space1 e 2
• Height: Automatic
• Width: Full Parent
• Btn_inserir
• Background Color: #3F51B5FF
• Font Size: 25
• Width: 90%
• Text: Inserir
• Btn_listagem
• Background Color: #3F51B5FF
• Font Size: 25
• Width: 90%
• Text: Listagem

14
10/10/2020

• Inserir: • txt_sexo
Tela Inserir • Desativar Title Visible
• Font Size: 18
• Horizontal_Arrangment • Width: 90%
• Height: Automatic
• Hint: sexo
• Width:Full Parent
• Align Horizontal: Center • Hint color: #D9D2D2FE
• Align Vertical: Center • txt_sala
• Label1: • Font Size: 18
• Text: Inserir • Width: 90%
• Font Size: 25
• Ativar Font Bold • Hint: numero da sala
• Hint color: #D9D2D2FE
• Vertical Arrangment
• Height: Full Parent • Btn_voltar
• Width: Full Parent • Background Color: #444444FF
• Align Horizontal: Center
• Height: 70%
• Spaces 1 a 5 • Font Size: 18
• Height: Automatic
• Text: Inserir
• Width: Full Parent
• txt_matricula • Btn_inserir
• Font Size: 18 • Background Color: #444444FF
• Width: 90% • Height: 70%
• Hint: Matricula
• Font Size: 18
• Hint color: #D9D2D2FE
• Text: Voltar
• txt_nome
• Font Size: 18 • Notifier1
• Width: 90%
• Hint: Nome • Db_escola (tinyDB)
• Hint color: #D9D2D2FE • Namespace: aluno

15

Tela Listagem • Listagem:


• Desativar Title Visible
• List_View1
• Background Color: #3F51B5FF
• Ativar ScroolBar Pading
• Horizontal_Arrangment
• Font Size: 18
• Height: Automatic
• Ativar Show Filter Bar
• Width:Full Parent
• Ativar Scroolbar
• Align Horizontal: Center
• Height: Full Parent
• Align Vertical: Center
• Width: Full Parent
• Label1:
• Btn_voltar
• Text: Listagem de Alunos
• Background Color: #444444FF
• Font Size: 25
• Height: 70%
• Ativar Font Bold
• Font Size: 18
• Vertical Arrangment • Text: Inserir
• Height: Full Parent
• Notifier1
• Width: Full Parent
• Align Horizontal: Center • Db_escola (tinyDB)
• Namespace: aluno
• Space1
• Height: Automatic
• Width: Full Parent

16
10/10/2020

• Listagem: • txt_sexo
Tela Detalhe • Desativar Title Visible • Font Size: 18
• Horizontal_Arrangment • Width: 90%
• Height: Automatic • Hint: Nome
• Width:Full Parent
• Align Horizontal: Center • txt_sala
• Align Vertical: Center • Font Size: 18
• Label1: • Width: 90%
• Text: Listagem de Alunos • Hint: Nome
• Font Size: 25 • Btn_voltar
• Ativar Font Bold
• Background Color: #444444FF
• Vertical Arrangment • Height: 70%
• Height: Full Parent
• Font Size: 18
• Width: Full Parent
• Align Horizontal: Center • Text: Inserir
• Spaces • Btn_alterar
• Height: Automatic • Background Color: #444444FF
• Width: Full Parent • Height: 70%
• lb_matricula • Font Size: 18
• Font Size: 25 • Text: Alterar
• Width: 90%
• Hint: Matricula
• Btn_excluir
• Background Color: #444444FF
• txt_nome • Height: 70%
• Font Size: 18
• Width: 90% • Font Size: 18
• Hint: Nome • Text: Excluir

17

Implementação

18
10/10/2020

Tela Principal (Screen1)

• O botão Inserir chama a screen Inserir


• O Botão Listagem chama a screen Listagem

19

20
10/10/2020

Tela Inserir
• Criar um procedimento de validação de dados para verificar de há algum campo vazio e se houve algum campo deverá concatenar
uma mensagem de erro. Caso a mensagem esteja vazia, os campos estão preenchidos
• Ao clicar no botão inserir
• Validar se os campos foram preenchidos e armazenar a mensagem de erro numa variável local. Se houver erro emitir o erro e
senão seguir a inserção dos dados.
• Setar a Namespace do banco para aluno
• Numa variável global cadastro, verificar se no banco de dados tem alguma chave com a matricula informada no campo
matricula. Se estiver vazia a lista resultado, seguir o cadastro, senão emitir uma mensagem que para a determinada matrícula já
há cadsatro.
• Adicionar a lista cadastro uma lista, onde para cada item deverá ser uma lista com o nome do campo e o conteúdo como
indices.
• Armazenar a lista cadastro na base de dados associada à chave matricula.
• Ao clicar no botão voltar
• Fechar a tela de inserir

21

22
10/10/2020

Tela Listagem

• Ao inicializar a tela, buscar todas as chaves (tag) armazenadas para aluno.


• Para cada chave, pegar o aluno e criar uma lista com a matrícula e nome
separados por um "-" na list view.
• Se não houver alunos, emitir mensagem: Não há alunos cadastrados.
• Ao clicar em um item da lista
• Localizar o índice desta lista, recuperar a matricula da variável global listaTags e chamar a
tela Detalhe passando o valor desta matrícula.

23

24
10/10/2020

Tela Detalhe (1)

• Ao inicializar será recebida a matrícula enviada pela tela de listagem e guardada e um uma variável global matrícula.
• Com base na matricula serão buscados os dados do aluno e armazenado numa Lista: listaAluno.
• Os dados do aluno serão carregados na tela, sendo a matrícula colocada num label (pois não permitirá alteração).
• O usuário após alterar os valores possíveis, escolhe a opção voltar, alterar ou excluir.
• Ao clicar no botão voltar
• Fechar a tela
• Ao clicar no botão alterar
• Serão validados dos dados para não permtir que estejam em branco. Se a mensagem de retorno da validação não estiver vazia, será
emitida uma mensagem na tela com a mensagem. CAso contrário seguem o processo de alteração.
• Será armazenado numa variável global a operação a ser realizada, no caso alt de alteração.
• Os dados nome, sexo e sala serão armazenados numa variável global listaAlunoAlterado.
• Será chamada uma notificação para confirmação de alteração.
• Será fechada a tela de detalhe.

25

Tela Detalhe (2)

• Ao clicar no botão excluir


• Será armazenado numa variável global a operação a ser realizada, no caso
del de deleção ou exclusão.
• Será chamada uma notificação para confirmação de alteração.
• Será fechada a tela de detalhe.

26
10/10/2020

27

28
10/10/2020

29

Você também pode gostar