Fabricio Breve - Página Pessoal
Português Português   English English
www.fabriciobreve.com
         
Informações Gerais
Publicações
Currículo Lattes
Trabalhos Acadêmicos
Softwares
Links
Links
Análise de Sinais e Sistemas (UFSCar)
Teoria da Computação (EEP)
PHP (SENAC)
Banco de Dados I (FSL)
Redes de Computadores (FSL)
Laboratório de Programação (FSL)
Laboratório de Redes de Computadores e Sistemas Operacionais (FSL)
Sistemas Orientados a Objetos (UNESP)
Análise de Sistemas (UNESP)
Tópicos: Computação Avançada (UNESP)
Organização de Computadores (UNESP)
Redes de Computadores (UNESP)
Sistemas Operacionais II (UNESP)
Computação Inspirada pela Natureza (UNESP)

Google Scholar ORCID iD icon
 

NOTICE: This page is no longer mantained. Please check the new home page.

Relatório de Estágio

 

Nome: Fabricio Aparecido Breve                                   nº 16                      3º PD"A"

Empresa: Ação Educacional Claretiana

Tema desenvolvido: Sistema de Páginas para Internet

 

Índice

 

Departamento............................................................................................................................................................... 2

Histórico da Faculdade............................................................................................................................................... 2

Organograma da Empresa.......................................................................................................................................... 4

Análise com relação à Funcionalidade do Departamento................................................................................... 5

D.F.D do C.P.D das Faculdades Claretianas........................................................................................................... 7

 Modular...................................................................................................................................................................... 14

D.F.D Sistema Internet.............................................................................................................................................. 15

Macro Fluxo do Sistema........................................................................................................................................... 16

Macro Fluxo da verificação de senhasVisão Geral do Sistema........................................................................ 17

Escolha da Linguagem de Programação............................................................................................................... 19

Identificação das Variáveis..................................................................................................................................... 20

Identificação das funções........................................................................................................................................ 22

Viabilidade e Implantação do sistema.................................................................................................................. 24

Lay Out de Arquivos................................................................................................................................................. 25

Especificações Técnicas........................................................................................................................................... 28

Operação e cuidados com relação ao sistema..................................................................................................... 29

Transcrição dos Programas...................................................................................................................................... 31

Lay-Out de Telas........................................................................................................................................................ 45

 


Departamento

 

O departamento escolhido para o estágio foi o Departamento de Informática.

            Desenvolvendo como função principal a de Suporte e Manutenção. Trabalhando basicamente no CPD da Faculdade visando o seu perfeito funcionamento.

            As Faculdades Claretianas contam com 3 CPDs com 73 micros terminais em funcionamento, além dos micros que estão nos outros departamentos, mas, também ligados ao servidor principal.

            Os CPDs contam com dois servidores Novell 3.12 que serão brevemente atualizados para Novell 4 e provavelmente também Windows NT. Todos os computadores estão ligados diretamente a um Provedor Internet também mantido pelas Faculdades Claretianas.

            O principal ramo de atividade da empresa é o ensino.

            A quantidade de funcionários em março de 1997 era de:

·          A administração é composta por 46 funcionários.

·          Total de professores da Faculdade e do Colégio é de 72 funcionários.

·          Total de professores do primário e do pré é de 10 funcionários.

·          A TV Rio Claro é composta por 20 funcionários.

A obra é composta por 51 funcionários.

 

Histórico da Faculdade

 

Foi fundada em 15 de setembro de 1971, a Sociedade Rioclarense de Ensino Superior (mais tarde) Sociedade Rioclarense de Ensino, com objetivos essencialmente educacionais e sem fins lucrativos. Hoje esta sociedade ocupa lugar de destaque no cenário educacional do interior do Estado de São Paulo, principalmente em Rio Claro e cidades vizinhas.

No dia 07 de julho de 1972, publicou-se o decreto de autorização para funcionamento da Faculdade de Ciências Contábeis de Rio Claro - FACCO -, com o curso superior de Ciências Contábeis . O curso regular de Ciências Contábeis sempre foi destacado pelas Associações e Entidades de Classe da área de contabilidade do Estado de São Paulo.

Em janeiro de 1981, a Sociedade foi autorizada a manter a Faculdade de Tecnologia de Rio Claro - FATERC - com os cursos superiores de Planejamento Administrativo e Programação Econômica , Formação de Secretário e Construção Civil - Edifícios. Logo em seguida a entidade fundou o IPETERC - Instituto de Pesquisas Tecnológicas de Rio Claro, atuando na área da Construção Civil e do Planejamento.

Além dos cursos superiores a entidade mantém a Escola de 1o e 2o graus Colégio Integrado Universitário desde 1974, que possue os cursos profissionalizantes de Técnico em Contabilidade, Assistente de Administração, Secretariado, Patologia Clínica, Desenhista de Arquitetura, Desenhista de Agrimensura e Técnico em Processamento de Dados.

Além disso, a entidade mantém um canal de televisão, a TV RIO CLARO , canal 19, UHF, emissora educativa afiliada à TVE - Fundação Roquete Pinto - Ministério da Educação.

No dia 18 de janeiro de 1993 foi aprovado o Regimento Unificado das FACULDADES UNIDAS DE RIO CLARO, Escola de Educação Infantil 1o e 2o graus "Colégio Integrado Universitário de Rio Claro" e TV Rio Claro, canal 19 UHF, que passou para a Congregação dos Missionários Claretianos. A Congregação tem por objetivo fundamental a valorização do ser humano em seus aspectos cultural, científico, tecnológico e humanístico, através de sua criatividade, com competência e qualidade.

Este breve histórico mostra a missão da Sociedade Rioclarense de Ensino e a sua experiência no campo educacional e credencia a ampliar e universalizar suas atividades educacionais.

 


Organograma da Empresa

 


Análise com relação à Funcionalidade do Departamento

 


O setor de Informática das Faculdades Claretianas e do Colégio Integrado cresceu rapidamente nos últimos 6 meses.

            Isto acabou ocasionando um problema que é comum quando ocorrem crescimentos exagerados em pouca faixa de tempo, a falta de organização e planejamento para atender a demanda.

            Alguns problemas comuns são: falta de documentação necessária, volume de dados não controláveis, acesso a rede de computadores restrito, falta de licença para atender a todos os clientes.

            Muitos procedimentos novos que poderiam ser informatizados ainda estão sendo feitos pelo processo manual.

            Alguns procedimentos usados não são ainda os mais adequados ao funcionamento do CPD.

            No entanto, muitas soluções já foram criadas pelo setor, tais como utilização de 100 máquinas (clientes) ao mesmo tempo na rede, utilização do Windows 95 e do Windows 3.11 ao mesmo tempo na rede e na mesma máquina, instalação de softwares que atendem a necessidade de alunos e professores, disponibilização de Internet on-line p/ todos os computadores dos laboratórios, procedimentos de backup bastante eficientes.

            Em relação aos usuários administrativos estão sendo corrigidos pequenos problemas de acesso e disponibilizando alguns recursos tais como: e-mail para cada funcionário e professor da instituição, programas específicos que atendam melhor cada usuário, sistema de biblioteca on-line para qualquer usuário da rede.

            Várias providências e soluções estão sendo adotadas, tais como o software LanSchool para ajudar os professores nas aulas de Laboratório, estão sendo comprados softwares p/ administração e gerenciamento de redes.

            Acredito que no decorrer deste ano ainda haverão novas modificações visando melhorar a funcionalidade da rede.




D.F.D - C.P.D. - Faculdades Claretianas  (geral)

 

D.F.D - C.P.D. - Faculdades Claretianas (Sist. De Banco de Dados da Internet)

 

D.F.D - C.P.D. - Faculdades Claretianas (Sist da Internet)

 

D.F.D - C.P.D - Faculdades Claretianas (Sist. Administrativo - Acadêmico)

 

D.F.D. - C.P.D. - Faculdades Claretianas (Sist. Administrativo - Financeiro)

 

D.F.D - C.P.D. - Faculdades Claretianas (Sist. da Biblioteca)

 
 

Cópia

 

Cópia

 

Cópia

 

Cópia

 

 

 

Usuário

 

Consulta

 
Retângulo de cantos arredondados: CONSULTA

Consultar sobre o acervo da Biblioteca

ACERVO_CLARET

 

BIBUSU

 

BIBUSU

 
Retângulo de cantos arredondados: CADASTROU

Cadastra Usuários do Sistema Empréstimo

 

 

Usuário

 

Refer

 

BIBUSU

 

ACERVO_CLARET

 
Retângulo de cantos arredondados: EMPRÉSTIMO

Associa usuário ao acervo da Biblioteca

 

Usuário

 

Bibli

 

ACERVO_CLARET

 
Retângulo de cantos arredondados: CADATROL

Cadastra no Acervo da Biblioteca

 

Usuário

 

Ptécnico

 
Modular
Cubo: 1
Usuários

Biblioteca

 
Cubo: 1     Usuários

1.6.1

 
Cilindro: Elaborar informações de Livros, revistas e novas aquisições

Horários

 
Cubo: 1     Usuários

1.5.1

 
Cilindro: Elaborar horários de aulas da manhã, noite, dependências e plantão de dúvidas

Faculdade

 

1.4.2

 
Cilindro: Elaborar Calendário da Faculdade

Colégio

 
Cubo: 1     Usuários

1.4.1

 
Cilindro: Elaborar Calendário do Colégio

Pof. de E.F.

 
Cubo: 1     Usuários

1.3.1

 
Cilindro: EsportesCubo: 2     DiretorCubo:  1   UsuáriosCubo: 1.2     AlunosCubo: 1.1     Alunos

Faculdade

 

3

 

Colégio

 

2

 

1.1.2.1.1

 

 
Cilindro: Elaboração do Boletim

1.1.2

 
Cilindro: Boletins da Faculdade

1.1.1.1.1

 
Cilindro: Elaboração do Boletim

1.1.1

 
Cilindro: Boletins do Colégio

1.1.1.1

 

   1.1.2.1

 

1

 

Senhas

 
Cilindro: CGM e SenhaCilindro: CGM e Senha

1.6

 

 

1.5

 

1.4

 

 

1.33

 

1.2

 

1.1

 
Cilindro: AlunosCilindro: BibliotecaCilindro: Horário de aulas da manhã, noite, dependências, plantão de dúvidas.Cilindro: Calendário de aulas do Colégio e da FaculdadeCilindro: JornalCilindro: Comunicação escola-aluno

Página Inicial

·         Secretarias

·         Comunicação escolar

·         Jornal

·         Cal. Provas

·         Horário Aulas

·         Biblioteca

 

1

 
D.F.D Sistema Internet


1

 
Fluxograma: Disco magnético: Alunos

3

 
Cilindro: Elaborar Boletim

Senhas

 

1

 

2

 
Fluxograma: Disco magnético: Verificar SenhaCubo: 1
    Usuários
Macro Fluxo do Sistema

N

 

S

 
Fluxograma: Terminação: InícioRetângulo de cantos arredondados: Fim

Elaboração do Boletim

 
Fluxograma: Decisão: Se a Senha e CGM forem corretosFluxograma: Entrada manual: SenhaFluxograma: Entrada manual: CGMMacro Fluxo da verificação de senhas

Usuários

 
Fluxograma: Dados armazenados: Alunos ColégioFluxograma: Documento: Boletim 
Fluxograma: Dados armazenados: SenhasFluxograma: Dados armazenados: Alunos FaculdadeFluxograma: Terminação: PrincipalFluxograma: Terminação: JornalFluxograma: Terminação: BoletimFluxograma: Terminação: ComunicaçõesFluxograma: Terminação: FinanceiroFluxograma: Terminação: HistóricoFluxograma: Terminação: BibliotecaFluxograma: Terminação: SecretariasVisão Geral do Sistema


Escolha da Linguagem de Programação

 

A linguagem usada para programar o web site da Ação Educacional Claretiana foi HTML para criação das páginas em geral, com algumas implementações usando JAVASCRIPT para consistência em formulários, além de extensões Internet Explorer para criação de efeitos visuais.

Um dos conteúdos pedidos para o website foi um sistema em que fosse possível aos alunos consultarem seus boletins escolares usando a Internet. A instituição usa atualmente um sistema desenvolvido em Clipper para emitir os boletins em papel. Nosso objetivo era criar um programa capaz de montar um boletim na Internet usando os bancos de dados existentes do programa utilizado pela instituição.

A maneira mais utilizada de disponibilizar dados extraidos de bases de dados na Internet atualmente é o CGI. O programa CGI tem a função de ler os dados passados por um formulário em HTML e fornecer a saída no formato HTML a partir dos dados entrados.

Em servidores UNIX, as linguagens mais usadas para fazer o código CGI são Perl e C. Porém os nossos bancos de dados estavam no formato DBF (Dbase) que não é suportado por estas linguagens em UNIX. Optamos então por fazer um programa em Clipper e manter o sistema funcionando em um servidor Web Windows 95 ou Windows NT.

Qualquer linguagem de 32 bits poderia ser usada para fazer o programa CGI, porém o Clipper é uma linguagem de 16 bits e era necessário que houvesse uma ligação entre o programa em Clipper e a página HTML. Para tanto criamos um pequeno código em C++ que fizesse a leitura dos dados passados pelo usuário na página e os repassasse para o programa em Clipper. O programa em Clipper através de sucessivas buscas nos bancos de dados do sistema reúne os dados necessários no boletim e dá a saida no formato de páginas HTML. Estes dados são lidos então pelo programa em C++ e os repassa para o browser do usuário.

 

Identificação das Variáveis

 

Variáveis do programa em Clipper.

 

                Variáveis Públicas de Controle:

 

X - Controle de vetores diversos.

Y - Controle de vetores diversos.

INDVET - Índice do vetor de matérias. Quantidade de matérias.

 

         Variáveis Públicas de Memória Temporária de Dados

 

SIT - Resultado da verificação de existência do CGM e validade da senha.

ICGM - CGM digitado pelo aluno.

ISENHA - Senha digitada pelo aluno.

ANOATUAL - Variável que armazena o ano corrente de um banco de dados.

BIATUAL - Variável que armazena o bimestre corrente de um banco de dados.

ICURSO - Curso do aluno.

ITURMA - Turma do aluno que vem do banco de dados.

ISÉRIE - Série do aluno que do banco de dados.

INÚMERO - Número do aluno que vem do banco de dados.

INOME - Nome do aluno que vem do banco de dados.

 

Matrizes:

 

MATS = Nome da matéria por extenso.

         Mat= Matéria (Código).

         F1  = Faltas do 1º Bim.

         F2  = Faltas do 2º Bim.

         F3  = Faltas do 3º Bim.

         F4  = Faltas do 4º Bim.

         N1  = Notas do 1º Bim.

         N2  = Notas do 2º Bim.

         N3  = Notas do 3º Bim.

         N4  = Notas do 4º Bim.

MedBI   = Medias dos bimestres.

         N5  = Média de notas de cada matéria.

         F5   = Total de faltas.

 

Variáveis do Sistema em C++ e HTML

 

CGM = Cgm fornecido pelo usuário

Senha = Senha fornecida pelo usuário

 

 

 

 

Identificação das funções

 

Referentes ao programa em Clipper

 

Function  ABREBANCO(  )

         Abre e indexa os bancos de dados.

Function  VERIFICA (  )

         Verifica se o CGM existe e se a senha é válida no BD Aluno2.

Function  PEGANOTA(  )

         Pega todas as notas do aluno no BD Nota e armazena nas respectivas matrizes.

Function  ADNOTA (  )

         Adiciona as notas encontradas na matriz.

Function  PEGAMATE (  )

         Pega no BD Discip o nome de cada matéria.

Function SAIDA (  )

         Dá a saída dos dados p/ o programa em C.

Function CALCMEDIA (  )

         Calcula as média de cada matéria.

         Variáveis:

         Divisor=0  => Implementa em 1 cada vez que um novo valor é encontrado.

Function CALCMEDBI (  )

         Calcula a média de todos os bimestres.

         Variáveis:

         Matriz Divisor - Por quanto será dividido o número de notas de cada matéria.

Function  PEGADADOS (  )

         Pega os dados pessoais, curso, numero, serie do aluno no BD Aluno2.

Function CALCCHTOT (  )

         Calcula a carga horária total de cada matéria com base nos dados de Disepoca.DBF.

               

 

 


 

Viabilidade e Implantação do sistema

 

         O Sistema foi requerido para tornar mais fácil e rápido o acesso dos alunos ao boletim pela Internet, visto que ele só era obtido através da Secretaria do Colégio e da Faculdade.

         Levando-se em consideração que todos os aperfeiçoamentos propostos poderiam ser adaptados ao sistema atual sem maiores problemas, dentro de um tempo razoável, a um custo compensador e trazendo diversos benefícios aos pesquisadores.

         O sistema deverá ser implantado antes do término de 1997, pois a Instituição precisa rapidamente de uma página na Internet, pelo motivo de haver somente uma página referente ao Provedor de Acesso à Internet Claretianas, e não haver uma página que tratasse dos assuntos do Colégio Integrado e das Faculdades Claretianas.

                A página irá conter também informações sobre o Vestibular das Faculdades Claretianas, e este é mais um dos motivos pelo qual o sistema será implantado o mais rápido possível.A implantação do sistema é muito simples, devido ao motivo da Instituição já manter um provedor Internet no ar, bastando apenas disponibilizar as páginas em um domínio já adquirido anteriormente. A única parte do sistema que não pode ser imediatamente inclusa é a disponibilização dos boletins on-line, isto porque o sistema que monta o boletim deve rodar em um servidor Windows 95 ou Windows NT, e os servidores que a instituição possui rodam todos o sistema LINUX. Porém por um custo relativamente baixo será possível adicionar um servidor Windows para trabalhar em conjunto com os servidores LINUX e sem nenhuma dificuldade de instalação ou configuração.


 

 

Lay Out de Arquivos

 

A => Aluno2.DBF => Informações dos alunos - Pessoais, turma, etc.

 

Empresa: Ação Educacional Claretiana

Data:

Fls:

Sistema: Boletim de Aluno

Módulo:

Código:

Nome do Arquivo: Dados dos Alunos

FileName: Alunos2

Nome Mnemônico

Posição Inicial

Posição Final

Tamanho

Tipo

OBS:

Ano

 

 

4

Numeric

 

Semestre

 

 

1

Numeric

 

CGM

 

 

5

Numeric

 

Digito

 

 

2

Numeric

 

Turma

 

 

4

Character

 

Numero

 

 

3

Numeric

 

Nome

 

 

20

Character

 

Sobrenome

 

 

35

Character

 

Sexo

 

 

1

Character

 

Dtmat

 

 

8

Date

 

Situacao

 

 

2

Numeric

 

Dtsit

 

 

8

Date

 

Codaprov

 

 

1

Character

 

Senha

 

 

8

Character

 

 

 

 

 

B => Nota.DBF => Armazena as notas dos alunos.

 

Empresa: Ação Educacional Claretiana

Data:

Fls:

Sistema: Boletim de Aluno

Módulo:

Código:

Nome do Arquivo: Notas

FileName: Nota

Nome Mnemônico

Ano

Semestre

Turma

Numero

CGM

Discip

Epoca

TipoDisp

Nota

Conceito

Falta

Posição Inicial

 

 

 

 

 

 

 

 

 

 

 

Posição Final

 

 

 

 

 

 

 

 

 

 

 

Tamanho

4

1

4

3

5

4

2

1

6

2

2

Tipo

Numeric

Numeric

Character

Numeric

Numeric

Numeric

Numeric

Character

Numeric

Character

Numric

OBS:

 

 

 

 

 

 

 

 

2 decimais

 

 

 

E=> Curso.DBF  =>  Nomes dos cursos, etc.

 

Empresa: Ação Educacional Claretiana

Data:

Fls:

Sistema: Boletim de Aluno

Módulo:

Código:

Nome do Arquivo: Cursos

FileName: Curso

Nome Mnemônico

Curso

Grau

Nome

Nrseries

Discip

Oficial

Usual

Abrev

Parte

Posição Inicial

 

 

 

 

 

 

 

 

 

Posição Final

 

 

 

 

 

 

 

 

 

Tamanho

1

1

30

1

4

40

20

5

1

Tipo

Character

Numeric

Character

Numeric

Numeric

Character

Character

Character

Character

OBS:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F => Disepoca.DBF  => Cargas horárias de cada matéria em cada bimestre.

 

Empresa: Ação Educacional Claretiana

Data:

Fls:

Sistema: Boletim de Aluno

Módulo:

Código:

Nome do Arquivo: Disciplina por época

FileName: Disepoca

Nome Mnemônico

Ano

Semestre

Turma

Discip

Epoca

Descricao

Carga

Posição Inicial

 

 

 

 

 

 

 

Posição Final

 

 

 

 

 

 

 

Tamanho

4

1

3

4

2

5

3

Tipo

Numeric

Numeric

Character

Numeric

Numeric

Character

Numeric

OBS:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Especificações Técnicas

 

Por se tratar de um sistema de páginas para Internet, deverá sempre existir um  computador cliente e um servidor. A máquina servidora deve ser mantida pela instituição fornecendo acesso as máquinas clientes 24 horas por dia. A máquina cliente não precisará necessariamente estar na instituição, visto que os usuários  do sistema poderão ser quaisquer pessoas que venham a acessá-lo pela Internet.

 

Configuração mínima para o servidor:

·               IBM PC AT 386 SX ou compatível

·               4 Mb RAM

·               Disco rígido IDE mínimo 100 Mb

·               Monitor VGA Mono

·               Video 512 Kb RAM

·               Modem e/ou placa de rede p/ conexão c/ Internet

·               Sistema Operacional Windows 95 ou Windows NT

·               Qualquer programa para servidor WEB para Windows 95 conhecido no mercado (Ex: Folkweb)

 

 

Configuração recomendada para o servidor:

·               IBM PC Pentium 133 ou superior

·               16 Mb RAM

·               Disco rígido SCSI

·               Monitor SVGA Color

·               Vídeo 2 Mb RAM

·               Link rápido c/ Internet

·               Sistema Operacional Windows 95 ou Windows NT

·               Qualquer programa de servidor WEB para Windows 95 conhecido no mercado.

 

Configuração para máquina cliente:

 

A máquina cliente poderá ser qualquer máquina rodando um browser que suporte JAVASCRIPT e esteja conectada à Internet.

 

Preços das configurações:

        

Servidor Mínima: U$ 600,00

         Servidor Recomendada: U$ 2000,00

         Cliente: U$ 300,00

 

         A rapidez do sistema dependerá da configuração escolhida. É altamente recomendável usar uma configuração igual ou parecida com a "Configuração recomendada para máquina servidor" para obter uma boa velocidade. Usando a configuração mínima o sistema rodará sem maiores problemas, porém os usuários perderão mais tempo ao acessar as páginas do servidor e haverá também uma demora considerável na obtenção do boletim pela Internet.

 

Operação e cuidados com relação ao sistema

 

         Por medidas de segurança não deverão ser usados no programa boletim os bancos de dados originais do sistema da instituição. Não há problemas em se usar uma cópia destes, visto que  atualizações são feitas apenas a cada 2 meses aproximadamente. O uso dos bancos de dados originais poderia trazer grandes problemas no caso de um hacker conseguir entrar no sistema e alterar dados nessas bases originais.

         Para utilizar o sistema basta executar um servidor WEB em uma máquina Windows 95 ou NT. Os diretórios PAGINA e BOLETIM deverão estar preferencialmente no "root" deste servidor, ou em qualquer outro diretório, porém eles deverão sempre serem subdiretórios do mesmo diretório.

         Para executar o programa, basta chamar o endereço IP ou host da máquina servidora através do browser de uma máquina cliente.

         Como todo site na Internet, é necessário que se faça constantes atualizações na página. Sempre que houver mudança de bimestre do ano letivo deverão ser atualizados os bancos de dados do boletim e alterados o número do bimestre e/ou do ano corrente no banco de dados ANO.DBF para que funcione corretamente.


Transcrição dos Programas

 

Arquivo Ver_Bol.C

Linguagem: C++

 

#include <stdio.h>

static char ax[50];

static int c0,c1,l,i;

static char cgm[15],senha[15],com[55];

static char *cont(char var[15])

{

      static char ax2[20];

      l = ((int) strlen(var)) + 1;

      c0 = 0; c1 = 0;

      var = strstr(getenv("QUERY_STRING"),var);

      var = var+l;

      while(var[c0] != '&' && (c0 < ((int) strlen(var))) )

      {

             if (var[c0] != '+')

            {

                  ax2[c1] = var[c0]; c1=c1+1;

            }

                  c0=c0+1;

      }

      ax2[c1] = '\0';

      return ax2;

 }

 

 int main(void)

{                                                         /* Desativa a bufferizacao para stdin.*/

      setvbuf(stdin, NULL, _IONBF, 0);  /* Informa ao cliente o que vamos enviar */

      // printf("Content-type: text/html\n\n");

      i = sprintf(cgm,"%s",cont("cgm"));

      i = sprintf(senha,"%s",cont("senha"));

      i = sprintf(com,"boletim %s %s",cgm,senha); printf("");

 

  system(com);

 

  system("type saida.prn");

 

  printf("");

 

  return(0);

}

 

 

 

Arquivo: Boletim.prg

Linguagem: Clipper

 

******************************************************

* BOLETIM - GERADOR DE PAGINA HTML C/ TABELA BOLETIM *

* Versao 1.0 Beta -                                  *

******************************************************

 

PROCEDURE BOLETIM(PAR2,PAR1)

SET DELETED ON

SET ALTERNATE ON

SET ALTERNATE TO SAIDA.PRN

PUBLIC SIT

PUBLIC ICGM

PUBLIC ISENHA

PUBLIC ANOATUAL

PUBLIC BIATUAL

PUBLIC INDVET

DECLARE MATS[0],MAT[1],F1[1],F2[1],F3[1],F4[1],N1[1],N2[1],N3[1],N4[1],MEDBI[5]

ICURSO=SPACE(1)

ITURMA=SPACE(1)

ISERIE=SPACE(1)

INUMERO=SPACE(1)

INOME=SPACE(1)

F1[1]=SPACE(2)

F2[1]=SPACE(2)

F3[1]=SPACE(2)

F4[1]=SPACE(2)

N1[1]=SPACE(4)

N2[1]=SPACE(4)

N3[1]=SPACE(4)

N4[1]=SPACE(4)

ICGM=PAR1

ISENHA=PAR2

    ABREBANCO()

    VERIFICA()

    ?"</PRE>"

    ?'<BODY BACKGROUND="../pagina/imagens/tex22.gif">'

    ?'<CENTER><FONT COLOR="#FF0000"><H1>Boletim Individual</H1></FONT></CENTER>'

    DO CASE

    CASE SIT="A"

         PEGADADOS()

         PEGANOTA()

         PEGAMATE()

         DECLARE N5[INDVET],F5[INDVET]

         CALCMEDIA()

         CALCMEDBI()

         DECLARE CHTOT[INDVET],PRES[INDVET]

         CALCCHTOT()

         SAIDA()

    CASE SIT="B"

         ?"<P><B>Senha incorreta.</B></P>"

    CASE SIT="C"

         ?"<P><B>CGM nao cadastrado.</B></P>"

ENDCASE

?'<p align="center"><a href="../pagina/secretar/colegio/boletim.htm">'

?'<img src="../pagina/imagens/voltar.gif" border=0></a></p>'

?'</BODY>'

SET ALTERNATE OFF

 

********************************************************************

 

FUNCTION ABREBANCO()

         SELE A

         IF .NOT. FILE("ALUNO2.NTX")

            USE ALUNO2 SHARED

            INDEX ON CGM TO ALUNO2

         ELSE

             USE ALUNO2 INDEX ALUNO2 SHARED

         ENDIF

         SELE B

         IF .NOT. FILE("NOTA.NTX")

            USE NOTA SHARED

            INDEX ON STR(ANO,4)+STR(CGM,5)+STR(DISCIP,4)+STR(SEMESTRE,1) TO NOTA

         ELSE

             USE NOTA INDEX NOTA SHARED

         ENDIF

         SELE C

         USE ANO

         ANOATUAL=ANO

         BIATUAL=BIMESTRE

         SELE D

         IF .NOT. FILE("DISCIP.NTX")

            USE DISCIP SHARED

            INDEX ON DISCIP TO DISCIP

         ELSE

             USE DISCIP INDEX DISCIP SHARED

         ENDIF

         SELE E

         IF .NOT. FILE("CURSO.NTX")

             USE CURSO SHARED

             INDEX ON CURSO TO CURSO

         ELSE

             USE CURSO INDEX CURSO SHARED

         ENDIF

         SELE F

         IF .NOT. FILE("DISEPOCA.NTX")

            USE DISEPOCA SHARED

            INDEX ON STR(ANO,4)+TURMA+STR(DISCIP,4)+STR(EPOCA,2) TO DISEPOCA

         ELSE

             USE DISEPOCA INDEX DISEPOCA SHARED

         ENDIF

RETU(.T.)

 

********************************************************************

 

FUNCTION VERIFICA

         SELE A

         GOTO TOP

         SET SOFTSEEK OFF

         SET DELETED ON

         SEEK ICGM

         IF .NOT. EOF()

            IF ISENHA=SENHA

               SIT="A"

            ELSE

                SIT="B"

            ENDIF

         ELSE

             SIT="C"

         ENDIF

RETU(.T.)

 

********************************************************************

 

FUNCTION PEGANOTA()

         INDVET=1

         SELE B

         GOTO TOP

         LOCATE FOR STR(ANO,4)=ANOATUAL .AND. CGM=VAL(ICGM) .AND. TURMA=ITURMA

         MAT[INDVET]=DISCIP

         ADNOTA()

         DO WHILE .NOT. EOF()

                  CONTINUE

                  IF .NOT. EOF()

                         IF MAT[INDVET]<>DISCIP

                            INDVET++

                            AADD(MAT,DISCIP)

                            AADD(F1,SPACE(2))

                            AADD(F2,SPACE(2))

                            AADD(F3,SPACE(2))

                            AADD(F4,SPACE(2))

                            AADD(N1,SPACE(4))

                            AADD(N2,SPACE(4))

                            AADD(N3,SPACE(4))

                            AADD(N4,SPACE(4))

                            ADNOTA()

                         ELSE

                             ADNOTA()

                         ENDIF

                  ENDIF

         ENDDO

RETU(.T.)

 

******************************************************************

 

FUNCTION ADNOTA()

         DO CASE

         CASE EPOCA=1

              IF TIPODISP=SPACE(1)

                 N1[INDVET]=STR(NOTA,4,1)

              ELSE

                  N1[INDVET]="Disp"

              ENDIF

              F1[INDVET]=STR(FALTA,2)

         CASE EPOCA=2 .AND. VAL(BIATUAL)>1

              IF TIPODISP=SPACE(1)

                 N2[INDVET]=STR(NOTA,4,1)

              ELSE

                  N2[INDVET]="Disp"

              ENDIF

              F2[INDVET]=STR(FALTA,2)

         CASE EPOCA=3 .AND. VAL(BIATUAL)>2

              IF TIPODISP=SPACE(1)

                 N3[INDVET]=STR(NOTA,4,1)

              ELSE

                  N3[INDVET]="Disp"

              ENDIF

              F3[INDVET]=STR(FALTA,2)

         CASE EPOCA=4 .AND. VAL(BIATUAL)>3

              IF TIPODISP=SPACE(1)

                 N4[INDVET]=STR(NOTA,4,1)

              ELSE

                  N4[INDVET]="Disp"

              ENDIF

              F4[INDVET]=STR(FALTA,2)

         ENDCASE

RETU(.T.)

 

*****************************************************************

 

FUNCTION PEGAMATE()

SELE D

FOR X=1 TO INDVET

    GOTO TOP

    SEEK MAT[X]

    AADD(MATS,USUAL)

NEXT X

RETU(.T.)

 

***********************************************************************

 

FUNCTION SAIDA()

?"<B>Curso:</B> "+ICURSO

?"<BR>"

?"<B>CGM  :</B> "+ICGM

?"&nbsp;&nbsp;&nbsp;&nbsp;"

?"<B>Turma:</B> "+ITURMA

?"&nbsp;&nbsp;&nbsp;&nbsp;"

?"<B>Serie:</B> "+ISERIE

?"&nbsp;&nbsp;&nbsp;&nbsp;"

?"<B>N:</B> "+INUMERO

?"<BR>"

?"<B>Nome :</B> "+INOME

?"<BR>"

?"<BR>"

?'<DIV ALIGN="CENTER"><CENTER>'

?'<TABLE border="2" cellpading="4" cellspacing="3">'

?'<tr>'

?'<td align="center"><strong></strong>&nbsp;</td>'

?'<td align="center" colspan="2"><strong>1.BIM</strong></td>'

?'<td align="center" colspan="2"><strong>2.BIM</strong></td>'

?'<td align="center" colspan="2"><strong>3.BIM</strong></td>'

?'<td align="center" colspan="2"><strong>4.BIM</strong></td>'

?'<td align="center"><strong>MEDIA</strong></td>'

?'<td align="center"><strong>TOT</strong></td>'

?'<td align="center"><strong>CARGA</strong></td>'

?'<td align="center"><strong>%</strong></td>'

?'</tr>'

?'<tr>'

?'<td><strong>DISCIPLINAS</strong></td>'

?'<td align="center"><strong>N</strong></td>'

?'<td align="center"><strong>F</strong></td>'

?'<td align="center"><strong>N</strong></td>'

?'<td align="center"><strong>F</strong></td>'

?'<td align="center"><strong>N</strong></td>'

?'<td align="center"><strong>F</strong></td>'

?'<td align="center"><strong>N</strong></td>'

?'<td align="center"><strong>F</strong></td>'

?'<td align="center"><strong>N</strong></td>'

?'<td align="center"><strong>F</strong></td>'

?'<td align="center"><strong>HORARIA</strong></td>'

?'<td align="right"><strong>PRESENCA</strong></td>'

?'</tr>'

   

FOR X=1 TO INDVET

?"<TR>"

?"<TD>"

?MATS[X]

?"</TD>"

?'<TD align="RIGHT">'

?N1[X]

?'</TD>'

?'<TD align="RIGHT">'

?F1[X]

?"</TD>"

?'<TD align="RIGHT">'

?N2[X]

?"</TD>"

?'<TD align="RIGHT">'

?F2[X]

?"</TD>"

?'<TD align="RIGHT">'

?N3[X]

?"</TD>"

?'<TD align="RIGHT">'

?F3[X]

?"</TD>"

?'<TD align="RIGHT">'

?N4[X]

?"</TD>"

?'<TD align="RIGHT">'

?F4[X]

?"</TD>"

?'<TD align="RIGHT">'

?N5[X]

?"</TD>"

?'<TD align="RIGHT">'

?F5[X]

?"</TD>"

?'<TD align="CENTER">'

?STR(CHTOT[X],3)

?"</TD>"

?'<TD align="RIGHT">'

?STR(PRES[X],6,2)

?"</TD>"

?"</TR>"

NEXT

?"<TD>"

?"<B>MEDIAS"

?"</TD>"

?"<TD>"

?MEDBI[1]

?'</TD>'

?'<TD>'

?"&nbsp;"

?"</TD>"

?'<TD align="RIGHT">'

?MEDBI[2]

?"</TD>"

?"<TD>"

?"&nbsp;"

?"</TD>"

?'<TD align="RIGHT">'

?MEDBI[3]

?"</TD>"

?"<TD>"

?"&nbsp;"

?"</TD>"

?'<TD align="RIGHT">'

?MEDBI[4]

?"</TD>"

?"<TD>"

?"&nbsp;"

?"</TD>"

?'<TD align="RIGHT">'

?MEDBI[5]

?"</TD>"

?"<TD>"

?"&nbsp;"

?"</TD>"

?"<TD>"

?"&nbsp;"

?"</TD>"

?"<TD>"

?"&nbsp;"

?"</TD>"

?"</TR>"

?"</B>"

?"</TABLE></DIV></CENTER>"

RETU(.T.)

 

***********************************************************************

 

FUNCTION CALCMEDIA()

 

FOR X=1 TO INDVET

    N5[X]=0

    DIVISOR=0

    DISP=.F.

    IF N1[X]<>SPACE(4) .AND. N1[X]<>"Disp"

       N5[X]=N5[X]+VAL(N1[X])

       DIVISOR++

    ENDIF

    IF N2[X]<>SPACE(4) .AND. N2[X]<>"Disp"

       N5[X]=N5[X]+VAL(N2[X])

       DIVISOR++

    ENDIF

    IF N3[X]<>SPACE(4) .AND. N3[X]<>"Disp"

        N5[X]=N5[X]+VAL(N3[X])

        DIVISOR++

    ENDIF

    IF N4[X]<>SPACE(4) .AND. N4[X]<>"Disp"

        N5[X]=N5[X]+VAL(N4[X])

        DIVISOR++

    ENDIF

    IF DIVISOR>=1

       N5[X]=STR(N5[X]/DIVISOR,5,2)

    ELSE

       N5[X]=" Disp"

    ENDIF

    F5[X]=0

    IF F1[X] <>SPACE(2)

       F5[X]=F5[X]+VAL(F1[X])

    ENDIF

    IF F2[X] <>SPACE(2)

       F5[X]=F5[X]+VAL(F2[X])

    ENDIF

    IF F3[X] <>SPACE(2)

       F5[X]=F5[X]+VAL(F3[X])

    ENDIF

    IF F4[X] <>SPACE(2)

       F5[X]=F5[X]+VAL(F4[X])

    ENDIF

    F5[X]=STR(F5[X],4)

NEXT X

RETU(.T.)

 

*************************************************************************

 

FUNCTION CALCMEDBI()

DECLARE DIVISOR[5]

AFILL(DIVISOR,0)

AFILL(MEDBI,0)

FOR X=1 TO INDVET

    IF N1[X]<>"Disp" .AND. N1[X]<>SPACE(4)

       MEDBI[1]=MEDBI[1]+VAL(N1[X])

       DIVISOR[1]++

    ENDIF

    IF N2[X]<>"Disp" .AND. N2[X]<>SPACE(4)

       MEDBI[2]=MEDBI[2]+VAL(N2[X])

       DIVISOR[2]++

    ENDIF

    IF N3[X]<>"Disp" .AND. N3[X]<>SPACE(4)

       MEDBI[3]=MEDBI[3]+VAL(N3[X])

       DIVISOR[3]++

    ENDIF

    IF N4[X]<>"Disp" .AND. N4[X]<>SPACE(4)

       MEDBI[4]=MEDBI[4]+VAL(N4[X])

       DIVISOR[4]++

    ENDIF

    IF N5[X]<>" Disp" .AND. N5[X]<>SPACE(5)

       MEDBI[5]=MEDBI[5]+VAL(N5[X])

       DIVISOR[5]++

    ENDIF

NEXT X

FOR X=1 TO 4

    IF DIVISOR[X]<>0

        MEDBI[X]=STR(MEDBI[X]/DIVISOR[X],4,1)

    ELSE

        MEDBI[X]=SPACE(4)

    ENDIF

NEXT X

MEDBI[5]=STR(MEDBI[5]/DIVISOR[5],5,2)

 

RETU(.T.)

 

****************************************************************

 

FUNCTION PEGADADOS()

SELE A

GOTO TOP

LOCATE FOR STR(ANO,4)=ANOATUAL .AND. CGM=VAL(ICGM)

ITURMA=TURMA

INUMERO=STR(NUMERO,3)

INOME=TRIM(NOME)+SPACE(1)+TRIM(SOBRENOME)

SELE E

CODCURSO=SUBSTR(ITURMA,3,1)

SEEK CODCURSO

ICURSO=NOME

DO CASE

   CASE SUBSTR(ITURMA,2,1)="1"

        ISerie="Primeira"

   CASE SUBSTR(ITURMA,2,1)="2"

        ISerie="Segunda"

   CASE SUBSTR(ITURMA,2,1)="3"

        ISerie="Terceira"

   CASE SUBSTR(ITURMA,2,1)="4"

        ISerie="Quarta"

   CASE SUBSTR(ITURMA,2,1)="5"

        ISerie="Quinta"

   CASE SUBSTR(ITURMA,2,1)="6"

        ISerie="Sexta"

   CASE SUBSTR(ITURMA,2,1)="7"

        ISerie="Setima"

   CASE SUBSTR(ITURMA,2,1)="8"

        ISerie="Oitava"

ENDCASE

 

RETU(.T.)

 

****************************************************************

 

FUNCTION CALCCHTOT()

SELE F

FOR X=1 TO INDVET

        CHTOT[X]=0

        LOCATE FOR ANO=VAL(ANOATUAL) .AND. TURMA=SUBSTR(ITURMA,1,3) .AND. DISCIP=MAT[X]

        CHTOT[X]=CHTOT[X]+CARGA

        IF VAL(BIATUAL)>1

           FOR Y=1 TO VAL(BIATUAL)

               CONTINUE

               CHTOT[X]=CHTOT[X]+CARGA

           NEXT Y

        ENDIF

        PRES[X]=(CHTOT[X]-VAL(F5[X]))*100/CHTOT[X]

NEXT X

RETU(.T.)

 

*****************************************************************


Lay-Out de Telas

 

 

 


Tela Inicial


Página Histórico


Página da Biblioteca


Página da Secretária


Página do Jornal


Tela de entrada de dados do Boletim


 
eXTReMe Tracker

"O presbítero ao amado Gaio, a quem em verdade eu amo." (3Jo 1:1)

Webdesigner: Fabricio Breve 1997 - 2003
[email protected] - Privacidade