Você está na página 1de 22

UNIVERSIDADE PAULISTA – UNIP

UNIP INTERATIVA
PROJETO INTEGRADO MULTIDICIPLINAR

SISTEMA PARA VENDA DE PASSAGEM DE ÔNIBUS EM LINGUAGEM C

ANTONIO DONIZETE CORAZZA JUNIOR RA 1406464

BEBEDOURO-SP
2018
UNIVERSIDADE PAULISTA – UNIP
UNIP INTERATIVA
PROJETO INTEGRADO MULTIDICIPLINAR

SISTEMA PARA VENDA DE PASSAGEM DE ÔNIBUS EM LINGUAGEM C

ANTONIO DONIZETE CORAZZA JUNIOR RA 1406464

Projeto integrado multidisciplinar IV para


obtenção de nota no curso de Análise e
Desenvolvimento de Sistemas, apresentado
a Universidade Paulista Unip Orientador:
Prof.:

BEBEDOURO-SP

2018
RESUMO

A proposta deste trabalho foi desenvolver um sistema para a venda de passagens de


ônibus para a empresa Teixeira, em linguagem C. A elaboração do sistema foi
composta de duas partes, sendo, uma teórica, e outra pratica. Na parte pratica foi
desenvolvido um sistema com a utilização dos diversos métodos e recursos
disponíveis na linguagem C, que utilizou o compilador DEV C++. A parte teórica faz
referencia aos recursos da linguagem C, ao uso de processos de software e também
mostra através do código fonte a logica do desenvolvimento do sistema para a venda
de passagem.

Palavras – chave: Software, Linguagem C, Desenvolvimento.


ABSTRACT

The purpose of this study was to develop a system for the sale of bus tickets to Teixeira
company in language C. The development of the system was composed of two parts
being a theoretical and one practical. In the practice a system was developed with the
use of various methods and resources available in the C language, which used the
DEV C ++ compiler. The theoretical part makes reference to the features of the C
language, the use of software processes and also shows through the source code the
logic of the system development for the sale of passage.

Key - words: Software, C language, Development.


SUMÁRIO

1- INTRODUÇÃO..................................................................................................5

2- DESENVOLVIMENTO DE UM SISTEMA PARA VENDA DE PASSAGEM DE


ÔNIBUS, EM LINGUAGEM C...............................................................................6

2.1 Linguagem C......................................................................................7

2.2 Uso de processo de software...........................................................10

2.3 Lógica do Software...........................................................................14

2.4 Fluxograma.......................................................................................16

2.5 Código do programa.........................................................................17

4- CONCLUSÃO....................................................................................20

REFERÊNCIAS.......................................................................................21
5

1- INTRODUÇÃO

Este projeto tem como objetivo principal o desenvolvimento de um sistema em


linguagem c para a venda de passagem de ônibus da empresa Teixeira.

A empresa Teixeira, trabalha no transporte interurbano de passageiros, entre


as cidades de Conselheiro Lafaiete e Belo Horizonte.

A proposta do projeto foi composta de duas partes, uma teórica e outra prática.
Na parte prática foi desenvolvido um software em linguagem c para atender as
necessidades da empresa.

E na parte teórica foi apresentada a técnica de criação do software, os


recursos utilizados, a lógica de funcionamento e o seu código fonte. Este software foi
desenvolvido utilizando os diversos recursos e métodos da linguagem c.

A utilização de softwares nos dias atuais tem um papel cada vez mais
estratégico para as empresas, pois aumentam a produtividade, lucros, facilitam no
controle e gestão da empresa.

Para o desenvolvimento do software de venda de passagens foi utilizada uma


metodologia de pesquisa baseada em sites, pesquisas bibliográficas e autores como
COSTA e IVO. E a ferramenta adotada para o desenvolvimento do software foi o
compilador DEV C++.
6

2- DESENVOLVIMENTO DE UM SISTEMA PARA VENDA DE PASSAGEM DE

ÔNIBUS, EM LINGUAGEM C

Os computadores estão presentes em quase todos os setores das indústrias,


empresas, comércios, escolas, residências, etc. Ele ajuda, facilita a vida e garante
ações mais rápidas e precisas. Porém, o computador não possui conhecimento
próprio, ele precisa da ajuda de alguém que o instrua quais passos seguir.

O computador é totalmente irracional, incapaz de executar qualquer tarefa se


não houver algo ou alguém que o instrua quanto aos passos para efetua-la.
Ao mesmo tempo, é extremamente fiel: a máquina obedecerá a suas ordens
exatamente da maneira que foram expressas. Por um lado, essa obediência
é muito louvável, mas por outro, isso significa que uma ordem mal dada será
executada fielmente, da maneira que foi instruído. (IVO, 2014, p. 10).

Para tanto, esses passos são definidos por um algoritmo escrito conforme uma
lógica correta, para que ele possa cumprir a tarefa pretendida. Para que os
computadores executem essas tarefas pretendidas, ele precisa de um sistema
operacional.

Para que um software ou programa seja executado, é necessário que o


sistema operacional compreenda as instruções desse software. Os softwares são
comandos escritos em linguagem computacional, e pode ser escrito em varias
linguagens (C, C++, Delphi, Pascal, PHP, COBOL, etc.), e esses comandos resultam
dos algoritmos pretendidos.

Todas as ações no nosso dia a dia seguem um algoritmo, seja um ato


intencional, seja um ato instintivo. Com o decorrer da vida, conforme vamos
crescendo e aprendendo, novas instruções vão se incorporando ao repertorio.
A experiência humana é um repertorio de algoritmos que foram se
acumulando durante a vida. O algoritmo é um conjunto finito de instruções, de
comando, de ações que tem como objetivo a resolução de uma tarefa, ou a
resolução de um problema. (IVO, 2014, p. 14).

No desenvolvimento do sistema para venda de passagens de ônibus para a


empresa Teixeira, foi utilizada a linguagem c, que é uma linguagem de programação
estruturada, considerada de nível médio. E a ferramenta adotada para o
desenvolvimento deste sistema foi o compilador DEV C++.
7

2.1 Linguagem c

A linguagem C é uma linguagem de programação considerada de médio nível,


não sendo uma linguagem de baixo nível voltada exclusivamente para instruções de
máquina, como o assembly, porém não é uma linguagem de alto nível - como Visual
Basic, Java – sendo que ela permite a manipulação de bits, bytes e endereços de
memória, combinando elementos das linguagens de alto nível com a funcionalidade
das linguagens de máquina.

C é uma linguagem imperativa e procedural, para implementação de sistemas.


Seus pontos de design foram para ele ser compilado, fornecendo acesso de
baixo nível à memória e baixos requerimentos do hardware. Também foi
desenvolvido para ser uma linguagem de alto nível, para maior
reaproveitamento do código. C foi útil para muitas aplicações que foram
codificadas originalmente em Assembly. (WIKIPÉDIA, 2015).

Essa linguagem é considerada uma das mais populares e para a qual poucos
sistemas não possuem compiladores. A linguagem C foi desenvolvida originalmente
por Dennis Ritchie, entre os anos de 1969 e 1973, sendo que o marco dessa
linguagem é o ano de 1972, possuindo características de flexibilidade e portabilidade,
não sendo vinculada a um sistema operacional ou a qualquer outra particularidade de
uma máquina.

O C é uma linguagem de programação genérica que é utilizada para a criação


de programas diversos como processadores de texto, planilhas eletrônicas, sistemas
operacionais, programas de comunicação, programas para a automação industrial,
gerenciadores de bancos de dados, programas de projeto assistido por computador,
programas para a solução de problemas da Engenharia, Física, Química, dentre
outros.

A linguagem de programação C tornou-se rapidamente uma das mais


importantes e populares, principalmente por ser muito poderosa, portátil,
flexível e pela padronização dos compiladores existentes. C foi desenhada
para que o usuário possa planejar programas estruturados e modulares.
(MIZRAHI, p.2, 2008).
8

Um programa em C é constituído basicamente de um cabeçalho (onde estão


contidas as diretivas do compilador, definindo o valor das constantes simbólicas, das
variáveis globais, onde é feita também a inclusão de bibliotecas, declaração de rotinas,
dentre outras funcionalidades); de um bloco de instruções contidos em uma função
principal, podendo ter outros blocos de rotinas; e da documentação do programa
(comentários).

A linguagem C possui uma sintaxe muito rígida, sendo que qualquer erro em
suas estruturas de linguagem pode comprometer a compilação. Ela é uma linguagem
case sensitive, isto é, faz diferença entre letras maiúsculas e minúsculas na
identificação de suas variáveis e funções.

Um programa em C é composto por um conjunto de funções. A função pela


qual o programa começa a ser executado chama-se main, sendo que, após cada
comando em C, deve-se colocar um ; (ponto-e-vírgula) para encerrar a linha e evitar
erros. Esse programa também deve ser identado para que possa ser lido com mais
facilidade por outras pessoas que venham a analisar o código.

As variáveis são posições de memória que podem ser identificadas através de


um nome, podendo ter seu conteúdo alterado por um comando de atribuição, mudando
o valor após a atribuição. Toda variável possui um tipo, o qual define as espécies de
valores que a variável pode armazenar, os quais podem ser numéricos (inteiros, reais),
caracteres (únicos e em cadeias), lógicos, cada tipo ocupa certa quantidade de
memória.

Algumas observações em relação à declaração de variáveis: O nome deve


ser único, ou seja, não podemos atribuir o mesmo nome para duas variáveis.
É possível declarar mais de uma variável na mesma linha, desde que elas
sejam do mesmo tipo. Para isso, basta separa-las por vírgulas. Cada tipo de
variável deve ser declarado em uma linha distinta. (LEAL, p. 25,2015).

Todas as variáveis devem ser declaradas antes de serem usadas. Existem


também certos valores que podem ser atribuídos como constantes durante toda a
execução do programa, os quais são denominados constantes, bem como variáveis
que armazenam valores mais complexos, que são chamadas de vetores e matrizes.
9

Ainda podemos citar as variáveis globais, que são colocadas fora de todas as funções
do programa. Elas são conhecidas e podem ser alteradas por todas as funções do
programa. Quando uma função tem uma variável local com o mesmo nome de uma
variável global a função dará preferência à variável local.

Uma função é um bloco de código de programa que pode ser usado diversas
vezes em sua execução. O uso de funções permite que o programa fique mais legível,
mais bem estruturado. Um programa em C consiste, no fundo, de várias funções
colocadas juntas, conforme já citado acima, a função principal é chamada de main.

Muitas vezes é necessário fazer com que uma função retorne um valor.
Podemos especificar um tipo de retorno indicando antes do nome da função. Mas,
para dizer ao C o que vamos retornar, precisamos da palavra reservada return.
Sabendo disto, fica fácil, por exemplo, fazer uma função para multiplicar dois inteiros
e que retorna o resultado da multiplicação para a função principal. Na função principal
costuma ser colocado por padrão o comando (return 0;), o que indica que a função
principal não retorna nenhum valor para outra.

Para fazer programas grandes e complexos é utilizada a construção bloco a


bloco, sem as funções os programas teriam que ser mais curtos e de pouca
complexidade.

Todas as linguagens de programação têm palavras reservadas. As palavras


reservadas não podem ser usadas a não ser nos seus propósitos originais, isto é, não
podemos declarar funções ou variáveis com os mesmos nomes. Como o C é "case
sensitive" podemos declarar uma variável For, apesar de haver uma palavra reservada
for, mas isto não é uma coisa recomendável de se fazer pois pode gerar confusão. O
C tem 32 (trinta e duas) palavras reservadas, que são usadas para compor os
comandos para execução dos programas, e não podem servir para denominar
variáveis. Essas palavras reservadas são originadas da língua inglesa.

Palavras reservadas pelo padrão ANSI: auto, break , case, char, const,
continue, default, do, double, else, enum, extern float, for, goto, if, int, long,
register, return, short, signed, sizeof, static, struct, switch, typedef, union,
unsigned, void, volatile, while.(IVO, p. 62, 2014).
10

Para estabelecer as relações entre as variáveis, também são usados os


operadores, que são os aritméticos e de atribuição; e os lógicos e relacionais. Esses
operadores são sinais de soma, subtração, multiplicação, divisão, maior, menor, ou,
e, dentre outros.

Nessa analise da linguagem C, podemos citar ainda os arquivos-cabeçalhos,


que são aqueles que temos mandado o compilador incluir no início do código e que
sempre terminam em “h”. A extensão. h vem de header (cabeçalho em inglês). Estes
arquivos, na verdade, não possuem os códigos completos das funções. Eles só
contêm protótipos de funções. É o que basta. O compilador lê estes protótipos e,
baseado nas informações lá contidas, gera o código correto.

2.2 Uso de processos de software

O Ciclo de Vida do Desenvolvimento de Sistemas (SDLC – Systems


Development Life Cycle), conhecido também com o “ciclo de vida do software” referese
aos estágios de concepção, projeto, criação e implementação de um Sistema
Informatizado. Geralmente, o ciclo de vida de um software inicia – se com o
levantamento das necessidades, também chamado de análise de requisitos,
identificando as necessidades de informações da organização.

Após a identificação das necessidades do cliente, passamos para a análise de


alternativas, que consiste na identificação e avaliação de sistemas alternativos. Feito
a análise das alternativas, começa a etapa de projeto, que trata da construção das
especificações detalhadas para o sistema que foi selecionado.

Essas especificações incluem o projeto das interfaces, banco de dados,


características físicas do sistema, tais como número, tipos e localizações das
estações de trabalho, hardware de processamento, o cabeamento e os
dispositivos de rede; deve especificar os procedimentos para testar o sistema
completo antes da instalação. (COSTA, p. 63, 2014).

Terminado isso, começa o desenvolvimento, que inclui o desenvolvimento


propriamente dito ou a aquisição do software, a provável aquisição do hardware e o
teste do novo sistema.
11

Desenvolvido o sistema, ocorre à implementação após o sistema ter passado


satisfatoriamente por testes de aceitação. O sistema é transferido do ambiente de
desenvolvimento para o ambiente de produção. Se já existir um sistema, este deve
migrar para o novo. Após implementado, o software passa para a faze de Manutenção,
a qual refere-se a todas as atividades relacionadas a um sistema depois que ele é
implementado. Deve incluir atividades tais como a correção de software que não
funcione corretamente, a adição de novos recursos aos sistemas em resposta às
novas demandas dos usuários, dentre outras.

Alguns modelos de ciclo de vida incluem a retirada, que ocorre quando o


cancelamento ou a troca do produto do software. Não há modelo de ciclo de vida de
software uniformemente aceito, ocorrendo algumas variações de um para o outro,
mantendo, porém, um esquema básico, muitas vezes unindo ou separando algumas
etapas.

Muitas organizações veem cada iniciativa de desenvolvimento de sistemas


como um projeto. As organizações mais sofisticadas, porém, tratam o
desenvolvimento de sistemas como um processo. Elas reconhecem que, embora os
sistemas possam diferir substancialmente uns dos outros, seu desenvolvimento segue
um roteiro previsível, bem definido e manejável. Estas organizações aprendem com
seus sucessos e erros. Elas criam manuais de instruções sobre temas que auxiliam
os administradores e os desenvolvedores a repetir o êxito obtido em atividades
bemsucedidas e a evitar as mal - sucedidas.

Com isso é acumulado um conjunto de ferramentas que auxiliam a


institucionalizar, automatizar e auditar as atividades associadas com o
desenvolvimento de sistemas. Podendo medir o sucesso de suas iniciativas de
desenvolvimento de sistemas usando métricas e indicadores, tais com tempo para
conclusão, mão-de-obra necessária e as falhas no produto final relacionadas com as
características ou complexidade do novo sistema.

As organizações podem usar ferramentas de software de gestão de


processos comerciais para auxiliá-las na padronização e melhoria dos seus processos
de desenvolvimento de sistemas. A maioria dos produtos de software de gestão de
processos enfatiza uma metodologia de desenvolvimento específica. Uma
12

metodologia é um conjunto prescrito documentado de práticas, ferramentas,


documentos, relatórios e, frequentemente, anotações.

Os pacotes comerciais de software de gestão de processos fornecem suporte


para várias metodologias populares, tais como o RUP (Rational Unified Process). Este
software normalmente inclui gabaritos ou modelos para guiar os desenvolvedores na
criação de produtos intermediários, tais como esboços, especificações e quaisquer
outras saídas associadas com a metodologia que ele suporta.

O RUP é uma instancia do Processo Unificado desenvolvido pela empresa


Rational e hoje mantido pela IBM. Trata-se de um processo configurável de
engenharia de software e serve como um guia de como se deve usar a
linguagem de modelos UML no ciclo de desenvolvimento de software.
(COSTA, p.77, 2014).

As organizações às vezes designam um administrador de processos ou


bibliotecário de processos para customizar templates ou modelos e tutoriais conforme
os padrões da organização e para reunir as métricas e as melhores práticas para a
customização da biblioteca de processos.

As organizações que tratam o desenvolvimento de sistemas como um


processo, frequentemente esforçam-se para aplicar aos seus métodos os princípios
da gestão de qualidade total e da melhoria do processo. O Software Engineering
Institute (SEI) desenvolveu e popularizou um modelo chamado CMM (Capability
Maturity Model) que auxilia estas organizações a medir quão bem elas alcançam estes
objetivos e as guia na melhoria de seus processos de desenvolvimento de sistemas.

O software de gestão de projetos complementa o software de gestão de


processos, com ferramentas que os líderes de projetos podem usar como auxílio na
administração de um projeto de desenvolvimento de software complexo. O MS Project
é um exemplo destas ferramentas.

Dentre os principais modelos de ciclo de vida de software estão o modelo


codifica - remenda; o modelo cascata; o modelo incremental; o modelo RAD ( Rapid
Application Development ); os modelos evolucionários ( modelo de prototipagem e o
modelo espiral); os modelos especializados; o Unified process (UP); o Rational Unified
13

Process (RUP); o processo práxis; e o processo cleanroom. Existem ainda os


chamados métodos ágeis, como o XP (extremme programming); o método scrum;
dentre outros.

No processo de desenvolvimento do software para a empresa de ônibus


Teixeira foi usado o modelo cascata, sendo que, inicialmente, foi feito um contato a
referida empresa e, após o levantamento das necessidades, foi verificada a análise
das possibilidades de um sistema que melhor atendesse o cliente. Após isso, foi
projetado um design pelos programadores e demonstrado para a empresa, o qual,
após a análise da direção administrativa, foi prontamente aceito.

Grande parte do sucesso do modelo cascata esta no fato de ser orientado


para documentação. No entanto, esta abrange mais do que um arquivo e
texto: incluindo representações gráficas e mesmo simulações. Uma
abordagem que incorpora processos, métodos e ferramentas deve ser
utilizada pelos criadores de software. (COSTA, p.64, 2014).

Posteriormente, foi feita a codificação do programa, sendo todas as etapas do


código submetidas a testes de mesa e executado no programa (compilador e IDE) Dev
C++, para fins de verificação de possíveis erros. Após essa etapa, o software já
executável foi submetido a vários testes, inclusive sendo alguns com o
acompanhamento da empresa, sendo finalmente aceito e colocado em funcionamento
pela empresa. Agora o software já está sendo usado e, se necessário, passará por
manutenções e adaptações, caso venham a surgir erros futuros ou novas
necessidades do cliente.

O ciclo de vida de um software é indeterminado, normalmente o software


evolui conforme vão surgindo novas necessidades e também acompanhando o
desenvolvimento tecnológico. O Sistema Operacional Windows, por exemplo, vem
tendo atualizações e novas versões ao longo dos anos, tudo visando a acompanhar a
evolução tecnológica e o surgimento de novas possibilidades de interação com o
usuário.
14

2.3 Lógica do Software

Para a construção do software venda de passagem em linguagem C, foi


definido as variáveis global e local. Depois, foi montado o menu principal com opções
de 1 a 6, sendo que a opção 1 visualiza: poltronas vendidas; opção 2: vagas na janela
; opção 3: vagas no corredor; opção 4 é um sub menu para a venda de passagens;
opção 5: gestão do caixa e opção 6 sair do programa, conforme demonstrado na figura
abaixo.
Figura 1- Menu Principal

Figura 2- Menu 2

O usuário do software digita o número correspondente à opção desejada, e


vai visualiza-la na tela, sendo que a opção 4 direciona- o para o menu 2, que se refere
a três condições para a venda das passagens: opção 1 refere-se a venda para idosos
( ate duas passagens podem ter gratuidade de 100%); opção 2 refere-se a venda de
passagens para estudante ( passagens com 50% de desconto ); e opção 3 refere-se
a venda comum.

Assim que escolhida a opção para a compra da passagem, o software vai


analisar se a poltrona escolhida pelo cliente está disponível ou não. Se a poltrona já
estiver vendida o software emitirá a mensagem: Poltrona indisponível, favor consultar
poltronas disponíveis. Estando disponível o software irá imprimir na tela um ticket
contendo: o número da poltrona, destino e número do ônibus, data e horário da partida.
15

Figura 3- Ticket

A opção 5 do menu principal faz a gestão do caixa, ou seja, irá mostrar na tela
o valor total arrecadado e a quantidade de passagens vendidas.

Figura 4- Gestão do caixa

2.4 Fluxograma
16

2.5 Código do programa


1: #include <stdlib.h>
2: #include <stdio.h>
17

3: #define maxvagas 36
4: #define preco 50
5: void montamenu(int lugares[],char vendidas[],int idosos,int estudantes,int passageiros,double total);
6: void imprimepassagem (int poltrona);
7:
8: int main() {
9: // declaração das variaveis
10: int p_lugares[maxvagas];
11: char p_vendidas[maxvagas];
12: int i;
13: int idosos = 0;
14: int estudantes = 0;
15: int passageiros = 0;
16: double total = 0;
17: int a = 1;
18: for ( i=0;i<=maxvagas;i++){
19: p_lugares[i] = a;
20: a++; 21: }
22:
23: montamenu(p_lugares, p_vendidas,idosos,estudantes,passageiros,total);
24: return 0;
25: }
26: void montamenu(int lugares[],char vendidas[],int idosos,int estudantes,int passageiros,double total){
27:
28: int menu = 0;
29: int menu2 = 0;
30: int i;
31: int a = 1;
32: int c;
33: system("cls");
34: printf("\n ******** MENU *********");
35: printf("\n * 1-Poltronas vendidas *");
36: printf("\n * 2-Vagas na janela *");
37: printf("\n * 3-Vagas no corredor *");
38: printf("\n * 4-Venda de passagem *");
39: printf("\n * 5-Gestao do caixa *");
40: printf("\n * 6-Sair do programa *");
41: printf("\n *************************");
42: printf("\n\nDigite a opcao desejada: ");
43: scanf("%d", &menu); 44:
system("cls"); 45:
46: switch (menu){
47: case 1: //Condição para demonstrar poltronas vendidas
48: c=0;
49: for ( i=0;i<maxvagas;i++){
50: if(vendidas[i] == 'X'){
51: printf("\nPoltrona %d - vendida!" ,lugares[i]);
52: c = 1;
53: }
54: }
55: if (c == 0)
56: printf("Todas poltronas disponiveis");
57: system("pause >nul");
58: montamenu(lugares, vendidas,idosos,estudantes,passageiros,total); 59:
break; 60:
61: case 2: //Condição para visualização das poltronas na janela
62: for ( i=0;i<maxvagas;i++){ 63:
if(lugares[i] % 2 !=0){
64: if(vendidas[i] == 'X')
65: printf("\nPoltrona %d - vendida!" ,lugares[i]);
66: else
67: printf("\nPoltrona %d" ,lugares[i]);
68: }
18

69: }
70: system("pause >nul");
71: montamenu(lugares, vendidas,idosos,estudantes,passageiros,total);
72: break; 73:
74: case 3: //Condição para visualização das poltronas no corredor
75: for ( i=0;i<maxvagas;i++){
76: if(lugares[i] % 2 ==0){
77: if(vendidas[i] == 'X')
78: printf("\nPoltrona %d - vendida!" ,lugares[i]);
79: else
80: printf("\nPoltrona %d" ,lugares[i]);
81: }
82: }
83: system("pause >nul");
84: montamenu(lugares, vendidas,idosos,estudantes,passageiros,total);
85: break; 86:
87: case 4: // Opções para a venda de passagens
88: menu2 = 0;
89: while (menu2>=0){
90: printf("Bem vindo a compra de passagens\n");
91: printf("\ndigite 1 para idoso");
92: printf("\ndigite 2 para estudante");
93: printf("\ndigite 3 para venda comum\n");
94: printf("\ndigite 4 para sair\n\n"); 95:
scanf("%d",& menu2); 96:
97: switch (menu2){
98: case 1: //condições para a venda das 2 passagens para idosos
99: if(idosos == 2 || passageiros > maxvagas){
100:
101: printf("Nao existem vagas disponiveis!");
102: system("pause >nul"); 103:
104: }
105: else{
106: int poltrona;
107: printf("\nInforme a poltrona\n");
108: scanf("%d",& poltrona);
109: if(vendidas[poltrona-1] =='X' || poltrona > maxvagas){
110: printf("\nPoltrona indisponivel, favor consultar poltronas disponiveis!\n");
111: system("pause >nul");
112: }
113: else{
114: vendidas[poltrona-1] = 'X';
115: idosos++;
116: passageiros++;
117: imprimepassagem(poltrona);
118: system("pause >nul"); 119: 120:
}
121: }
122: system("cls");
123: break;
124: case 2: //condições para a venda de passagens de estudantes
125: if(passageiros > maxvagas){
126:
127: printf("Nao existem vagas disponiveis!");
128: system("pause >nul"); 129:
130: }
131: else{
132: int poltrona;
133: printf("\nInforme a poltrona\n");
134: scanf("%d",& poltrona);
135: if(vendidas[poltrona-1] =='X' || poltrona > maxvagas){
136: printf("\nPoltrona indisponivel, favor consultar poltronas disponiveis!\n");
137: system("pause >nul");
19

138: }
139: else{
140: vendidas[poltrona-1] = 'X';
141: passageiros++;
142: imprimepassagem(poltrona);
143: total = total + (preco/2);
144: system("pause >nul"); 145: 146:
}
147: }
148: system("cls");
149: break;
150: case 3: // condições para a venda de passagens comum
151: if(passageiros > maxvagas){
152:
153: printf("Nao existem vagas disponiveis!");
154: system("pause >nul"); 155:
156: }
157: else{
158: int poltrona;
159: printf("\nInforme a poltrona\n");
160: scanf("%d",& poltrona);
161: if(vendidas[poltrona-1] =='X' || poltrona > maxvagas){
162: printf("\nPoltrona indisponivel, favor consultar poltronas disponiveis!\n"); 163:
system("pause >nul");
164: }
165: else{
166: vendidas[poltrona-1] = 'X';
167: passageiros++;
168: imprimepassagem(poltrona);
169: total = total + preco;
170: system("pause >nul");
171: }
172: }
173: system("cls"); 174:
break;
175: default:
176: menu2 = -1;
177: break; 178:
} 179: 180: }
181: montamenu(lugares, vendidas,idosos,estudantes,passageiros,total);

182: break;
183: case 5: //Gestão do caixa com o total de passagens vendidas e o faturamento
184: printf("\nForam vendidas %d passagens.\nValor total das passagens:R$ %.2f ",passageiros,total);
185: system("pause >nul");
186: montamenu(lugares, vendidas,idosos,estudantes,passageiros,total);
187: break;
188: case 6: // sair do programa 189:
system("exit"); 190:
191: } 192:
193: }
194: void imprimepassagem (int poltrona)
195: {
196: printf("\nCompra realizada com sucesso!\n ");
197: printf("\n -------------Bilhete de Passagem--------------");
198: printf("\n|Poltrona comprada numero: " "%d |",poltrona);
199: printf("\n|Destino: Belo Horizonte, Onibus numero 0600 |\n");
200: printf("|Data da Partida: 23/12/2015 ");
201: printf("|\n|Horario de Saida as 19:00 Horas |\n");
202: printf(" ----------------------------------------------\n"); 203:
} 204:
20

3- CONCLUSÃO

O presente trabalho esboçou o desenvolvimento de um sistema de venda de


passagens para a empresa de ônibus Teixeira. Esse sistema foi baseado em
linguagem de programação C, que é uma linguagem de médio nível, com muitas
funcionalidades de alto e baixo nível, sendo realizada uma explanação geral da
linguagem C.
Também foi apresentado o código fonte do programa desenvolvido, com a
utilização dos diversos recursos e métodos da linguagem C e o seu fluxograma para
ilustrar de forma descomplicada as informações ou sequencia operacional do
desenvolvimento do programa.
O software foi desenvolvido com a utilização da ferramenta DEV C ++, que
permite a criação e a verificação de erros no código fonte. O processo de
desenvolvimento do presente software obedeceu ao modelo cascata, salientando que
o ciclo de vida de um software é indeterminado, não tornando o mesmo obsoleto,
apenas evoluindo.
21

REFERÊNCIAS

COSTA, IVANIR. Engenharia de software. São Paulo: Editora Sol, Unip Interativa,
2017.

IVO, OLAVO. Linguagens e técnicas de Programação. São Paulo: Unip Interativa,


2017.

LEAL, GISLAINE CAMILA LAPASINI. Linguagem, Programação e Banco de


Dados: Guia pratico de Aprendizagem [livro eletrônico]. Curitiba: Inter Saberes,
2017

MIZRAHI, VICTORINE VIVIANE. Treinamento em Linguagem C. São Paulo:


Pearson Prentice Hall, 2008.

WIKIPEDIA. C(linguagem de programação). Disponível em:


<https://pt.wikipedia.org/wiki/C_%28linguagem_de_programa%C3%A7%C3%A3o%2
9>. Acesso em: 08 abril. 2018.

Você também pode gostar