Você está na página 1de 43

UNIVERSIDADE PAULISTA

ANALISE E DESENVOLVIMENTO DE SISTEMAS

LUCAS DIEGO LISBOA MENDES – RA G74GHA2

LUCAS JESUS – N071JF9

GUSTAVO HENRIQUE OLIVEIRA DOVISO – RA G77CHE6

KAUAN MEDEIROS PEREIRA – RA G814AJ7

ROBERTO GABRIEL RODRIGUES OLIVEIRA – RA N392AG2

MUSEU TEMATICO ESPACIAL

SOROCABA

2023
UNIVERSIDADE PAULISTA

ANALISE E DESENVOLVIMENTO DE SISTEMAS

LUCAS DIEGO LISBOA MENDES – RA G74GHA2

LUCAS JESUS – N071JF9

GUSTAVO HENRIQUE OLIVEIRA DOVISO – RA G77CHE6

KAUAN MEDEIROS PEREIRA – RA G814AJ7

ROBERTO GABRIEL RODRIGUES OLIVEIRA – RA N392AG2

MUSEU TEMATICO ESPACIAL

Trabalho de conclusão do semestre


PIM (projeto integrado
multidisciplinar) do curso de analise e
desenvolvimento de sistemas
apresentado á universidade paulista -
UNIP

SOROCABA

2023
LUCAS DIEGO LISBOA MENDES – RA G74GHA2

LUCAS JESUS – N071JF9

GUSTAVO HENRIQUE OLIVEIRA DOVISO – RA G77CHE6

KAUAN MEDEIROS PEREIRA – RA G814AJ7

ROBERTO GABRIEL RODRIGUES OLIVEIRA – RA N392AG2

MUSEU TEMATICO ESPACIAL

Trabalho de conclusão do semestre


PIM (projeto integrado
multidisciplinar) do curso de analise e
desenvolvimento de sistemas
apresentado á universidade paulista -
UNIP

Aprovado em:

BANCA EXAMINADORA

__________________________________/__/__/

Professor Cesar Xavier

__________________________________/__/__/

Professor Fernando Bueno

__________________________________/__/__/

Professor Samuel Rodrigues

__________________________________/__/__/

Professor Waldir Silva


RESUMO

Este trabalho apresenta o processo de criação de um museu temático


espacial com base nas matérias do curso de analise e desenvolvimento de
sistemas, com um programa em C criado para a venda de ingressos e um
questionário de satisfação para os participantes do museu, junto dos processos
da engenharia de software, linguagem e técnicas de programação e
fundamentos de redes, matemática para computação, ética e legislação
profissional foi criado o museu e seu software.
ABSTRACT

This project outlines the process of creating a space-themed museum


based on subjects covered in the course of Systems Analysis and Development.
It incorporates a C program designed for ticket sales and a satisfaction
questionnaire for museum attendees. In conjunction with software engineering
processes, programming language and techniques, network fundamentals,
mathematics for computing, as well as ethics and professional legislation, the
museum and its software were developed
SUMÁRIO

1. INTRODUÇÃO ............................................................................................ 7
2. ENGENHARIA DE SOFTWARE ................................................................. 8
2.1. CICLO DE VIDA DO SOFTWARE ........................................................... 8
2.1.1. PROJETO ............................................................................................. 8
2.1.2. CODIFICAÇÃO ..................................................................................... 8
2.1.3. TESTAGEM. ......................................................................................... 8
2.1.4. IMPLEMENTAÇÃO............................................................................... 9
2.1.5. MANUTENÇÃO. ................................................................................... 9
2.1.6. DEFINIÇÃO TIPO DE PROJETO ......................................................... 9
2.1.7. COMUNICAÇÃO/REQUISITOS ......................................................... 10
2.1.8. PLANEJAMENTO DO SOFTWARE. .................................................. 11
2.1.9. MODELAGEM. ................................................................................... 11
2.1.10. CONSTRUÇÃO................................................................................... 11
2.1.11. EMPREGO .......................................................................................... 11
2.2. PERSONAL SOFTWARE PROCESS .................................................... 12
2.2.1. PLANEJAMENTO E ESTIMATIVA..................................................... 12
2.2.2. DESENVOLVIMENTO DA APLICAÇAO DE VENDAS ...................... 12
2.2.3. DESENVOLVIMENTO DO QUESTIONÁRIO ..................................... 12
2.2.4. TSP ..................................................................................................... 12
3. FUNDAMENTO DE REDES E COMUNICAÇÃO ...................................... 13
3.1. LAN (Local Area Network) ................................................................... 13
3.1.1. LIMITAÇÃO GEOGRÁFICA. .............................................................. 13
3.1.2. INFRAESTRUTURA ........................................................................... 13
3.1.3. LEVANTAMENTO DOS EQUIPAMENTOS ........................................ 13
3.1.4. SOFTWARES ..................................................................................... 14
3.1.5. PLANEJAMENTO DA REDE NO LOCAL .......................................... 14
3.1.6. INSTALAÇÃO DO CABEAMENTO .................................................... 14
3.1.7. CONFIGURAÇÃO DO ROTEADOR E DO SWITCH .......................... 14
3.1.8. CONFIGURAÇÃO DOS TERMINAIS ................................................. 14
3.1.9. INSTALAÇÃO E CONFIGURAÇÃO DO SERVIDOR ......................... 14
3.1.10. TESTE DA REDE E MANUTENÇÃO ................................................. 14
3.1.11. TOPOLOGIA ESTRELA ..................................................................... 16
4. ÉTICA E LEGISLAÇÃO ............................................................................ 18
4.1. ÉTICA ..................................................................................................... 18
4.1.1. LEGISLAÇÃO ..................................................................................... 18
5. LINGUAGEM E TECNICAS DE PROGRAMAÇÃO .................................. 19
5.1. QUESTIONÁRIO DO MUSEU................................................................ 19
5.1.1. SISTEMA DE VENDAS ...................................................................... 21
6. MATEMATICA PARA COMPUTAÇÃO..................................................... 23
6.1. MATEMÁTICA NO CÓDIGO DE REGISTRO DE VENDAS .................. 23
6.1.1. MATEMÁTICA NO CÓDIGO DE REGISTRO DE VENDAS ............... 23
6.1.2. ESTATÍSTICAS E RELATÓRIOS ...................................................... 24
6.1.3. MANIPULAÇÃO DE DADOS ............................................................. 24
6.1.4. CONSIDERAÇÕES FINAIS ................................................................ 25
CONCLUSÃO .................................................................................................. 27
REFERÊNCIAS................................................................................................ 28
CODIGOS EM C .............................................................................................. 29
EXTENSÃO UNIVERSITARIA ......................................................................... 41
7

1. INTRODUÇÃO

Ao integrar um programa em linguagem C para a gestão de ingressos e


um questionário de satisfação destinado aos participantes do museu, este
projeto alia a tecnologia à experiência cultural de forma inovadora. Para alcançar
esse objetivo, foram mobilizados os conhecimentos adquiridos em matérias
cruciais, como Fundamentos de Redes, Matemática para Computação e Ética e
Legislação Profissional. Cada componente desse processo, desde a concepção
até a implementação, foi meticulosamente planejado e executado para
assegurar um produto final de alta qualidade.
8

2. ENGENHARIA DE SOFTWARE

A necessidade de engenharia de software surge devido a uma maior taxa


de progresso nos requisitos do usuário e no ambiente no qual o programador
está trabalhando. O resultado da engenharia de software é um produto de
software eficaz e confiável. A engenharia de software é um ramo da engenharia
relacionado à evolução do produto de software usando princípios, técnicas e
procedimentos científicos bem definidos. O software é uma coleção de
programas integrados e subsiste de instruções cuidadosamente organizadas e
código escrito por desenvolvedores em qualquer uma das várias linguagens de
computador específicas, e a engenharia é a aplicação científica e prático
conhecimento para inventar, projetar, construir, manter e melhorar estruturas e
processos.
O desenvolvimento de software é a etapa onde se prepara o projeto e
efetua a criação do software. O software constitui a base da tecnologia presente
em nossa vida pessoal e profissional, e pode ser classificado de acordo com
seus objetivos de design e finalidade.
2.1. CICLO DE VIDA DO SOFTWARE

O ciclo de vida de desenvolvimento de software é uma etapa ou modelo


que transcreve as fases que o software passa desde seu início até sua entrega
e posterior manutenção. Há diversas abordagens para o ciclo de vida de
desenvolvimento de software, e a escolha de um modelo específico vai depender
dos requisitos do projeto e das necessidades do cliente. Abaixo, temos as etapas
do ciclo de vida de um software:
Levantamento de requisitos: Aqui é realizado o contato com o cliente para
entender quais os requisitos necessários para iniciar as esboçar o projeto.
2.1.1. PROJETO: Os designers irão desenvolver a estrutura do software,
a linguagem do software que no nosso projeto foi escolhida a linguagem em C.
2.1.2. CODIFICAÇÃO: Os desenvolvedores começam a desenvolver o
código fonte e desenvolver as funcionalidades estabelecidas através dos
requisitos.
2.1.3. TESTAGEM: Após a codificação, iniciam-se os testes do software
para mitigar erros e verificar se o que foi planejado está sendo executado.
9

2.1.4. IMPLEMENTAÇÃO: Nesta etapa o software é implementado no


ambiente o qual será utilizado, que no nosso projeto será um ambiente virtual
simulando o museu.
2.1.5. MANUTENÇÃO: Depois de realizado a implantação no ambiente,
o software necessitará de manutenções e futuras melhorias.
A escolha do modelo cascata foi devido o projeto não ser complexo e sua
estrutura ser pequena, com este modelo foi possível implementar e codificar o
código fonte, cujo principal objetivo foi atender a demanda solicitada no projeto
do PIM.
2.1.6. DEFINIÇÃO TIPO DE PROJETO

O modelo em cascata representa um dos paradigmas mais antigos e


lineares no campo da engenharia de software. Este modelo é conhecido por sua
abordagem sequencial, que abarca etapas que incluem a análise de requisitos,
a fase de design, a implementação, o processo de testes, a integração dos
componentes e, por fim, a manutenção do software. Cada fase deve ser
concluída antes de avançar para a próxima, tornando-o apropriado para projetos
com requisitos bem definidos e estáveis. Entretanto, o modelo pode se mostrar
rígido quando mudanças são necessárias após o início do desenvolvimento, e
enfatiza a documentação em todas as etapas. O modelo cascata ainda encontra
aplicação em indústrias que exigem rigoroso controle de processos e
conformidade com normas, como aeroespacial e sistemas críticos. Apesar de
sua ampla utilização no passado, abordagens mais flexíveis, como o
desenvolvimento ágil, têm ganhado terreno nas últimas décadas. Esse modelo
foi o qual utilizamos em nosso projeto para desenvolvimento do software para o
museu, pois por se tratar de um projeto de magnitude pequena, foi viável por
cada parte do projeto possuir uma definição prévia, a qual foi seguida cada etapa
deste modelo.
“O modelo cascata, algumas vezes chamado ciclo de vida clássico,
sugere uma abordagem sequencial e sistemático para o desenvolvimento de
software, começando com o levantamento de necessidades por parte do cliente,
avançando pelas fases de planejamento, modelagem, construção, emprego e
culminando no suporte contínuo do software concluído”. (PRESSMAN, 2011,
p.60).
10

Figura 1 – Definição Tipo de Projeto

2.1.7. COMUNICAÇÃO/REQUISITOS: Nesta etapa foi realizado o


levantamento dos requisitos e definição do planejamento do projeto, para assim
iniciar as próximas etapas para construção do software, os quais se seguiram
conforme especificado abaixo:
Ao chegar ao museu, o visitante terá de cadastrar seu nome e idade no
sistema.
Realizar a compra dos ingressos, o qual depois de inserido sua idade,
saberá se pagará o valor total, meia entrada ou terá gratuidade no ingresso.
Após o visitante concluir a visita, terá de realizar uma pesquisa de
satisfação referente à experiência geral na apresentação do museu, a qual
possui quatro tipos de respostas e terá de selecionar 1 delas que são: 1- Muito
satisfeito, 2 – Satisfatória, 3- Neutra e 4 – Insatisfatória.
Depois terá de responder se o conteúdo da apresentação foi interessante
e informativo, pergunta a qual possui quatro tipos de respostas que são: 1 – Sim,
muito, 2- Sim, pouco, 3 – Neutro, 4 – Não.
Na sequência terá de responder se a apresentação foi organizada de
maneira clara e fácil de entender, e possui 4 alternativas de respostas, as quais
são: 1 – Sim, muito, 2 – Sim, pouco, 3 – Neutro, 4 – Não.
Após terá de responder se a duração da apresentação foi adequada ou
não, a qual possui 4 alternativas que são: 1 – Muito Longa, 2 – Adequada, 3 –
Muito Curta, 4 – Não tenho certeza.
Depois responder se recomendaria a apresentação a um amigo ou
colega, possuindo quatro possibilidades de respostas, as quais são: 1 –
Definitivamente sim, 2 – Provavelmente sim, 3 – Não tenho certeza, 4 –
Definitivamente não.
11

2.1.8. PLANEJAMENTO DO SOFTWARE: Após a equipe ter levantado


os requisitos, nesta foi planejado a estimativa e cronogramas de
acompanhamento do projeto.
2.1.9. MODELAGEM: Nesta etapa foram analisadas as especificações
para gerar modelos para atender a demanda do museu.
2.1.10. CONSTRUÇÃO: Após a definição da etapa anterior, foi
desenvolvido o software.
2.1.11. EMPREGO: Etapa final do desenvolvimento, onde foi
entregue o software rodando utilizando a ferramenta CodeBlocks, onde foi
constatado que o produto foi considerado funcional e atendido os requisitos do
cliente que no caso foi o museu.
12

2.2. PERSONAL SOFTWARE PROCESS


O software foi desenvolvido em código C, com o principal objetivo de criar
um sistema que crie venda de ingressos para participar do museu temático
espacial, incluindo no projeto um sistema de questionário para avaliar a
satisfação dos clientes em relação ao museu.
2.2.1. PLANEJAMENTO E ESTIMATIVA
O software foi planejado para controlar as vendas e satisfação do publico
do museu. Com um período de tempo curto, foi designada a criação do sistema
para um período de três semanas para apresentar o projeto.
2.2.2. DESENVOLVIMENTO DA APLICAÇAO DE VENDAS
O software de vendas foi criado para auxiliar no controle de vendas do
museu, tendo como funcionalidades a oportunidade de se pagar meia entrada
ou ter a isenção dependendo da idade da pessoa em questão.
2.2.3. DESENVOLVIMENTO DO QUESTIONÁRIO
O questionário foi criado para o museu ter o controle de satisfação dos
integrantes que estão participando museu, tendo diversão questões para o
usuário responder em relação a sua satisfação com o museu.
2.2.4. TSP
O TSP foi concebido com o objetivo de aprimorar a excelência e a
eficiência no desenvolvimento de software, com um foco particular na
colaboração de equipe e na administração de projetos. Em nosso projeto,
utilizamos a plataforma Trello para monitorar o progresso individual de cada
integrante da equipe, seguindo o modelo sequencial previamente estabelecido
para a concretização do projeto. Isso nos permitiu atender aos prazos
estipulados para a entrega do software de forma mais eficaz e disciplinada.
13

3. FUNDAMENTO DE REDES E COMUNICAÇÃO


INFRAESTRUTURA DA REDE
3.1. LAN (Local Area Network)
No contexto do museu, foi utilizada uma Rede Local (LAN) pelo fato de
ser uma rede de computadores que conecta dispositivos em uma área
geograficamente restrita, Como residências, escritórios ou museus. As principais
características incluem limitação geográfica, alta velocidade, baixa latência e uso
de cabos Ethernet, switches e roteadores.
3.1.1. LIMITAÇÃO GEOGRÁFICA: Conecta dispositivos em uma área
restrita, proporcionando alta velocidade e baixa latência.
3.1.2. INFRAESTRUTURA: Utiliza cabos Ethernet, switches, roteadores
e, em alguns casos, pontos de acesso sem fio (wi-fi).

3.1.3. LEVANTAMENTO DOS EQUIPAMENTOS

Roteador (1 unidade) TP-Link Archer C50


Este roteador fornece conectividade à Internet para a LAN e suporta Wi-
Fi, garantindo flexibilidade para futuras necessidades de conectividade.

Switch (1 unidade) TP-Link TL-SG108


O switch Ethernet conecta os terminais em uma LAN e suporta até 8
conexões, garantindo a eficiência da rede interna do museu.

Servidor (1 unidade) Dell PowerEdge T30


O servidor é usado para armazenar e analisar dados dos terminais. Ele é
uma escolha econômica e confiável para pequenas organizações.

Cabo Ethernet (8 unidades) Pluscable Cabo Cat 5E


São usados cabos Cat 5E para conectar os terminais aos switches,
garantindo alta velocidade e confiabilidade na rede.

Computadores (2 unidades) All in One Dell Inspiron 20 Serie 3000


14

Estes computadores oferecem conveniência e economia de espaço,


sendo uma opção econômica e confiável para organizações sem fins lucrativos.

3.1.4. SOFTWARES:
Sistema Operacional Windows 10 (2 licenças)
Sistema operacional prático e confiável.

3.1.5. PLANEJAMENTO DA REDE NO LOCAL


Antes da implementação da LAN, é essencial realizar um planejamento
cuidadoso, considerando fatores como a disposição dos cabos e equipamentos,
a conectividade com a Internet e a administração da rede.
3.1.6. INSTALAÇÃO DO CABEAMENTO
A primeira etapa envolve a instalação do cabeamento Ethernet,
conectando terminais ao switch e o roteador à Internet. A escolha de cabos de
qualidade, como o Cat 5E da Pluscable, é crucial para alta velocidade e
confiabilidade.
3.1.7. CONFIGURAÇÃO DO ROTEADOR E DO SWITCH
A configuração do roteador é vital para fornecer acesso à Internet. As
instruções do fabricante devem ser seguidas para garantir uma conexão segura.
O switch deve ser configurado para permitir a comunicação entre os terminais.
3.1.8. CONFIGURAÇÃO DOS TERMINAIS
Cada terminal deve ser configurado para conectar à rede, incluindo a
conexão aos switches e configuração das conexões de rede nos sistemas
operacionais. A instalação do Sistema Operacional é necessária.
3.1.9. INSTALAÇÃO E CONFIGURAÇÃO DO SERVIDOR
O servidor é utilizado para armazenar e analisar dados. A instalação do
sistema operacional, software de banco de dados e configuração da conexão de
rede e políticas de segurança são passos críticos para garantir a integridade dos
dados.
3.1.10. TESTE DA REDE E MANUTENÇÃO
Após a instalação e configuração, a rede deve ser testada para garantir
que todos os componentes funcionem corretamente. A manutenção contínua,
15

incluindo monitoramento da saúde dos equipamentos e atualização de software,


é essencial.

MAPEAMENTO DOS EQUIPAMENTOS

IP Range: 192.168.1.1 a 192.168.1.7


Sub-Rede: 255.255.255.247

Roteador TP-Link Archer C50


Endereço IP: 192.168.1.1
Máscara de Sub-rede: 255.255.255.247
Gateway Padrão: N/A

Switch Cisco SG110D-08


Endereço IP: 192.168.1.2
Máscara de Sub-rede: 255.255.255.247
Gateway Padrão: 192.168.1.1

Servidor Dell PowerEdge T30


Endereço IP: 192.168.1.3
Máscara de Sub-rede: 255.255.255.247
Gateway Padrão: 192.168.1.1

All in One Dell Inspiron 20 Serie 3000 (Terminal 1)


Endereço IP: 192.168.1.4
Máscara de Sub-rede: 255.255.255.247
Gateway Padrão: 192.168.1.1

All in One Dell Inspiron 20 Serie 3000 (Terminal 2)


Endereço IP: 192.168.1.5
Máscara de Sub-rede: 255.255.255.247
Gateway Padrão: 192.168.1.1
16

All in One Dell Inspiron 20 Serie 3000 (Terminal 3)


Endereço IP: 192.168.1.6
Máscara de Sub-rede: 255.255.255.247
Gateway Padrão: 192.168.1.1

Firewall Windows Defender


Endereço IP: 192.168.1.7
Máscara de Sub-rede: 255.255.255.247
Gateway Padrão: 192.168.1.1

3.1.11. TOPOLOGIA ESTRELA


Confiabilidade: A topologia em estrela oferece alta tolerância a falhas. Se
um cabo ou dispositivo falhar, os outros permanecerão funcionando, crucial para
operações contínuas em um museu.

Gerenciamento e detecção de falhas: A manutenção é simples,


minimizando a inatividade da rede em caso de falha, pois cada dispositivo está
conectado ao hub central.

Flexibilidade: A adição ou remoção de componentes é simples, permitindo


atualizações e expansões ao longo do tempo.

Alto desempenho: A rede opera eficientemente devido à baixa chance de


colisão de dados, facilitando a troca rápida de informações, como a venda de
ingressos.

Pontos de alerta para funcionamento da rede: O switch é crítico para o


funcionamento da rede e deve ser de alta capacidade para manter o
desempenho.

A segurança é garantida por um firewall e políticas de segurança


configuradas nos terminais e no servidor para proteger os dados e bloquear
tráfego não autorizado.
17

Fonte: Criação pessoal.

3.1.12. CARACTERISTICAS BASICAS DA ARQUITETURA

Tolerância a Falhas:
Se um terminal ou cabo falhar, outros não são afetados, garantindo a
operação contínua.

Escalabilidade:
A rede pode ser facilmente expandida ou modificada à medida que novos
terminais ou recursos são adicionados.

Segurança:
A rede é protegida por um firewall com um endereço IP dedicado,
garantindo a integridade dos dados e bloqueando tráfego não autorizado.
18

4. ÉTICA E LEGISLAÇÃO

Cumprir os princípios com base a LGPD construir uma reputação sólida e


manter a confiança dos clientes e do público em geral. A empresa precisa
desempenhar um papel fundamental na forma como tratam os dados pessoais
e cumprem as regulamentações de proteção de dados.
4.1. ÉTICA

PRIVACIDADE: Proteger informações confidenciais de clientes e


usuários. Garantir que as informações dos clientes sejam mantidas confidenciais
e não sejam utilizadas para fins não autorizados.
SEGURANÇA DA INFORMAÇÃO: Empregar fortes medidas de
segurança cibernética para proteger as informações dos clientes e evitar
violações de dados.
CONSENTIMENTO DO CLIENTE: Obter o consentimento dos titulares
dos dados antes de coletar e processar dados pessoais. As pessoas precisam
ser totalmente informadas sobre a forma como os seus dados serão utilizados e
ter a oportunidade de consentir ou não.
TRANSPARÊNCIA: A empresa deve ser transparente sobre como coleta,
usam e compartilham dados. É importante que os clientes entendam como suas
informações serão utilizadas.
MINIMIZAÇÃO DE DADOS: Coletar apenas os dados necessários para a
finalidade pretendida.
4.1.1. LEGISLAÇÃO
PROPRIEDADE INTELECTUAL: Ao desenvolver o software, a empresa
deve cumprir as leis de direitos autorais e patentes.
LICENCIAMENTO DE SOFTWARE: Regula a distribuição e uso do
software e estabelece obrigações contratuais em acordos de licenciamento
Transferência internacional de dados: Caso necessário a transferência de
dados pessoais para fora do Brasil a empresa deve garantir a segurança dos
dados seguindo as regras relativas a transferências internacionais.
Direitos do titular dos dados: Concede aos titulares dos dados o direito de
acessar, retificar, excluir, transferir e retirar o consentimento aos seus dados
pessoais.
19

5. LINGUAGEM E TECNICAS DE PROGRAMAÇÃO


5.1. QUESTIONÁRIO DO MUSEU
Função 'bemvindo()'
A função bemvindo() é responsável por apresentar uma mensagem de
boas-vindas ao usuário. Ela utiliza a função printf para imprimir mensagens no
console e a função getchar para aguardar que o usuário pressione a tecla
ENTER antes de continuar para as próximas mensagens. A função também
utiliza system("cls") para limpar a tela do console. Isso demonstra conceitos de
entrada/saída, espera do usuário e limpeza do console.

Função 'descricao_itens()'
A função descricao_itens() fornece informações detalhadas sobre o
Sistema de Lançamento Espacial (SLS) e suas partes. Ela segue um padrão
semelhante ao da função bemvindo(), exibindo mensagens explicativas e
aguardando o usuário pressionar ENTER para avançar para a próxima seção. A
função também solicita que o usuário responda a um questionário de satisfação
após a apresentação, demonstrando a continuação da interação com o usuário.

Função 'questionario_multipla_escolha()'
Essa função implementa a coleta de respostas dos usuários por meio de
um questionário de múltipla escolha. Os usuários inserem um código único e, em
seguida, respondem se recomendariam a apresentação a outras pessoas. O
código valida as respostas e mantém uma contagem das escolhas. Ele também
calcula as métricas, como a porcentagem de cada opção escolhida. Isso ilustra
a utilização de arrays, estruturas de repetição (do-while) e condicionais para
controle do programa.

Função 'main()'
A função main() é o ponto de entrada do programa. Ela inicia definindo o
idioma do programa como Português e, em seguida, chama as funções
bemvindo(), descricao_itens(), e questionario_multipla_escolha() em sequência.
Após cada etapa, o programa permite que o usuário decida se deseja reiniciar a
apresentação. O loop do-while permite que o usuário assista à apresentação
20

quantas vezes desejar. O programa é encerrado quando o usuário não deseja


mais reiniciar a apresentação. Isso demonstra a organização do programa em
funções e a interação contínua com o usuário.
21

5.1.1. SISTEMA DE VENDAS


O programa utiliza uma estrutura chamada vendas para armazenar
informações sobre cada venda, incluindo código, nome, sobrenome, idade,
preço e forma de pagamento. As informações de venda são armazenadas em
um array de estruturas vd.

Além disso, o programa mantém um array codigos_venda_cadastrados


para rastrear os códigos de vendas já cadastrados.

Função Principal (main):


A função principal (main) é o ponto de entrada do programa. Ela inicia
definindo o idioma do programa como "Portuguese_Brazil" e, em seguida, entra
em um loop que permite ao usuário escolher entre várias opções.

1-Nova Venda: Permite ao usuário cadastrar uma nova venda, coletando


informações como código, nome, sobrenome, idade e forma de pagamento. O
programa calcula o preço da venda com base na idade e a classifica como
inteira, meia ou isenta.

2-Listar Vendas: Lista todas as vendas cadastradas, incluindo detalhes


como código, nome, sobrenome, idade, preço e forma de pagamento.

3-Relatórios de Vendas: Exibe informações de resumo sobre as vendas,


incluindo o número total de vendas, o valor total das vendas, o número de vendas
inteiras, o valor total das vendas inteiras, o número de vendas meia e o valor
total das vendas meia.

4-Excluir Vendas: Solicita uma senha de administrador e permite a


exclusão de uma venda com base no código da venda.

0-Sair: Encerra o programa.


22

Validação:
O programa faz a validação de entradas do usuário, garantindo que as
opções de pagamento sejam válidas e que códigos de venda sejam únicos.
Também verifica a senha do administrador antes de permitir a exclusão de
vendas.

Variáveis Globais:
O programa usa variáveis globais para rastrear informações, como o
número total de vendas (qtde), o número de vendas inteiras (ttinteira), o número
de vendas meia (ttmeia) e o número de vendas isentas (ttisento).

Senha de Administrador:
O programa utiliza uma senha de administrador (senha_lgk) para autorizar
a exclusão de vendas. Somente com a senha correta é permitido excluir vendas.
23

6. MATEMATICA PARA COMPUTAÇÃO


É fundamental entender a importância da matemática na computação,
com uma análise integrada das aplicações de conceitos matemáticos no código
de exemplo fornecido. O código apresentado é um sistema simples de registro
de vendas de ingressos, onde as aplicações matemáticas são explicadas em
detalhes.
A ciência da computação e a matemática estão intrinsecamente ligadas.
A matemática desempenha um papel crucial em diversas áreas da computação,
desde a lógica de programação até a análise de algoritmos, passando por
cálculos de preços, estatísticas e modelagem de dados. Neste relatório,
exploraremos como a matemática é aplicada em um código específico de
registro de vendas de ingressos.
6.1. MATEMÁTICA NO CÓDIGO DE REGISTRO DE VENDAS
O código fornecido é um sistema simples que permite o registro de vendas
de ingressos. Vamos analisar as áreas em que a matemática desempenha um
papel fundamental nesse código, explicando diretamente em cima das linhas de
código relevantes.
6.1.1. MATEMÁTICA NO CÓDIGO DE REGISTRO DE VENDAS
O código fornecido é um sistema simples que permite o registro de vendas
de ingressos. Vamos analisar as áreas em que a matemática desempenha um
papel fundamental nesse código, explicando diretamente em cima das linhas de
código relevantes.
if (vd[qtde].idade < 16) {
vd[qtde].preco = 10.00;
ttmeia++;
} else if (vd[qtde].idade >= 60) {
vd[qtde].preco = 0.00;
ttisento++;
} else {
vd[qtde].preco = 20.00;
ttinteira++;
}
24

Nesta seção, a idade do comprador é avaliada, e com base nessa


avaliação, o preço do ingresso é definido. Essa funcionalidade envolve
operações matemáticas simples de comparação e atribuição. Por exemplo, se a
idade for inferior a 16 anos, o preço do ingresso é atribuído como R$10,00, e o
contador ttmeia é incrementado, representando as meias-entradas vendidas.
6.1.2. ESTATÍSTICAS E RELATÓRIOS
Outra aplicação da matemática no código é a geração de relatórios
estatísticos, incluindo o total de vendas, o valor total das vendas, o número de
ingressos inteiros vendidos, o valor total de ingressos inteiros, o número de meia-
entradas vendidas e o valor total de meia-entradas. Vamos analisar a parte do
código responsável por isso:
printf("Total de vendas: %d\n", qtde);
printf("Valor total das vendas: %.2f\n\n", ttinteira * 20.00 + ttmeia * 10.00);
printf("Total de inteiras: %d\n", ttinteira);
printf("Valor total de inteiras: %.2f\n\n", ttinteira * 20.00);
printf("Total de meia: %d\n", ttmeia);
printf("Valor total de meia: %.2f\n\n", ttmeia * 10.00);
printf("Total de isento: %d\n", ttisento);
Essa seção realiza cálculos matemáticos para calcular o valor total das
vendas, o valor total das inteiras e o valor total das meias-entradas. As
operações matemáticas de multiplicação e adição são fundamentais para
fornecer informações úteis sobre as vendas.

6.1.3. MANIPULAÇÃO DE DADOS


A manipulação de dados no código inclui a exclusão de vendas, o que
envolve ajustes matemáticos nos índices de vetor e na reorganização dos dados.
Isso acontece nas linhas de código a seguir:

for (i = 0; i < qtde; i++) {


if (vd[i].cod == codigoExcluir) {
if (vd[i].idade < 16) {
ttmeia--;
25

} else if (vd[i].idade >= 60) {


ttisento--;
} else {
ttinteira--;
}
printf("Venda com código %d excluída com sucesso.\n", vd[i].cod);
for (int j = i; j < qtde - 1; j++) {
vd[j] = vd[j + 1];
}
qtde--;
break;
}
}

Nesta parte, os índices de vetor são ajustados após a exclusão de uma


venda, e as estatísticas são atualizadas com base na idade do comprador da
venda excluída. A matemática é usada para ajustar os valores das variáveis
ttmeia, ttisento e ttinteira.
6.1.4. CONSIDERAÇÕES FINAIS
A matemática é uma linguagem universal na ciência da computação e
desempenha um papel central em muitas de suas aplicações. O código de
registro de vendas de ingressos é apenas um exemplo simples, mas ilustra como
os conceitos matemáticos são incorporados em softwares para realizar cálculos,
tomadas de decisão e manipulação de dados.
Este relatório destaca a importância de compreender e aplicar a
matemática na computação. A capacidade de lidar com números, lógica e
algoritmos é essencial para o desenvolvimento de sistemas de software eficazes.
A matemática fornece as ferramentas necessárias para resolver problemas
computacionais e tomar decisões informadas com base em dados.
Portanto, é fundamental que os estudantes e profissionais da área de
computação adquiram conhecimentos sólidos em matemática para se
destacarem em suas carreiras e serem capazes de criar sistemas de software
robustos e eficientes.
26
27

CONCLUSÃO
A criação deste museu temático espacial missão Artemis I demonstra uma
integração admirável de conhecimentos adquiridos no curso de Análise e
Desenvolvimento de Sistemas. A aplicação de um programa em C para a venda
de ingressos e a implementação de um questionário de satisfação para os
visitantes são exemplos concretos de como os conceitos de programação foram
eficazmente utilizados para aprimorar a experiência do usuário.

Além disso, a incorporação de processos da engenharia de software


revela uma abordagem metódica e estruturada, garantindo a qualidade e a
confiabilidade do sistema desenvolvido. A consideração dos fundamentos de
redes sugere uma preocupação com a conectividade e a acessibilidade,
aspectos cruciais em um contexto tecnológico atual.

A inclusão de conhecimentos de matemática para computação demonstra


uma compreensão sólida dos princípios subjacentes aos algoritmos e estruturas
de dados utilizados no projeto. Adicionalmente, a consideração de ética e
legislação profissional ressalta a responsabilidade social e legal associada ao
desenvolvimento de sistemas.
28

REFERÊNCIAS

PRESSMAN, Roger S. Engenharia de Software. Porto Alegre: AMGH,


2011.
MENDES, Douglas Rocha. Redes de computadores: teoria e prática.
Novatec Editora, 2020.
TANENBAUM, Andrew S.; WETHERALL, David J. Computer Networks. 5.
ed. Pearson Education, 2012.
29

CODIGOS EM C

#include <stdio.h>
#include <string.h>
#include <locale.h>

struct vendas {
int cod;
char nome[100];
char sobrenome[100];
int idade;
float preco;
char tipopgto[50];
};

int qtde = 0;
struct vendas vd[1000];
int ttinteira = 0, ttmeia = 0, ttisento = 0;

const char senha_lgk[] = "lgk";


int codigos_venda_cadastrados[1000];
int num_codigos_venda_cadastrados = 0;

int main() {
setlocale(LC_ALL, "Portuguese_Brazil");
char escolha;
char senha[100];

do {
system("cls");
printf("Escolha\n");
printf("1-Nova Venda\n");
printf("2-Listar Vendas\n");
30

printf("3-Relatórios de Vendas\n");
printf("4-Excluir Vendas\n");
printf("0-Sair\n\n");
scanf(" %c", &escolha);

switch (escolha) {
case '1':
system("cls");

int novoCodigo;
int codigoExistente;

do {
codigoExistente = 0;
printf("Digite codigo: ");
scanf("%d", &novoCodigo);

for (int i = 0; i < num_codigos_venda_cadastrados; i++) {


if (codigos_venda_cadastrados[i] == novoCodigo) {
printf("O código de venda %d já existe. Digite outro
código.\n", novoCodigo);
codigoExistente = 1;
break;
}
}

} while (codigoExistente);

codigos_venda_cadastrados[num_codigos_venda_cadastrados] = novoCodigo;
num_codigos_venda_cadastrados++;

vd[qtde].cod = novoCodigo;
31

printf("Digite o primeiro nome: ");


scanf("%s", vd[qtde].nome);
printf("Digite sobrenome: ");
scanf("%s", vd[qtde].sobrenome);
printf("Digite idade: ");
scanf("%d", &vd[qtde].idade);

printf("Escolha a forma de pagamento:\n");


printf("1 - Cartão\n");
printf("2 - Dinheiro\n");
printf("3 - Pix\n");
int escolhaPgto;
scanf("%d", &escolhaPgto);

if (escolhaPgto < 1 || escolhaPgto > 3) {


printf("Opção de pagamento inválida. A venda não foi
cadastrada.\n");
getch();
break;
}

switch (escolhaPgto) {
case 1:
strcpy(vd[qtde].tipopgto, "Cartão");
break;
case 2:
strcpy(vd[qtde].tipopgto, "Dinheiro");
break;
case 3:
strcpy(vd[qtde].tipopgto, "Pix");
break;
}
32

if (vd[qtde].idade < 18) {


strcpy(vd[qtde].sobrenome, "*");
}

if (vd[qtde].idade < 16) {


vd[qtde].preco = 10.00;
ttmeia++;
} else if (vd[qtde].idade >= 60) {
vd[qtde].preco = 0.00;
ttisento++;
} else {
vd[qtde].preco = 20.00;
ttinteira++;
}
qtde++;

getch();
break;
case '2':
system("cls");

int cont;
for (cont = 0; cont < qtde; cont++) {
printf("-------------------------------------\n");
printf(" Cod = %d\n", vd[cont].cod);
printf(" Nome = %s %s\n", vd[cont].nome,
vd[cont].sobrenome);
printf(" Idade = %d\n", vd[cont].idade);
printf(" Preco = %.2f\n", vd[cont].preco);
printf(" Forma de Pagamento = %s\n\n", vd[cont].tipopgto);
}
33

getch();
break;
case '3':
system("cls");

printf("Total de vendas: %d\n", qtde);


printf("Valor total das vendas: %.2f\n\n", ttinteira * 20.00 + ttmeia
* 10.00);
printf("Total de inteiras: %d\n", ttinteira);
printf("Valor total de inteiras: %.2f\n\n", ttinteira * 20.00);
printf("Total de meia: %d\n", ttmeia);
printf("Valor total de meia: %.2f\n\n", ttmeia * 10.00);
printf("Total de isento: %d\n", ttisento);

getch();
break;
case '4':
system("cls");
printf("Digite a senha de administrador: ");
scanf(" %s", senha);

if (strcmp(senha, senha_lgk) == 0) {
int codigoExcluir;
printf("Digite o código da venda a ser excluída: ");
scanf("%d", &codigoExcluir);
int i;

for (i = 0; i < qtde; i++) {


if (vd[i].cod == codigoExcluir) {
if (vd[i].idade < 16) {
ttmeia--;
} else if (vd[i].idade >= 60) {
ttisento--;
34

} else {
ttinteira--;
}
printf("Venda com código %d excluída com sucesso.\n",
vd[i].cod);
for (int j = i; j < qtde - 1; j++) {
vd[j] = vd[j + 1];
}
qtde--;

for (int k = 0; k < num_codigos_venda_cadastrados;


k++) {
if (codigos_venda_cadastrados[k] == codigoExcluir) {
for (int l = k; l < num_codigos_venda_cadastrados
- 1; l++) {
codigos_venda_cadastrados[l] =
codigos_venda_cadastrados[l + 1];
}
num_codigos_venda_cadastrados--;
break;
}
}

break;
}
}
} else {
printf("Senha de administrador incorreta. Não autorizado a
excluir vendas.\n");
}
getch();
break;
case '0':
35

system("cls");
printf("Encerrando...\n");
getch();
break;
default:
system("cls");
printf("Opcao invalida\n");
getch();
break;
}
} while (escolha != '0');
return 0;
}
36

#include <stdio.h>
#include <locale.h>

void bemvindo() {
printf("Bem-vindo ao nosso Museu da Exploração Espacial!\n\n\n");
getchar();

printf("Este museu é organizado pela ONG LGK, dedicada à divulgação


da cultura e assuntos diversos, em parceria com as empresas TP-Link, Dell,
Pluscable e Microsoft.\n");
getchar();

printf("Aqui, você encontrará uma exposição fascinante sobre a missão


Artemis I e seu incrível sistema de lançamento.\n");
getchar();

printf("Ao final da sua visita, pedimos que você preencha um


questionário. Sua opinião é muito importante para nós!\n\n");
getchar();

printf("Agora fique com uma breve descrição sobre a exposição,


aproveite e divirta-se!!!\n");
getchar();

system("cls");
}

void descricao_itens() {
printf("Sistema de Lançamento Espacial (SLS):\n\n");
getchar();

printf("O Sistema de Lançamento Espacial (SLS) é um veículo de


lançamento superpesado e descartável usado pela NASA.\n");
37

getchar();

printf("Como o principal veículo de lançamento do programa Artemis de


pouso na Lua, o SLS foi projetado para lançar a espaçonave Orion tripulada em
uma trajetória trans-lunar.\n");
getchar();

printf("O primeiro lançamento do SLS foi a Artemis I, que ocorreu em


16 de novembro de 2022. O SLS é o único foguete que pode enviar a Orion,
astronautas e carga diretamente para a Lua em um único lançamento.\n\n");
getchar();

printf("O SLS é composto por várias partes:\n");


printf("- Estágio central: Com 65 metros de altura e 8,4 metros de
diâmetro, é alimentado por quatro motores RS-25 D/E. Ele fornece a maior parte
do empuxo inicial para sair da Terra.\n");
getchar();

printf("- Impulsionadores: Dois impulsionadores de foguetes sólidos de


cinco segmentos fornecem empuxo adicional durante o lançamento.\n");
getchar();

printf("- Estágio superior (ICPS): Este estágio fornece o empuxo final


para enviar a espaçonave Orion em sua trajetória trans-lunar.\n\n");
getchar();

printf("Combinando potência e capacidade, o SLS é parte da espinha


dorsal da NASA para a exploração do espaço profundo e Artemis.\n");
getchar();

system("cls");
38

printf("Nós da ONG LGK esperamos que você tenha aproveitado ao


máximo da experiência, agora gostaríamos que você respondesse a uma
pesquisa de satisfação para nos ajudar, vamos nessa?");
getchar();
system("cls");
}

#define MAX_USUARIOS 1000

void questionario_multipla_escolha() {
int codigo, resposta, total = 0, contagem[4] = {0},
respostas_usuarios[MAX_USUARIOS] = {0};
char sair;

do {
printf("Digite o código do usuário: ");
scanf("%d", &codigo);

if (codigo < 1 || codigo >= MAX_USUARIOS ||


respostas_usuarios[codigo] != 0) {
printf("Código inválido ou já utilizado. Escolha um código válido e
único.\n");
continue;
}

printf("Você recomendaria esta apresentação a um amigo ou


colega?\n");
printf("1. Definitivamente sim\n2. Provavelmente sim\n3. Não tenho
certeza\n4. Definitivamente não\n");
scanf("%d", &resposta);

if (resposta >= 1 && resposta <= 4) {


if (respostas_usuarios[codigo] != 0) {
39

contagem[respostas_usuarios[codigo] - 1]--;
total--;
}
respostas_usuarios[codigo] = resposta;
contagem[resposta - 1]++;
total++;
} else {
printf("Resposta inválida. Por favor, escolha uma opção de 1 a
4.\n");
}

printf("Deseja sair da pesquisa? (s/n): ");


scanf(" %c", &sair);
} while (sair != 's' && sair != 'S');

printf("\nRelatório de respostas:\n");
char *opcoes[] = {"Definitivamente sim", "Provavelmente sim", "Não
tenho certeza", "Definitivamente não"};
for (int i = 0; i < 4; i++) {
printf("%s: %d\n", opcoes[i], contagem[i]);
}

printf("\nMétricas:\n");
for (int i = 0; i < 4; i++) {
printf("Percentual de %s: %.2f%%\n", opcoes[i], (contagem[i] /
(float)total) * 100);
}

getchar();
}

int main() {
char tecla;
40

do {
setlocale(LC_ALL, "Portuguese");

bemvindo();
descricao_itens();
questionario_multipla_escolha();

printf("\nDigite 1 para reiniciar a apresentação: ");


scanf(" %c", &tecla);
system("cls");
} while (tecla == '1');

return 0;
}
41

EXTENSÃO UNIVERSITARIA

NOMES PARTICIPANTES

Gustavo Henrique Oliveira Doviso – RA: G77CHE6


Kauan Medeiros Pereira – RA: G814AJ7
Lucas Diego Lisboa Mendes – RA: G74GHA2
Lucas Jesus – RA: N071JF9
Roberto Gabriel Rodrigues Oliveira – RA: N392AG2

Nesta visita técnica ao Museu Histórico Sorocabano localizado no zoológico de


Sorocaba na data de 02.09.2023, a equipe identificou que alguns serviços com a
atuação do T.I, certamente ocorrera ganhos significativos tanto nos processos de
gerenciamento do Museu como na prestação de serviço a comunidade.
Um dos serviços realizados pela recepção do Museu é o controle dos visitantes,
o qual hoje é realizado de uma forma manual (papel e caneta). Então, após esta análise,
identificamos que há possibilidade de criarmos um programa de controle de visitantes,
o qual fornecerá a idade média e a quantidade de visitantes que este Museu recebe
diariamente e mensalmente, para assim utilizarem estes dados para tomadas de
decisões, tanto em melhorias no Museu como nos processos realizados por toda a
equipe que gerência o Museu.
Com esta visita, toda a equipe de desenvolvimento do PIM, conseguiu entender
de forma clara e objetiva, quais seriam os próximos passos para iniciarmos a
desenvolver nosso projeto, cujo tema está atrelado ao gerenciamento de um museu
multitemático.
42

O casarão, onde hoje hospeda o Museu, foi


construído pelos escravos de João de Almeida
Pedroso em 1780, sendo as paredes externas em
taipa de pilão e a interna em taipa de mão. Foi sede
de fazenda, residência, escola, e atualmente abriga
o Museu Histórico Sorocabano, inaugurado em
1954, com o objetivo de reunir, conservar e divulgar
para fins de estudos, objetos, documentos e
imagens sobre a História de Sorocaba, desde sua
origem aos dias de hoje.
No Jardim do Museu há alguns instrumentos da época como Tearez, Chafariz,
Trole (Charrete) e o Zoológico de Sorocaba, fundado em 20 de outubro de 1968. O
nome do Zoológico é uma homenagem a Joaquim Eugênio Monteiro de Barros, antigo
proprietário da área onde o Zoológico está instalado.
CONTROLE DE VISITANTES

Este processo é realizado manualmente


pelos visitantes (papel e caneta), neste caderno são
inseridos os nomes, idade e cidade. Conforme
conversa com a recepcionista que realiza este
controle, disse que seria ótimo se tivessem um
sistema que realizasse este processo, assim
poderiam verificar pontos de melhorias e o nível de
satisfação dos visitantes, pois segundo ela, o número de visitantes de outras cidades e
até estados são frequentes.

RESPONSÁVEL PRESENTE MUSEU, SOROCABA, 02 DE SETEMBRO DE 2023.

Você também pode gostar