0% acharam este documento útil (0 voto)
2 visualizações54 páginas

Relatorio

O documento é um projeto de gestão escolar, dedicado a Deus e a familiares, amigos e professores. Agradece a todos que contribuíram para a realização do projeto, destacando o apoio de colegas e orientadores. O projeto inclui a elaboração de um sistema de gerenciamento escolar, com desenvolvimento de uma base de dados e programação utilizando diversas ferramentas e linguagens, visando melhorar a gestão de instituições de ensino.

Enviado por

daltonreis8
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações54 páginas

Relatorio

O documento é um projeto de gestão escolar, dedicado a Deus e a familiares, amigos e professores. Agradece a todos que contribuíram para a realização do projeto, destacando o apoio de colegas e orientadores. O projeto inclui a elaboração de um sistema de gerenciamento escolar, com desenvolvimento de uma base de dados e programação utilizando diversas ferramentas e linguagens, visando melhorar a gestão de instituições de ensino.

Enviado por

daltonreis8
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

1.

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

Ilustração 1 Tela de Login.............................................................................8


Ilustração 2 Sub Pagina Inicial....................................................................13
Ilustração 3 Botão Mensagem.....................................................................15
Ilustração 4 Sistema de Mensagem.............................................................17
Ilustração 5 Tela de Inscrição......................................................................19
Ilustração 6 Segunda Étapa da tela de inscrição.........................................20
Ilustração 7 Imprimir Lista de candidatos...................................................25
Ilustração 8 Imprimir lista de candidatos negados......................................27
Ilustração 9 Tela de Inscrição......................................................................28
Ilustração 10 Cadastro de Encarregados.....................................................29
Ilustração 11 Visualizar Encarregados........................................................31
Ilustração 12 Tela de Enquadramento.........................................................32
Ilustração 13 Listagem de Alunos...............................................................34
Ilustração 14 Tela de cadastro de curso......................................................35
Ilustração 15 Requisitos do curso................................................................36
Ilustração 16 Visualizar cursos...................................................................38
Ilustração 17 Tela de cadastro de bloco......................................................39
Ilustração 18 Tela de cadastro de sala.........................................................40
Ilustração 19 Tela de cadastro de sala multiplo..........................................42
Ilustração 20 Visualizar sala.......................................................................43
Ilustração 21 Cadastro de professor............................................................44
Ilustração 22 Disciplinas lecionadas...........................................................45
Ilustração 23 Tela de cadastro de disciplina................................................46
Ilustração 24 Visualizar professores...........................................................48
Ilustração 25 tela de cadastro de coordenadores.........................................49
Ilustração 26 Visualizar coordenadores......................................................50
Ilustração 27 Listar eventos.........................................................................51
Ilustração 28 Publicar eventos.....................................................................52

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.

5. Tela de login/Área de segurança


Começamos logo a debater como seria o design da nossa tela
principal em outras palavras a tela de login a segurança do nosso aplicativo,
depois de tantos debates demos como encerrado o nosso design da tela de login,
que o resultado sera apresentado na imagem abaixo.

Ilustração 1 Tela de Login

E dai chega a hora da programação, que fara com que os botões


apresentados na tela de login funcionam correctamenta, para poder acessar os
dados da base de dados é necessario uma conexão entre a nossa BD e o nosso
aplicativo, e para isso aprendemos uma nova forma de conexão para simplificar

7
execuções de comandos Sql, ou seja uma classe podemos chamar de conecção
externa e para isso utilizamos os seguintes codigos:

//Codigos padrões do visual studio


using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace Gestãoescolar
{

//classe de conexao para simplificar execuções de comandos sql


class Conexao
{

string bd = "server=localhost; userid=root; database=gestaoescolar;pwd=";


//Função que retorna uma conexao única
public MySqlConnection con()
{

//variável de conexao
MySqlConnection cn = new MySqlConnection(bd);
//abrindo conexão
[Link]();

//retornando a conexão na funcão


return cn;
}

//método que permite executar sql

public void exe_sql(string sql)


{
//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);

//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();

//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);

[Link]("@foto", [Link]).Value = bt;

//executando o comando

[Link]();

//fechando a conexão
[Link]();

//Função que retorna um datareader apartir do parámetro indicado


public MySqlDataReader consulta(string sql)
{

//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]();

//retornando o datareader único


return cx
}

public DataTable Adaptador(string sql)


{

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

MySqlDataAdapter dt = new MySqlDataAdapter(sql, cn);

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]();
}

Dando sequencia a parte mais complicada da tela de login, por a funcionar o


botão de login é esse botão ou as instruções que nele estão contido farão a
consulta a Bd e também que nos levara a nossa sub tela principal, este botão vai
fazer uma consulta a BD para podermos saber se os dados inseridos nos campos
estão cadastrados na BD, ele ira chegar também se por ventura o usuario não
preencher os campos mas mesmo assim pressionar o botão de login e para isso
utilizamos o seguinte codigo:
private void bt_entrar_Click(object sender, RoutedEventArgs e)
{
//Chamando o evento login que contém as instruções necessarias
login();
}

Aqui iremos monstrar os codigos do evento login


public void login()
{
txt_invalide_login.Focus();
//desabilitar os botões e as caixas de texto(campos)
bt_entrar.IsEnabled = false;
txt_pass.IsEnabled = false;
txt_user.IsEnabled = false;

//ver se as referidas textbox tem dados


if (txt_user.Text == "" || txt_pass.Password == "")
//se uma delas não têm execute o código abaixo
{
//mensagem
[Link]("Um dos campos encontra-se vazio", "", [Link],
[Link]);
bt_entrar.IsEnabled = true;
txt_pass.IsEnabled = true;
txt_user.IsEnabled = true;
}

10
//se todas têm, execute o código abaixo
else
{

//varíavel de dados (datareader)


MySqlDataReader cx;
//retornando valor da função consulta da classe conexao

string username1, password1;


username1 = txt_user.Text;
password1 = txt_pass.Password;

//para acelerar a execução do codigo


[Link] th = new [Link](new
[Link](() =>
{
//try significa teste
//então ele vai fazer um teste do codigo que esta dentro do seu campo de instrução
//e se esse codigo der algum erro ele fara com que não haja paragem no programa
try
{
cx = [Link]("Select* from utilizador where estado=1 and Username='" +
username1 + "' and Senha='" + password1 + "'");

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]();
}
}

6. Sub pagina principal


Dai damos como encerrado a feitura da nossa tela de login dai
passamos para a fase seguinte que era elaborar a nossa sub pagina inicial que
passamos um dia a elaborar essa tela e não se chegou há nenhuma conclusão,
então tevisse a ideia de cada um elaborar uma tela em casa e depois fundiremos
“todas as ideias”. E o resultado disso foi o seguinte:

12
Ilustração 2 Sub Pagina Inicial

No top da nossa tela temos uma simples imagem de lado da


imagem temos o nome do utilizador que sai da BD e também a área que ele se
encontra e dai surge a pergunta como isso acontece o codigo escrito em baixo
colocamos num evento chamado evento load que executa os codigos sempre que
a tela carregar.
public void Buscar_dados_utilizador()
{
Conexao cox = new Conexao();
MySqlDataReader cx;
[Link] th = new [Link](new
[Link](() => {
try {
//Fazendo uma consulta a base de dados
cx = [Link]("Select Area_Esc,Nome from utilizador where idutilizador='" +
[Link]() + "'");

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]();

Por baixo da imagem temos ai parte do nosso sistema de


mensagem que era suposto ser um sistema de notificação mais com mais
investigações descobriu-se que um sistema de notificação não é assim que
funciona e então fez se pequenos ajustes para passar a ser um sistema de
mensagens entre os usuarios.
Dai surge a pergunta como funciona essa troca de informações
entre o emisor e o receptor, isso foi um trabalho muito dificil de se fazer levou
dias e dias para se finalizar isso.
Criou-se uma nova tela que seria utilizada para escrever o texto
da mensagem, seleccionar o destinatario e enviar arquivos, para irmos para essa
tela basta clicarmos no botão mensagem que encontra-se na barra de menus do
nosso aplicativo:

Ilustração 3 Botão Mensagem

Nesse botão foi usado o seguinte codigo:


private void bt_notificar_Click(object sender, RoutedEventArgs e)
{
[Link] th = new [Link](new
[Link](() =>
{
//Enviando os nomes dos usuarios a combobox

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();
}

Codigo de enviar os nomes dos usuarios para a combobox apresentada na


imagem abaixo(tela de mensagens):
public void adicionar_utilizadores()
{

Conexao cox = new Conexao();


MySqlDataReader cx;
//Fazendo consulta a BD
cx = [Link]("Select* from utilizador");
[Link](() =>
{
//Limpar os items que já se encontram na combobox
//Se não vai haver retundancia de dados
txt_dest_envnot.[Link]();
});

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:

private void Bt_Ad_Copy_MouseUp(object sender, MouseButtonEventArgs e)


{
if (txt_dest_envnot.Text != "")
{
ls_dest_not.[Link]((txt_dest_envnot.SelectedItem as utlizador));
txt_dest_envnot.[Link](txt_dest_envnot.SelectedItem);
}
}

15
Ilustração 4 Sistema de Mensagem

Do lado direito da lista de destinatarios temos o nosso botão


limpar que serve para limpar o diretorio do ficheiro que nós escolhemos, a
instrução usada para fazer isso é a seguinte:
private void clean_MouseUp(object sender, MouseButtonEventArgs e)
{
txt_msg_file.Text = "";
}

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;
}

E a parte crucial do sistema de mensagem, o botão que envia a


mensagem para o destinatario este botão contém há seguintes intruções:
if (ls_dest_not.[Link] < 1 || txt_cad_text_not.Text == "")
{
[Link]("Dados em Falta", "", [Link],
[Link]);

}
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;

DateTime data = new DateTime();


data = [Link];
cox.Cad_com_foto("INSERT INTO
mensagem(texto,data,FK_utilizador,extensao,bin,nome_bin) values ('" + txt_cad_text_not.Text + "',
'" + [Link]("yyyy-MM-dd H:mm:ss") + "','" + [Link] + "','" + extensaoo +
"',@foto,'" + nome_file + "')", file);

MySqlDataReader cx;

cx = [Link]("select* from mensagem where data='" + [Link]("yyyy-MM-dd


H:mm:ss") + "' and FK_utilizador='" + [Link] + "'");

string id_msg = "";

while ([Link]())
{
id_msg = cx["idmsg"].ToString();
}

foreach (utlizador dado in ls_dest_not.Items)


{
cox.exe_sql("INSERT INTO msg_utliza(FKmsg,FKutilizador) values ('" + id_msg +
"'," + [Link] + ")");

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:

Ilustração 5 Tela de Inscrição

Depois de preenchido os campos da primeira etapa que é a etapa


das informações do candidato, vamos para a segunda etapa que sera
apresentado na imagem a baixo:

18
Ilustração 6 Segunda Étapa da tela de inscrição

Como sabemos o aluno para entrar no ensino medio precissa do


certificado do ensino secundario para que se possa ver as notas dele e saber se
de acordo as notas ele pode ir para o curso pretendido dai temos essa tela que
nos permite efectuar essa operação, começarei com o botão adicionar que tem a
função de adicionar ou calcular a media de cada disciplina, e que de seguida
envia para a nossa lista, este botão funciona com o seguinte codigo:
private void bt_cad_disc_ins_Click(object sender, RoutedEventArgs e)
{
if (txt_nota7.Text == "" || txt_nota8.Text == "" || txt_nota9.Text == "" || txt_disc_ins.Text ==
"") {

} 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;

disc_ins.[Link](new media { nota = media1, disciplina =


[Link](txt_disc_ins.SelectedItem) });
txt_disc_ins.[Link](txt_disc_ins.SelectedItem);

txt_nota7.Text = "";
txt_nota8.Text = "";
txt_nota9.Text = "";

19
}
}

}.

Se no caso de se adicionar uma disciplina ou nota por engano ou


errada temos um botão que tem a função de eliminar a disciplina que se
pretende, o botão eliminar disciplina que contém as seguintes instruções:
private void bt_elim_media_MouseUp(object sender, MouseButtonEventArgs
e)
{

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
{

cx = [Link]("select count(nome) from


inscricao where fk_ano='" + idano + "' and resultado=1 ");

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 + "'");

List<bool> ava = new List<bool>();

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);
}

}
}

foreach (bool respo in ava)


{
if (respo == 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 + "'");

List<bool> ava1 = new List<bool>();

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);
}

}
}

foreach (bool respo in ava1)


{
if (respo == false)
{
res = 0;
}
}

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") + "' )");

[Link] = "Seja bemvindo";


[Link]("inscrição feita com
sucesso", "", [Link], [Link]);

foreach (media md in disc_ins.Items)


{
txt_disc_ins.[Link]([Link]);
}
disc_ins.[Link]();

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:

Ilustração 7 Imprimir Lista de candidatos

E este formulario vêm com a funcionalidade de impreensão, ou


seja podemos imprimir a lista de alunos que passaram na inscrição e este botão
funciona com os seguintes codigos:
private void bt_print_apto_Click(object sender, RoutedEventArgs e)
{
bt_print_apto.IsEnabled = false;
[Link] = "Criando documento...";

[Link](() =>
{

string fileName =
[Link]([Link]) + @"\\
alunos_aceites.docx";
var doc = [Link](fileName);

List<lista_alunos_aptos> ls = new List<lista_alunos_aptos>();

24
MySqlDataReader cx;
Conexao cox = new Conexao();

cx = [Link]("Select [Link],[Link],[Link] from


curso,inscricao where [Link] = 1 and fk_ano='" + idano + "' and [Link] =
[Link] order by [Link], [Link] ASC");

int numero = 0;

while ([Link]())
{

[Link](new lista_alunos_aptos { curso = cx["descricao"].ToString(), Genero =


cx["genero"].ToString(), nome = cx["nome"].ToString() });
numero++;
}

[Link] t = [Link](numero + 1, 3);


[Link] = [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]());
}

E também temos uma lista para aqueles que não passaram na


inscrição:

Ilustração 8 Imprimir lista de candidatos negados

É de extrema importancia que os alunos aptos na inscrição


façam a matricula, então fio criada uma tela que cuida dessa funcionalidade:

26
9. Formulario de matricula

Ilustração 9 Tela de Inscrição

Depois de preencher os campos o usuario deve clicar no botão


proximo que nos levara para a segunda étapa da matricula, se o usuario não
encontrar os dados do pai ou da mãe ou do encarregado ele pode ir fazer um
novo cadastramento, clicando no botão novo que contém as seguintes instruções:
private void bt_novo_enca_MouseUp(object sender, MouseButtonEventArgs e)
{
[Link]();

27
}

E sempre que se pressionar o botão sera mostrado essa tela de


cadastramento de encarregados/responsaveis:

9.1 Cadastro de encarregado

Ilustração 10 Cadastro de Encarregados

Clicando no botão cadastrar, cadastra-se um novo responsavel e


ira se executar a seguinte instrução:
private void bt_cad_pais_matr_Click(object sender, RoutedEventArgs e)
{
if (txt_matr_pai.Text == "" || txt_telemovel_pais.Text == "" || cb_pais_genero.Text == "")
{
[Link]("Dados em Falta", "", [Link],
[Link]);
}
else
{
Conexao cox = new Conexao();

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 = "";

}
}

E como é que sabemos que este encarregado foi cadastrado, é só


voltarmos a nossa sub pagina inicial e pressionar-mos o botão encarregado que
sera apresentado essa tela de visualização de encarregados existentes ou
cadastrados no sistema:

29
Ilustração 11 Visualizar Encarregados

Voltando a nossa tela de matricula, depois de se preencher todos


os campos o usuario deve clicar no botão proximo que sera apresentado a nossa
tela apresentada na imagem abaixo:

30
Ilustração 12 Tela de Enquadramento

Esta tela tem como objectivo fazer a selecção da turma do aluno


de acordo ao curso que ele passou na inscrição, o nosso botão matricular
executa esta funcionalidade com os seguintes codigos:
private void bt_matricular_Click_1(object sender, RoutedEventArgs e)
{
if (cb_turm_matr.Text == "" || cb_per_turm_Copy.Text == "")
{
[Link]("Dados em Falta", "", [Link],
[Link]);
}
else
{

Conexao cox = new Conexao();


MySqlDataReader cx;

cx = [Link]("SELECT count(idmatricula),capacidade FROM matricula,turma,sala


where [Link]=[Link] and [Link]=[Link] and [Link]=1 and
[Link]='" + (cb_turm_matr.SelectedItem as turma).id + "'");
int numero_alunos = 0, capacity = 0;
while ([Link]())
{

31
numero_alunos = Convert.ToInt32(cx[0].ToString());
capacity = Convert.ToInt32(cx[1].ToString());
}
[Link]();

if (numero_alunos >= capacity)


{
[Link]("Turma Sem espaço", "", [Link],
[Link]);

}
else
{

byte[] imgbyte;
imgbyte = null;
string temfoto = "0";
if ([Link] != "")
{
imgbyte = [Link]([Link]);
temfoto = "1";
}

cox.Cad_com_foto("INSERT INTO aluno


(morada,bi,FKinscricao,foto,N_Proc,isfoto,IdEncarregadoo,FKPai,FKMae) values ('" +
txt_matr_morada.Text + "', '" + txt_matr_bi.Text + "','" + (cb_aluno_matricula.SelectedItem as
alunos_aptos).id + "',@foto, '" + txt_matr_proc.Text + "','" + temfoto + "','" +
(cb_encarregado_matr.SelectedItem as encarregado).id + "','" + (cb_pai_matricular.SelectedItem as
encarregado).id + "','" + (cb_mae_matricular.SelectedItem as encarregado).id + "')", imgbyte);
cox.Cad_Processo(Convert.ToInt32([Link]), "Matriculou o(a) aluno(a) " +
cb_aluno_matricula.Text);
cx = [Link]("SELECT Idaluno FROM aluno where bi='" + txt_matr_bi.Text +
"'");
int idaluno = 0;
while ([Link]())
{
idaluno = Convert.ToInt32(cx[0].ToString());
}
[Link]();

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 + "')");

[Link]("Cadastrado com sucesso", "", [Link],


[Link]);
cb_per_turm_Copy.Text = "";
cb_turm_matr.Text = "";
cb_encarregado_matr.[Link]();
cb_encarregado_matr.Text = "";
carregar_encarregados("");
cb_aluno_matricula.Text = "";
txt_matr_morada.Text = "";
txt_matr_bi.Text = "";
txt_matr_proc.Text = "";

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();
}
}
}

Claro que depois do aluno fazer matricula o usuario deve ter a


possiblidade de ver se realmente esse aluno foi cadastrado no sistema, ou ver
todos alunos cadastrados no sistema e é este o objectivo desta tela que sera
mostrada agora:

Ilustração 13 Listagem de Alunos

Esta tela sera apresenta sempre que clicarmos no botão aluno na


barra de menus da sub pagina principal

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:

Ilustração 14 Tela de cadastro de curso

Esta funcionalidade foi dividida em dua etapas a primeira é esta


que esta a ser apresentada na imagem acima e a segunda sera apresentada
posteriormente.
A primeira étapa consiste no preenchimento dos dados basicos
de um curso, e na ligação das notas do aluno com o curso.
A nossa segunda étapa que vai ser apresentada na imagem
abaixo, de acordo ao nosso levantamento de requisitos todos os cursos devem ter
disciplinas do ensino secundario que sirvam como base de notas para que o

34
aluno entre nesse mesmo curso, então a nossa segunda étapa foca-se mais nesse
sentido.

Ilustração 15 Requisitos do curso

Depois de seleccionada a disciplina e a nota que se pretende


fazer como referencia o usuario devera clicar no botão adicionar que enviara os
dados para uma lista, e de seguida pressionar o botão cadastrar que tem as
seguintes instruções:
private void bt_cad_curso_Click(object sender, RoutedEventArgs e)
{
if (txt_des_cur.Text == "" || txt_ar_cur.Text == "" || txt_cor_curs.Text == "" ||
curso_recurso1.Text == "" || curso_recurso2.Text == "")
{
[Link]("Um dos campos encontra-se vazio", "", [Link],
[Link]);
}
else
{

Conexao cox = new Conexao();

35
int IsRecurso10 = 0;
int IsRecurso11 = 0;
int IsRecurso12 = 0;
int IsRecurso13 = 1;

if (curso_recurso0.Text == "Não tem")


{
IsRecurso10 = 0;

}
else
{
IsRecurso10 = 1;

if (curso_recurso1.Text == "Não tem")


{
IsRecurso11 = 0;

}
else
{
IsRecurso11 = 1;

if (curso_recurso2.Text == "Não tem")


{
IsRecurso12 = 0;

}
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;

cx = [Link]("select IdCurso from curso where estado=1 and descricao='" +


txt_des_cur.Text + "'");

while ([Link]())
{

foreach (requisitos dado in [Link])


{

36
cox.exe_sql("INSERT INTO requ_inscricao(Nome_Disc,nota_min,FK_Cursonm)
values ('" + [Link] + "', '" + [Link] + "'," + cx["IdCurso"].ToString() + ")");

[Link]("Cadastrado Com Sucesso", "", [Link],


[Link]);
adicionar_curso("");
foreach (requisitos dado in [Link])
{
txt_car_curs_disc.[Link]([Link]);
}
[Link]();
txt_cad_cur_nota.Text = "";
txt_car_curs_disc.Text = "";
curso_recurso0.Text = "";
curso_recurso1.Text = "";
curso_recurso2.Text = "";
txt_des_cur.Text = "";
txt_ar_cur.Text = "";
txt_cor_curs.Text = "";
}
}

O Usuario pode também visualizar todos os cursos cadastrados,


ou seja todos os cursos existentes na instituição com a seguinte tela:´

Ilustração 16 Visualizar cursos

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:

11. Cadastramento de bloco

Ilustração 17 Tela de cadastro de bloco

Descrição do bloco referi-se ao tipo de alfabetização que lhe


sera atribuido.
O botão cadastrar funciona com as seguintes instruções:
private void bt_cad_bloco_Click(object sender, RoutedEventArgs e)

if (txt_Descr_Bloco.Text == "")
{

[Link]("Um dos campos encontra-se vazio", "", [Link],


[Link]);

}
else
{
Conexao cox = new Conexao();

cox.exe_sql("INSERT INTO bloco(Descricao) values ('" + txt_Descr_Bloco.Text + "')");


[Link]("Cadastrado Com Sucesso", "", [Link],
[Link]);
txt_Descr_Bloco.Text = "";
adicionar_bloco("");
}
}

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:

Ilustração 18 Tela de cadastro de sala

A nossa tela de cadastramento de salas foi dividida em modulos,


o primeiro modulo que encontra-se na imagem de cima cadastra uma sala em
um bloco de cada vez e o segundo cadastra multiplas salas em um bloco de uma
vez.

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) => {

Conexao cox = new Conexao();


cox.exe_sql("INSERT INTO sala(n_sala,capacidade,Fk) values ('" + txt_n_sala.Text +
"', '" + txt_n_carteira.Text + "','" + (cb_blocos.SelectedItem as bloco).id + "')");
[Link]("Cadastrado Com Sucesso", "", [Link],
[Link]);
adicionar_salas("");
txt_n_carteira.Text = "";
txt_n_sala.Text = "";
cb_blocos.SelectedItem = "";

}, [Link]());

}
}

Por baixo encontramos o nosso segundo modulo que cadastra


multiplas salas de uma vez:

40
Ilustração 19 Tela de cadastro de sala multiplo

Depois de seleccionar o numero da sala inicial e o final, por


exemplo:
Já existe da sala 1 até 14
O Usuario pode cadastrar da sala 15 até sala 26, onde 15 sera a
numero da sala inicial e 26 o numero da sala final, a tela apresentada abaixo
permite-nos visualizar todas as salas existentes na instituição, ou seja, todas as
salas cadastradas no sistema.:

41
Ilustração 20 Visualizar sala

13. Cadastramento de professores


Dando continuidade, o quê que seria uma instituição só com
alunos e sem funcionarios, bem dizer, professores. Claro que não faz sentido
nenhum então esta tela de cadastramento de professores visa evitar exister uma
escola sem professores.

42
Ilustração 21 Cadastro de professor

Esta funcionalidade também foi dividida em duas etapas, a


primeira é os dados pessoais, e a segunda digamos que habilidades como
professor ou seja as disciplinas que ele pode lecionar.
Depois de preencher-se os campos da primeira étapa segui-se
para a segunda étapa, apresentado na imagemn abaixo:

43
Ilustração 22 Disciplinas lecionadas

Temos ai o campo disciplina se no caso que a disciplina que ele


leciona não encontra-se registado no sistema pode-se fazer um novo registo
dessa nova disciplina clicando no botão novo, e sera aberto a form de cadastro
de disciplina:

Ilustração 23 Tela de cadastro de disciplina

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

Voltando ao professor, depois de preencher os campos da


segunda etapa pressiona-se o botão cadastrar que contém o seguinte codigo:
private void bt_cad_prof_Click(object sender, RoutedEventArgs e)
{
if (Convert.ToInt32(ano) - [Link](txt_prof_ins.Text).Year < 18 ||
[Link](txt_prof_ins.Text).Year > Convert.ToInt32(ano))
{
[Link]("Data Impossivel", "", [Link],
[Link]);

}
else
{

if (txt_prof_cad.Text == "" || cb_gen_prof.Text == "" || txt_end_prof.Text == "" ||


txt_tel_prof.Text == "" || txt_bi_prof.Text == "")
{
[Link]("Os campos encontram-se vazio", "", [Link],
[Link]);
}
else
{
Conexao cox = new Conexao();

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;

cx = [Link]("select* from Professor where " + Estados + " and nome='" +


txt_prof_cad.Text + "'");

45
while ([Link]())
{

foreach (lecciona dado in disc_prof.Items)


{

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 = "";
}
}
}

Depois de cadastrar o professor é só verificarmos a sua existencia


na nossa tela de visualização de professores:

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:

Ilustração 25 tela de cadastro de coordenadores

Este botão cadastrar funciona com o seguinte codigo:


private void bt_cad_cord_Click(object sender, RoutedEventArgs e)
{
if (txt_nome_cord.Text == "" || txt_gen_cord.Text == "" || txt_tel_cord.Text == "" ||
txt_end_cord.Text == "" || txt_bi_cord.Text == "")
{
[Link]("Um dos campos encontra-se vazio", "", [Link],
[Link]);
}
else
{
Conexao cox = new Conexao();
cox.exe_sql("INSERT INTO cordenador(nome,genero,endereco,telefone,bi) values ('" +
txt_nome_cord.Text + "','" + txt_gen_cord.SelectedItem + "', '" + txt_end_cord.Text + "', '" +
txt_tel_cord.Text + "', '" + txt_bi_cord.Text + "')");
[Link]("Cadastrado Com Sucesso", "", [Link],
[Link]);
adicionar_corednadores("");
txt_nome_cord.Text = "";
txt_gen_cord.Text = "";
txt_tel_cord.Text = "";

48
txt_bi_cord.Text = "";
txt_end_cord.Text = "";
}
}

Podemos também verificar a existencia desse coordenador depois de cadastrado,


e isso é feito sempre que clicarmos no botão coordenador da barra de menu, ira
ser apresentado essa tela:

Ilustração 26 Visualizar coordenadores

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.

Ilustração 27 Listar eventos

Na tela de cima podemos visualizar os eventos e ver com mais


detalhes o mesmo, na tela apresentada há baixo, É onde o usuario pode cadastrar
os eventos que vão decorrer nas instituições:

50
Ilustração 28 Publicar eventos

O nosso botão publicar registara o evento que o usuario


pretende com as seguintes instruções:
private void bt_Matricular1_Copy_Click(object sender, RoutedEventArgs e)
{
if(event_text.Text=="" || event_titulo.Text =="" || img_event.Uid == "") {

[Link]("Dados em Falta", "", [Link],


[Link]);

}
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

Você também pode gostar