Buscar

PIM IV UNIP ADS – SOFTWARE PARA GERENCIMANETO DE NOTAS EM C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

UNIP INTERATIVA
Projeto Integrado Multidisciplinar
Cursos Superiores de Tecnologia
PIM IV – SOFTWARE PARA GERENCIMANETO DE NOTAS EM C
São Paulo
2016
UNIP INTERATIVA
Projeto Integrado Multidisciplinar
Cursos Superiores de Tecnologia
PIM IV – SOFTWARE PARA GERENCIMANETO DE NOTAS EM C
Curso: Tecnologia em Análise e Desenvolvimento de Sistemas
Semestre: 2º/2016
São Paulo
2016
RESUMO 
O presente Projeto Integrado Multidisciplinar, proposto pela universidade UNIP Interativa, visa aplicar o conhecimento adquirido no semestre pelas aulas de Engenharia de Software I e Linguagem e Técnicas de Programação. Este projeto propõe o desenvolvimento de um sistema em linguagem C para cadastro e gerenciamento de notas de um professor do ensino fundamental. Estaremos apresentando de forma objetiva todos os requisitos necessários para o desenvolvimento do sistema, iniciando com um breve estudo teórico sobre engenharia de software e a linguagem de programação utilizada no sistema. Neste projeto também será apresentado uma análise de requisitos para o sistema, apontando os funcionais e não-funcionais da aplicação, e suas diferenças. Além das apresentações dos fluxogramas de dados e as atividades desenvolvidas para a elaboração da aplicação, explicando suas funções e código fonte do sistema.
Palavras-chave: Tecnologia, Sistemas, Linguagem C, Programação
ABSTRACT
This Multidisciplinary Integrated Project, proposed by the UNIP Interativa University,
aims to apply the acquired knowledge through classes of Software Engineering I and Language and Programming Techniques. This project proposes the deveolpment of a system in C language, for registering and managing the grades of a primary school teacher. We'll be presenting in a objective way all the necessary requirements for 
the development of the system, starting with a brief theoretical study on software engenerring and the programming languague used in the system. In this project will also be presented the requirements analysis forthe system, pointing out the functional and non-functional of the application, and their differences. In addition to the presentations of the flowcharts and the activides develeoped for the elaboration of the system, explaning it's functions and the source coude of the system.
Key-words: Technology, Systems, C language, Programming
SUMÁRIO
INTRODUÇÃO
	Este projeto tem como objetivo o desenvolvimento de um sistema para auxiliar os professores na elaboração de relatórios de notas de suas classes, de forma rápida e com uma interface de fácil entendimento, eliminando a necessidade de cálculos matemáticos e preenchimentos de papeis, reduzindo o tempo gasto na atividade e minimizando a probabilidade de erros.
Para o desenvolvimento do sistema utilizaremos a linguagem C e a ferramenta de desenvolvimento DEV C++.
	Neste relatório apresentaremos todas as funções e módulos disponíveis no sistema, com o objetivo de proporcionar uma visão abrangente dos recursos disponíveis na aplicação e facilitar o entendimento aos interessados. 
Também iremos apresentar o modelo adotado de ciclo de vida para o desenvolvimento do sistema, apresentando a justificativa para tal escolha, o cronograma de atividades adotado para a elaboração e o fluxograma do sistema.
Por fim ainda apresentaremos a estrutura lógica do código com a explicação de cada função do sistema. 
NECESSIDADES DO CLIENTE
O cliente, um professor do Ensino Fundamental, necessita de um sistema para cadastro e gerenciamento de notas dos alunos de suas classes. 
O sistema deve ser capaz de registrar os alunos, contendo o nome e o número de sua matricula, cadastrar as notas de quatro provas e uma prova substitutiva, onde cada prova tem um peso especifico, e ao final calcular a média do aluno e verificar se o aluno foi aprovado ou reprovado, também é de necessidade do cliente que o sistema possa imprimir em tela o relatório completo da classe, com o nome de todos os alunos e suas notas e média, além da média geral da classe. 
REFERENCIAL TEÓRICO
 Linguagem de programação C
Criada em 1972, por Dennis Ritchie, C é uma das linguagens de programação mais populares e tem influenciado muitas outras linguagens de programação, no final da década de 70, a linguagem C começou a substituir a linguagem BASIC como a linguagem de programação mais utilizada. 
C é uma linguagem imperativa e procedural com pontos primários em fornecer um desenvolvimento com acesso de baixo nível à memória e baixos requerimentos de hardware, desenvolvido também para ser utilizado como linguagem de alto nível com maior reaproveitando de código.
É uma linguagem extremamente simples, com diversos recursos que dão maior flexibilidade a programação, como a utilização de ponteiros e estrutura de variáveis (structs), que permitem que dados relacionados sejam combinados e manipulados como um todo, por ser reconhecida como linguagem estruturada permite muitas possibilidades de programação, suportando construções de diversos loops (laços), e a criação de funções, que são blocos de construção onde pode possuir diversos parâmetros e atividades que serão executadas no programa. 
 Engenharia de software
A Engenharia de Software se concentra nos aspectos práticos da produção de um sistema de software. Os fundamentos científicos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades. Além disso, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento de um sistema computacional. O termo engenharia de software começou a ser utilizado oficialmente em 1968 na NATO Science Committee.
 Modelos de processos de Software
A engenharia de software tem produzido inúmeros modelos de ciclo de vida, incluindo os modelos de cascata, espiral e desenvolvimento rápido de aplicações. Antes do modelo de cascata ser proposto em 1970, não havia concordância em termos dos métodos a levar a cabo no desenvolvimento de software. Desde então ao longo dos anos muitos modelos têm sido propostos refletindo assim a grande variedade de interpretações e caminhos que podem ser tomados no desenvolvimento de software.
Modelos de processos de software:
Desenvolvimento iterativo e incremental - desenvolvimento é iniciado com um subconjunto simples de Requisitos de Software e iterativamente alcança evoluções subsequentes das versões até o sistema todo estar implementado
Evolucional ou Prototipação - especificação, projeto e desenvolvimento de protótipos.
V-Model - Parecido com o modelo cascata, mas com uma organização melhor, que permite que se compare com outros modelos mais modernos. Principal ponto é que para cada etapa de um lado tem uma verificação do outro, criando um gráfico no formato da letra V com 2 cascatas.
Espiral - O modelo espiral incorpora-os de uma forma iterativa permitindo que as ideias e o progresso sejam verificados e avaliados constantemente. Cada iteração à volta da espiral pode ser baseada num modelo diferente e pode ter diferentes atividades. No modelo espiral para engenharia de requisitos mostra-se que as diferentes atividades são repetidas até uma decisão ser tomada e o documento de especificação de requisitos ser aceito. 
Sequencial ou Cascata - com fases distintas de especificação, projeto e desenvolvimento. Este modelo foi o primeiro modelo a ser conhecido em engenharia de software e está na base de muitos ciclos de vida utilizados nos dias de hoje. Este consiste basicamente num modelo linear em que cada passo deve ser completado antes que o próximo passo possa ser iniciado.
Figura 1 – Modelo Cascata
Fonte: Adaptado de SOMMERLLIVE I, 2007.
O Nosso projeto é baseado neste modelo, que é um modelo bem definido, no qualos processos são executados de forma sequencial. Os principais estágios do modelo cascata retratam as atividades de desenvolvimento fundamentais, conforme é esquematizado na figura a cima.
ANALISE DO SISTEMA
 Definição de Requisitos
A definição de requisitos de software envolve as atividades de determinar qual o objetivo do software e suas restrições. O objetivo da definição dos requisitos é especificar o que o sistema deverá fazer e determinar os critérios de validação que serão utilizados para que se possa avaliar se o sistema cumpre o que foi definido. 
Tradicionalmente, os requisitos de um software são separados em requisitos funcionais e não-funcionais, na Engenharia de Software é propagada a definição de que os requisitos funcionais definem o que o sistema fará e os requisitos não-funcionais definem como o sistema fará. 
 Requisitos não-funcionais
Os requisitos prioritários, não-funcionais, considerados para o projeto de desenvolvimento do sistema foram, a usabilidade, disponibilidade, organização e legibilidade.
RNF01 – Usabilidade: Para garantir a usabilidade a interface do sistema possui telas de fácil entendimento e aprendizagem, maximizando a produtividade e minimizando a taxa de erros. 
RNF02 – Disponibilidade: Para garantir a disponibilidade o sistema possui todo seu modulo baseado em aplicações off-line, podendo ser utilizado onde e quando for necessário. 
RNF03 – Organização e Legibilidade: Para garantir a organização e legibilidade do sistema, o código é organizado e comentado de forma a qualquer desenvolvedor com conhecimento da linguagem de programação possa entender o código-fonte. 
 Requisitos funcionais
 Os requisitos funcionais para o desenvolvimento do sistema são: cadastro de alunos, cadastro de notas, cálculo de média, e impressão em tela de relatórios.
RF01 – Cadastro de Alunos: O sistema devera possuir um módulo para cadastro dos alunos, contendo o nome do aluno e seu número de matricula. 
RF02 – Cadastro de Notas: Armazenar a nota de quatro provas (P1, P2, P3 e P4) e a nota de uma prova substitutiva (PS) que deve substituir o valor menor entre as quatro primeiras notas. 
RF03 – Calculo de média: O sistema devera calcular a média de cada aluno e exibir a informação se o aluno foi aprovado. Cada prova possui um peso especifico (P1 peso 1, P2 peso 2, P3 peso 3 e P4 peso 4), e a nota da PS deve substituir a menor nota e utilizar seu peso especifico. 
RF04 – Impressão em tela de relatórios: Exibir em tela um relatório com a nota de todos os alunos e suas médias e a média geral da classe. 
 Lista de Eventos
A lista de eventos é a especificação das atividades (processos) essenciais que o sistema executado. Essas atividades são iniciadas por estímulos, executando um processamento e gerando uma resposta. Esses estímulos podem ser de fluxo de dados (f.d), que é aquele em que o estimulo é enviado por uma entidade externa, fluxo de controle (f.c.), que o estimulo é enviado por um “gatilho de controle” ou fluxo temporal (f.t.), onde o estimulo é enviado após haver passado um determinado intervalo de tempo ou ser atingida determinada hora. 
Abaixo temos uma tabela com a lista de eventos do sistema. 
	NR
	EVENTO
	TIPO
	ESTIMULO
	RESP. EXTERNA
	1
	Cadastrar aluno
	(f.d.)
	inserir();
	Novo cadastro ou Voltar
	2
	Calcular a média do aluno
	(f.c.)
	calcula_media();
	Aluno Aprovado ou Aluno Reprovado
	3
	Exibir o relatório da classe
	(f.d)
	mostrar();
	Relatório da classe
 Diagrama de contexto
O diagrama de contexto representa o sistema por um único processo e suas interligações com as entidades externas, mostrando apenas as interfaces do sistema com o ambiente em que ele está inserido.
Para isso devemos identificar as entidades externas e o fluxo de dados entre essas fontes e o sistema, para nossa aplicação temos:
Sistema: Software de Gerenciamento de Notas
Entidade externa: Professor.
Fluxo de dados:
Professor –> Sistema - Cadastra Aluno
Sistema –> Professor - Calcula a média do Aluno
Sistema –> Professor - Exibe relatório da Classe.
Figura 2 – Diagrama de contexto
Fonte: O autor, 2016.
CRONOGRAMA
	ATIVIDADE
	OBJETIVO
	TEMPO
	Introdução ao PIM
	Entender o projeto e elaborar o referencial teórico.
	2 Dias
	Briefing com Cliente
	Conhecer as necessidades do cliente
	1 Dia
	Definição do Modelo de Ciclo de Vida 
	Escolher um modelo de ciclo de vida 
	1 Dias
	Análise do Sistema
	Levantar os requisitos do sistema
	5 Dias
	Desenvolvimento do Software
	Elaborar o código da aplicação
	10 Dias
	Testes e Validação
	Validar o código e testar a aplicação.
	2 Dias
	Revisão e Entrega
	Revisar e entregar a documentação final.
	1 Dia
FLUXOGRAMAS DE DADOS
Figura 3 – Fluxograma da main()
Fonte: O autor, 2016.
Figura 4 – Fluxograma para mostrar relatório.
Fonte: O autor, 2016.
Figura 5 – Fluxograma de cálculo de média
Fonte: O autor, 2016.
Figura 6 – Fluxograma de cadastro
Fonte: O autor, 2016.
RELATORIO DO PROGRAMA
Neste item do trabalho iremos abordar todas as etapas do programa desenvolvido de acordo com o solicitado assim como o código fonte do programa. Todo o código do programa foi comentado para melhor entendimento de qualquer desenvolvedor que queira visualizar o passo a passo das linhas de comando do software. 
Strings do programa
Como mostrado acima às strings principais utilizadas são:
void inserir(); que é a string utilizada para inserir as informações como Nome do aluno, Matricula e notas e gravá-las no sistema.
void mostrar(); responsável por mostrar em tela as informações gravadas no sistema.
void calcula_media(); String que faz o calculo da média do aluno e também a média total da sala.
Também inserimos uma função chamada setlocale (LC_ALL, “Portuguese”); criada para uso da acentuação da língua portuguesa.
Acima mostramos os código e funções utilizadas para criação da tela inicial do software, bem como as “case” referente a cada uma das opções em tela e também o inicio da função de cálculo da média do aluno void calcula_media(void). 
Nesta imagem podemos verificar os códigos que formam a tela que será exibida caso o aluno não atinja o mínimo da media, que neste caso é 5. O aluno atingindo média 5 ou mais mostrará “ALUNO APROVADO!”, demonstrada pela “if(vetor[cadastro]. Media >=5)”; e menos que 5 “ALUNO REPROVADO”. 
Os códigos acima mostram a função de inserir cadastro, que é a inserção do cadastro do aluno no sistema, isso sendo o número de matricula do aluno e o seu nome.
Acima temos os códigos do programa referente ao cadastro das notas para o aluno, foi utilizado a função while para verificar se a nota cadastrada está entre 0 e 10. Se caso seja informada uma nota diferente, por exemplo 11, uma mensagem será exibida em tela informando o usuário para que informe apenas valores entre 0 e 10.
As duas imagens acima mostram o final do programa, exibindo os códigos utilizados para mostrar em tela o menu de opções “1 – NOVO CADASTRO e “2 – VOLTAR AO MENU”.
 Testes do Programa
Figura 7 – Tela Inicial do Programa
Fonte: O autor, 2016.
Nesta tela temos:
Nome do Programa (SISTEMA DE GERENCIAMENTO DE NOTAS)
As Opções:
1 – Cadastro de Alunos: onde o professor irá seleciona-lo digitando o numero “1”;
2 – Imprimir Relatório: onde o professor seleciona, caso queira ver em tela o relatório dos dados gravados para isso, deve digitar o numero “2”.
0 – Sair: sai do programa digitando o numero “0”.
Cadastrando um aluno
Após selecionar a função cadastro de alunos o programa exibira a seguinte tela:
Figura 8 – Cadastro de alunos - Matricula
Fonte: O autor, 2016.
Podemos perceber que o mesmo solicita primeiro a matricula do aluno, este numero será atrelado à próxima informação solicitada.
Figura 9 – Cadastro de alunos - Nome
Fonte: O autor, 2016.
Entre com o nome do aluno,este campo solicita ao usuário o nome para vincular a matricula.
Após a informação ser digitada passa-se para próxima etapa pressionando a tecla enter.
Figura 10 – Cadastro de alunos - Notas
Fonte: O autor, 2016.
Onde começará a solicitar as notas do aluno em cada prova, p1, p2, p3, p4 e prova substitutiva se caso o aluno realizou tal prova. Como mostra abaixo:
Figura 11 – Cadastro de alunos – Cálculo de média e resultado de aprovação.
Fonte: O autor, 2016.
Após a inserção dos dados da prova, o software faz o cálculo da média e imprime em tela se o aluno foi aprovado ou reprovado.
Depois de já inseridas as informações de matricula, nome e notas da prova, pressionando qualquer tecla para avançar para próxima tela:
Figura 12 – Cadastro de alunos - Notas
Fonte: O autor, 2016
Seleciona um 1-NOVO CADASTRO, onde o usuário pode continuar a gravar novos cadastros ou voltar ao menu principal onde o usuário poderá selecionar a opção 2- imprimir relatório que são as informações já gravadas no sistema além da média do aluno e também a média da sala bem como o número de alunos aprovados ou reprovados, como mostra na tela abaixo.
Figura 13 – Cadastro de alunos – Notas
Fonte: O autor, 2016
CONCLUSÃO
Durante o desenvolvimento do projeto, adquirimos inúmeros conhecimentos sobre engenharia de software e linguagem de programação, explorando diversos modelos de processos de software e seus requisitos, além dos conhecimentos de transição teórico-prática, com a criação do software desenvolvido, que satisfaz as necessidades do cliente para que ele utilize o sistema de forma fácil e pratica evitando assim preenchimentos de papeis, reduzindo o tempo de mão de obra e minimizando a probabilidade de erros no exercício de suas atividades. 
REFERÊNCIAS
ALVES, William Pereira. C++ Builder 6: desenvolva aplicações para Windows. 2. ed. São Paulo: Érica, 2007
MIZRAHI, Viviane Victorine. Treinamento em Linguagem C++. 2. ed. São Paulo: Pearson Education, 2005.
MANZANO, José Augusto N. G.. Programação de Computadores com C++: guia rápido de orientação e desenvolvimento. São Paulo: Érica, 2010
PRESSMAN, Roger S.. Engenharia de Software: uma abordagem profissional. 7 ed. AMGH, 2011.