Relatorio
Relatorio
Dedicatoria
Dedicamos este projecto primeiramente há deus e há todos os nossos
familiares, aos nossos professores, o nosso tutor, todos os nossos amigos e
conhecidos.
1
2. Agradecimentos
Agradeço a todos que contribuíram directa ou indirectamente para a
realização deste projecto.
Um agradecimento especial...
Aos colegas que apoiaram e auxiliaram e deram um constante insentivo;
Ao meu orientador o Sr. Filipe João, pelo devido acompanhamento e orientação;
Finalmente agradecer aos nossos pais, a quem dedico este trabalho, pelo apoio e
amizade prestados.
2
Índice
1. Dedicatoria..........................................................................................................................1
2. Agradecimentos....................................................................................................................1
3. Introdução............................................................................................................................5
4. Desenvolvimento..............................................................................................................6
5. Tela de login/Área de segurança..........................................................................................8
6. Sub pagina principal......................................................................................................13
7. Sistema de mensagem.................................................................................................16
8. Formulario de inscrição.................................................................................................19
9. Formulario de matricula................................................................................................28
9.1 Cadastro de encarregado.............................................................................................29
10. Cadastramento de curso.............................................................................................35
11. Cadastramento de bloco.................................................................................................39
12. Formulario de cadastro de sala...................................................................................40
13. Cadastramento de professores.......................................................................................43
14. Cadastro de coordenadores............................................................................................49
15. Eventos escolares...................................................................................................51
17. Glossário........................................................................................................................54
18. Bibliográfia....................................................................................................................55
3
Indice de ilustrações
4
3. Introdução
O nosso grupo tem como tema sistema de gestão escolar, escolhemos este
tema visto que muitas instituições não tenhem o total controlo da mesma por
falta de um sistema de gerenciamento escolar, então o nosso sistema tem como
objectivo principal fazer a gestão da instituição de ensino IMEL, mas podemos
dizer que têm também objectivos secundarios, já se esta a trabalhar num sistema
complexo que podera futuramente fazer a gestão de qualquer escola privada ou
publica.
Visto que todos elementos do grupo têm uma paixão por programação, e que
todos sabem programar decidemos formar este grupo com o tema citado acima,
que esse seria o melhor tema que nos facilitaria na defesa e que melhor ajudaria
a mostrar os conhecimentos obitidos durante estes anos na instituição.
Para concepção desse trabalho foi feito um levantamento de requisitos na
papelaria da escola, na coordenação de informatica, e também foram feitas
entrevistas com o coordenador de informatica o Prof. Carlos Pick, e o nosso
Director Administrativo isso tudo porque se precissava saber no concreto como
funciona a nossa instituição e porque também era de nossa extrema importancia
ter copia de uma ficha de inscrição, certificado, entre outros documentos...
5
4. Desenvolvimento
Primeiramente começamos com a elaborção da BD tivemos
serias discuções sobre a elaboração da Bd, ou seja como seria a BD de gesão
escolar baseando-se no IMEL. Mas depois de tantas polemica chegamos há
um veredito final com as seguintes entidades:
Aluno
Curso
Bloco
Ano_Escolar
Avaliação
Classe
Coordenador
Disciplina
Encarregado
Eventos
Falta
Falta_Disciplinar
Falta_Materia
Inscrição
Matricula
Mensagem
Processo
Utilizador
Professor
Requi_Inscricão
Sala
Turma
6
Já com a base de dados concluida, fomos para os outros 50% do
nosso projecto que se basea na programação ou seja o Sistema de
gerenciamento escolar, para elaborarmos esse projecto utilizamos as seguintes
ferramentas:
- XAMPP
- MysqlWorkbench
- Visual Studio 2015
- Sublime Text
- Dream Weaver
Isso tudo junto com a linguagem de programação C#, Php,
Javascript, Jquery, a linguagem de consulta estruturada Sql.
7
execuções de comandos Sql, ou seja uma classe podemos chamar de conecção
externa e para isso utilizamos os seguintes codigos:
//variável de conexao
MySqlConnection cn = new MySqlConnection(bd);
//abrindo conexão
[Link]();
//executando o comando
[Link]();
8
//fechando a conexão
[Link]();
}
public void Cad_com_foto(string sql,byte [] bt)
{
//variável de conexão na BD
MySqlConnection cn = new MySqlConnection();
//executando o comando
[Link]();
//fechando a conexão
[Link]();
//variável de conexão na BD
MySqlConnection cn = new MySqlConnection();
//atribuindo valor retornado pela função de conexão única
cn = con();
//variável de comando....atribuindo o comando sql do parámentro e a conexao
MySqlCommand cm = new MySqlCommand(sql, cn);
//variável de leitura dos dados da consulta
MySqlDataReader cx;
//retornando os dados do sql executado na variável do tipo datareader
cx = [Link]();
//variável de conexão na BD
MySqlConnection cn = new MySqlConnection();
//atribuindo valor retornado pela função de conexão única
cn = con();
//variável de comando....atribuindo o comando sql do parámentro e a conexao
9
DataTable dtt = new DataTable();
[Link](dtt);
return dtt;
}
}
}
Dai Começamos Logo a trabalhar no botão de sair que parecia ser o mais facil
de se trabalhar no momento, esse botão como é obvio sera utilizado para se
fechar por completo o aplicativo para isso utilizamos o seguinte codigo:
private void bt_entrar_Copy_Click(object sender, RoutedEventArgs e)
{
//Fechar formulário currente(Login)
[Link]();
}
10
//se todas têm, execute o código abaixo
else
{
if ([Link] == true)
{
while ([Link]())
{
ID = cx[0].ToString();
nivel = cx["Nivel_restr"].ToString();
}
[Link]();
[Link](() =>
{
//variável instanciada que faz referência ao formulário paagina inicial
Pagina_Inicial fr = new Pagina_Inicial();
//esconder formulário corrente(login) para mostrar o outro
[Link]();
//chamar formulário página inicial e aguardar até que ele seja fechado
[Link]();
});
//quando o formulário chamado acima for fechado faça: fecha formulário corrente()
[Link]();
}
//Senão existir dados na variável
else
//se a varável de dados não têm dados execute o código abaixo
{
//mensagem
[Link](() => {
[Link]("Dados incorrectos", "", [Link],
[Link]);
});
11
[Link](() =>
{
//Habilitando os botões
bt_entrar.IsEnabled = true;
txt_pass.IsEnabled = true;
txt_user.IsEnabled = true;
});
}
catch
{
try
{
[Link](() =>
{
bt_entrar.IsEnabled = true;
txt_pass.IsEnabled = true;
txt_user.IsEnabled = true;
});
}
catch { }
}
}));
[Link]();
}
}
12
Ilustração 2 Sub Pagina Inicial
while ([Link]())
{
//Atribuindo o nome e a área as textbox
[Link](() =>
{
[Link] = "Nome: " + cx["Nome"].ToString();
[Link] = "Área: " + cx["Area_Esc"].ToString();
});
}
[Link]();
} catch (Exception ex) {
[Link](() => {
[Link]("Aconteceu algo inesperado " + [Link], "",
[Link], [Link]);
13
});
}
})); [Link]();
14
try { adicionar_utilizadores(); } catch (Exception ex) { [Link]("Aconteceu
algo inesperado " + [Link], "", [Link], [Link]); }
})); [Link]();
[Link](th);
//Fazendo um focus a tela de mensagem
tb_env_msg.Focus();
}
while ([Link]())
{
[Link](() =>
{
txt_dest_envnot.[Link](new utlizador { id =
Convert.ToInt32(cx["IdUtilizador"].ToString()), nome = cx["nome"].ToString() });
});
[Link]();
}
7. Sistema de mensagem
Esta tela apresentada na imagem de baixo sera apresentada toda vez que
se clicar no botão mensagem.
Por baixo da nossa combobox destinatario que já foi explicada acima.
Temos o nosso botão adicionar destinatario, que for seleccionado na combobox
destinatario que sera adicionado na nossa lista de destinatarios que encontra-se
por baixo do mesmo botão e essas instruções funcionam com o seguinte codigo:
15
Ilustração 4 Sistema de Mensagem
Com isso surge uma pergunta, como é que se selecciona uma imagem?
Facil, basta clicarmos no botão que esta no campo aonde se
localiza o directorio e sera executado esse codigo:
private void proc_file_Click(object sender, RoutedEventArgs e)
16
{
OpenFileDialog op = new OpenFileDialog();
[Link]();
string loc = [Link];
txt_msg_file.Text = loc;
}
}
else
{
Conexao cox = new Conexao();
byte[] file = null;
string extensaoo = null;
string nome_file = null;
if (txt_msg_file.Text != "")
{
file = [Link](txt_msg_file.Text);
extensaoo = new [Link](txt_msg_file.Text).Extension;
nome_file = new [Link](txt_msg_file.Text).Name;
MySqlDataReader cx;
while ([Link]())
{
id_msg = cx["idmsg"].ToString();
}
17
[Link]("Mensagem Enviada", "", [Link],
[Link]);
ls_dest_not.[Link]();
txt_cad_text_not.Text = "";
adicionar_utilizadores();
}
}
8. Formulario de inscrição
Dando sequencia a nossa explicação dos codigos voltaremos ao
nosso sub-menu que farei a explicação da parte crucial de uma instituição ou
seja o aluno, como sabemos o aluno tem que fazer inscrição na instituição para
ser considerado como aluno, então para isso foi criada uma tela que serve para
fazer inscrição do aluno, que sera apresentado na imagem abaixo:
18
Ilustração 6 Segunda Étapa da tela de inscrição
} else {
if (Convert.ToInt32(txt_nota7.Text) > 20 || Convert.ToInt32(txt_nota8.Text) > 20 ||
Convert.ToInt32(txt_nota9.Text) > 20)
{
[Link]("Nota inválida", "", [Link],
[Link]);
}
else
{
int media1 = (Convert.ToInt32(txt_nota7.Text) + Convert.ToInt32(txt_nota8.Text) +
Convert.ToInt32(txt_nota9.Text)) / 3;
txt_nota7.Text = "";
txt_nota8.Text = "";
txt_nota9.Text = "";
19
}
}
}.
try
{
txt_disc_ins.[Link]((disc_ins.SelectedItem as
media).disciplina);
disc_ins.[Link](disc_ins.SelectedItem);
}
catch
{
}
}
E de seguida com todos os campos preenchidos devidamente
clicamos no botão inscrever, que fara a selecção do curso pretendido e o curso
secundario de acordo as medias inseridas e esta função executa com a seguinte
instrução:
MySqlDataReader cx;
Conexao cox = new Conexao();
[Link](() =>
{
[Link](() => {
[Link] = "A increver Aluno " + txt_nome_ins.Text
+ "";
bt_cad_ins.IsEnabled = false;
});
}).ContinueWith((t) => {
try
{
if (Convert.ToInt32(ano) -
[Link](txt_dat_ins.Text).Year < 14 ||
[Link](txt_dat_ins.Text).Year > Convert.ToInt32(ano))
{
[Link]("Data Impossivel", "",
[Link], [Link]);
}
else
{
20
if (disc_ins.[Link] < 12 || txt_nome_ins.Text
== "" || cb_gen_ins.Text == "" || txt_dat_ins.Text == "" ||
cb_cur_or_ins.Text == "" || cb_cur_alt_ins.Text == "")
{
[Link]("Dados em Falta", "",
[Link], [Link]);
}
else
{
int contas = 0;
while ([Link]())
{
contas =
Convert.ToInt32(cx[0].ToString());
}
[Link]();
cx = [Link]("select Limite_inscricao
from ano_escolar where idano_escolar='" + idano + "' ");
int limite = 0;
while ([Link]())
{
limite =
Convert.ToInt32(cx[0].ToString());
}
[Link]();
if (limite == contas)
{
[Link]("Limite de inscrição
atingido", "", [Link], [Link]);
}
else
{
int id_curso = 0;
cx = [Link]("select* from
requ_inscricao where FK_Cursonm='" + (cb_cur_or_ins.SelectedItem as
curso).id + "'");
int res = 1;
while ([Link]())
{
foreach (media md in disc_ins.Items)
{
21
if ([Link] ==
cx["Nome_Disc"].ToString())
{
if ([Link] >=
Convert.ToInt32(cx["Nota_min"].ToString()))
{
[Link](true);
}
else if ([Link] <
Convert.ToInt32(cx["Nota_min"].ToString()))
{
[Link](false);
}
}
}
res = 0;
}
}
[Link]();
if (res == 0)
{
res = 1;
cx = [Link]("select* from
requ_inscricao where FK_Cursonm='" + (cb_cur_alt_ins.SelectedItem as
curso).id + "'");
while ([Link]())
{
foreach (media md in
disc_ins.Items)
{
if ([Link] ==
cx["Nome_Disc"].ToString())
{
if ([Link] >=
Convert.ToInt32(cx["Nota_min"].ToString()))
{
[Link](true);
}
else if ([Link] <
Convert.ToInt32(cx["Nota_min"].ToString()))
{
22
[Link](false);
}
}
}
id_curso =
Convert.ToInt32((cb_cur_alt_ins.SelectedItem as curso).id);
}
else
{
id_curso =
Convert.ToInt32((cb_cur_or_ins.SelectedItem as curso).id);
}
cox.exe_sql("INSERT INTO
inscricao(nome,Data_nascimento,genero,FKCurso,FK_ano,resultado,media,Data_
inscricao) values ('" + txt_nome_ins.Text + "', '" +
dt_ins.[Link]("yyyy-MM-dd") + "', '" +
cb_gen_ins.Text + "','" + id_curso.ToString() + "', '" + idano + "', '" +
res + "', '" + [Link]("yyyy-MM-dd") + "' )");
txt_nome_ins.Text = "";
cb_gen_ins.Text = "";
txt_dat_ins.Text = "";
cb_cur_or_ins.Text = "";
cb_cur_alt_ins.Text = "";
}
}
}
}
catch (Exception ex)
{
[Link]("Aconteceu algo inesperado " +
[Link], "", [Link], [Link]);
23
}
},
[Link]()).ContinueWith((t1) =>
{ bt_cad_ins.IsEnabled = true; },
[Link]());
}
Surge a pergunta como é que o aluno ou candidato vai saber se
passou na inscrição para isso temos a tela apresentada abaixo:
[Link](() =>
{
string fileName =
[Link]([Link]) + @"\\
alunos_aceites.docx";
var doc = [Link](fileName);
24
MySqlDataReader cx;
Conexao cox = new Conexao();
int numero = 0;
while ([Link]())
{
[Link][0].Cells[0].[Link]().Append("Nome").Alignment = [Link];
[Link][0].Cells[1].[Link]().Append("Curso").Alignment = [Link];
[Link][0].Cells[2].[Link]().Append("Gênero").Alignment = [Link];
[Link][0].Cells[0].Width = 1000;
[Link][0].Cells[1].Width = 1000;
[Link][0].Cells[2].Width = 100;
[Link][0].Cells[0].[Link]().Bold();
[Link][0].Cells[1].[Link]().Bold();
[Link][0].Cells[2].[Link]().Bold();
[Link][0].Cells[0].[Link]().FontSize(20);
[Link][0].Cells[1].[Link]().FontSize(20);
[Link][0].Cells[2].[Link]().FontSize(20);
[Link][0].Cells[0].[Link]().FontSize(2);
int linha = 1;
foreach (lista_alunos_aptos lt in ls)
{
[Link][linha].Cells[0].[Link]().Append([Link]).FontSize(16);
[Link][linha].Cells[1].[Link]().Append([Link]).FontSize(16);
[Link][linha].Cells[2].[Link]().Append([Link]).FontSize(16);
linha++;
[Link](t);
[Link]();
25
// Open in Word:
[Link](fileName);
}).ContinueWith((t) =>
{
bt_print_apto.IsEnabled = true;
[Link] = "Concluido";
}, [Link]());
}
26
9. Formulario de matricula
27
}
28
cox.exe_sql("INSERT INTO encarregado(Nome,Genero,Telemovel,Email) values ('" +
txt_matr_pai.Text + "', '" + cb_pais_genero.Text + "','" + txt_telemovel_pais.Text + "','" +
txt_pais_email.Text + "')");
MySqlDataReader cx;
cx = [Link]("SELECT IdEncarregado FROM encarregado where nome='" +
txt_matr_pai.Text + "'");
int idenc = 0;
while ([Link]())
{
idenc = Convert.ToInt32(cx["IdEncarregado"].ToString());
}
cb_encarregado_matr.[Link](new encarregado { id = idenc, descricao =
txt_matr_pai.Text });
[Link]("Cadastrado com sucesso", "", [Link],
[Link]);
Cad_Matricula.Focus();
txt_matr_pai.Text = "";
txt_telemovel_pais.Text = "";
cb_pais_genero.Text = "";
txt_pais_email.Text = "";
}
}
29
Ilustração 11 Visualizar Encarregados
30
Ilustração 12 Tela de Enquadramento
31
numero_alunos = Convert.ToInt32(cx[0].ToString());
capacity = Convert.ToInt32(cx[1].ToString());
}
[Link]();
}
else
{
byte[] imgbyte;
imgbyte = null;
string temfoto = "0";
if ([Link] != "")
{
imgbyte = [Link]([Link]);
temfoto = "1";
}
cox.exe_sql("INSERT INTO
matricula(FKAluno,FKTurma,Data_matricula,FKAno,IdEncarregadoo) values ('" + idaluno + "', '" +
(cb_turm_matr.SelectedItem as turma).id + "','" + [Link]("yyyy-MM-dd") + "', '"
+ idano + "')");
32
Cad_Matricula.Focus();
txt_matr_pai.Text = "";
txt_telemovel_pais.Text = "";
cb_pais_genero.Text = "";
txt_pais_email.Text = "";
[Link] = false;
tb_matricu_aluno.IsEnabled = true;
tb_matricu_aluno.Focus();
}
}
}
33
10. Cadastramento de curso
De
certeza que uma instituição deve ter pelo menos um curso,
então coube a nós programadores desenvolver esta tela de cadastramento de
curso apresentado na imagem abaixo:
34
aluno entre nesse mesmo curso, então a nossa segunda étapa foca-se mais nesse
sentido.
35
int IsRecurso10 = 0;
int IsRecurso11 = 0;
int IsRecurso12 = 0;
int IsRecurso13 = 1;
}
else
{
IsRecurso10 = 1;
}
else
{
IsRecurso11 = 1;
}
else
{
IsRecurso12 = 1;
cox.exe_sql("insert into
curso(descricao,area_form,fk_cord,IsRecurso10,IsRecurso11,IsRecurso12,IsRecurso13) values ('" +
txt_des_cur.Text + "', '" + txt_ar_cur.Text + "','" + (txt_cor_curs.SelectedItem as cordenacao).id +
"','" + IsRecurso10 + "','" + IsRecurso11 + "','" + IsRecurso12 + "','" + IsRecurso13 + "')");
MySqlDataReader cx;
while ([Link]())
{
36
cox.exe_sql("INSERT INTO requ_inscricao(Nome_Disc,nota_min,FK_Cursonm)
values ('" + [Link] + "', '" + [Link] + "'," + cx["IdCurso"].ToString() + ")");
37
Vendo que a nossa instituição esta dividida por blocos foi
importante também o nosso sistema ter uma funcionalidade que trata dessa parte
para isso a existencia dessa tela é fundamental:
if (txt_Descr_Bloco.Text == "")
{
}
else
{
Conexao cox = new Conexao();
38
12. Formulario de cadastro de sala
De seguida podemos dar então continuidade e falar das salas da
instituição, que na pratica ficam dentro de um bloco.
A nossa tela de cadastramento de salas sera apresentado na
imagem abaixo:
39
O botão com a função de cadastrar uma sala de cada vez contém
o seguinte codigo:
private void bt_cad_sala_Click(object sender, RoutedEventArgs e)
{
[Link] th = new [Link](new
[Link](() => {
try { adicionar_bloco(""); } catch (Exception ex) { [Link]("Aconteceu algo
inesperado " + [Link], "", [Link], [Link]); }
})); [Link]();
if (txt_n_carteira.Text == "" || txt_n_sala.Text == "" || cb_blocos.Text == "")
{
[Link]("Um dos campos encontra-se vazio", "", [Link],
[Link]);
}
else
{
[Link](() =>
{
}).ContinueWith((t) => {
}, [Link]());
}
}
40
Ilustração 19 Tela de cadastro de sala multiplo
41
Ilustração 20 Visualizar sala
42
Ilustração 21 Cadastro de professor
43
Ilustração 22 Disciplinas lecionadas
44
O botão cadastrar funciona com este codigo:
private void bt_cad_disc_Click(object sender, RoutedEventArgs e)
{
if (txt_Descr_disc.Text == "")
{
}
else
{
Conexao cox = new Conexao();
cox.exe_sql("insert into disciplina(nome) values ('" + txt_Descr_disc.Text + "')");
adicionar_disciplina();
txt_Descr_disc.Text = "";
cad_prof.Focus();
}
else
{
cox.exe_sql("INSERT INTO
professor(Nome,Genero,Endereco,Telemovel,Email,BI,data_nascimento) values ('" +
txt_prof_cad.Text + "', '" + cb_gen_prof.Text + "','" + txt_end_prof.Text + "','" + txt_tel_prof.Text +
"','" + txt_email_prof.Text + "','" + txt_bi_prof.Text + "','" +
[Link](txt_prof_ins.Text).ToString("yyyy - MM - dd") + "')");
MySqlDataReader cx;
45
while ([Link]())
{
cox.exe_sql("INSERT INTO
disc_professor(FKProfessorr,FKDisciplinaa,FKTurmaa,Faltas_min) values ('" +
cx["IdProfessor"].ToString() + "', '" + dado.id_disc + "'," + dado.id_turma +
",'"+dado.min_falta+"')");
}
}
[Link]("Cadastrado Com Sucesso", "", [Link],
[Link]);
disc_prof.[Link]();
txt_prof_cad.Text = "";
cb_gen_prof.Text = "";
txt_end_prof.Text = "";
txt_tel_prof.Text = "";
txt_email_prof.Text = "";
txt_bi_prof.Text = "";
txt_prof_ins.Text = "";
txt_disc_prof.Text = "";
txt_cad_curs_pro.Text = "";
txt_cad_turm_pro.Text = "";
txt_cad_clas_prof.Text = "";
}
}
}
46
Ilustração 24 Visualizar professores
47
14. Cadastro de coordenadores
Passos anteriores foi ilustrado o processo de cadastrar curso, e
na instituição de ensino IMEL diz que cada curso tem o seu coordenador então
dai surgio a necessidade de cadastrar coordenadores nessa tela de cadastro:
48
txt_bi_cord.Text = "";
txt_end_cord.Text = "";
}
}
49
15. Eventos escolares
Sabendo que na escola decorre muitos eventos e os usuarios
estando com problemas secundarias, por sua vez esquecem, po isso foi criado o
formulario de listar e cadastrar eventos.
50
Ilustração 28 Publicar eventos
}
else
{
Conexao cox = new Conexao();
cox.Cad_com_foto("insert into eventos(titulo,texto,foto,FKUtilizadoren,data_lancamento)
values('" + event_titulo.Text + "', '" + event_text.Text + "',@foto,'" + [Link] + "','" +
[Link]("yyyy-mm-dd H:mm:ss") +"')",
[Link](img_event.Uid));
[Link]("Publicado com sucesso", "", [Link],
[Link]);
}
}
51
16. Conclusão
Concluimos que é possivel a feitura de sistema de gestão escolar
sem um elevado custo, ou gastos.
E que esse facto pode vir a ser util na hora da comercialização
deste produto, porque investiu-se mais em esforço fisico do que gastos
financeiros, com a feitura deste trabalho vimo-nos satisfeitos, porque ele
podera atender todas as necessidades da escola. Visto que há nossa
instituição o sistema de impreensão é muito demorado o nosso projecto têm
também como objectivo automatizar o processo de impreensão de certificado.
E sentimo-nos satisfeitos porque o nosso projecto pode efectuar esta
funcionalidade de maneira segura e rapida.
Infelizes ficamos nós porque a ideia era adaptar o projecto para
que possa fazer a gestão de qualquer escola publica ou privada, vendo que o
tempo era escasso foi feito o cancelamento desta ideia.
Para a feitura deste trabalho foi feito um grande estudo sobre
sistemas, e também como se faz a gestão escolar em si.
52
17. Glossário
Sistema – é um conjunto de softwares integrados e inter-ligados
entre si, formando uma plataforma de aplicativos, que possam atender as
necessidades do cliente.
Software – é uma sequencia de instruções a serem seguidas ou
executadas , na manipulação ou redireccionamento de um dado ou
informação ou acontecimento.
Sistema de gerenciamento escolar – é a ferramenta mais
adequada para gerenciar as demandas de uma escola, atravez dele os
gestores conseguem acompanhar o desempenho de suas equipes em
qualquer hora, e pode actuar para corrigir futuros erros previstos pelo
sistema.
Base de dados – é o conjunto de arquivos relacionados entre si
com registros sobre pessoas, lugares, ou coisas.
- São colecções organizadas de dados que se relacionam de
forma a criar algum sentido e dar mais eficiência durante uma pesquisa ou
estudo.
Gestão escolar – é uma das áreas de atuação profissional na
educação destinada a cuidar do planejamento, organização, monitoramento,
liderança, orientação e avaliação de processos necessários à efectividade das
ações educacionais orientadas para a promoção da aprendizagem e
formação dos alunos.
53
18. Bibliográfia
[Link]
[Link]
[Link]
application-which-is-allready-in-running-state
[Link]
[Link]
%3A710890&f[1]=ft%3A710891&f[2]=ft%3A710892&f[3]=ft
%3A910081&f[4]=at%3A913900&f[5]=at%3A914190&sort=bestseller
[Link]
[Link]
controls-not-to-be-blurred-in-viewbox-when-stretched
[Link]
49269edb3ed4/combobox-dropdown-not-showing?forum=wpf
[Link]
046c2320d648/wpf-datagrid-combobox-selected-item-problem?forum=wpf
[Link]
[Link]
[Link]
[Link]
54