·
Ciência da Computação ·
Linguagens de Programação
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
3
Documentação e Programação do Sistema de Compra de Ingressos do Grupo Mariano Pinheiro
Linguagens de Programação
UMG
931
Concepts, Techniques and Models of Computer Programming - Peter Van Roy & Seif Haridi
Linguagens de Programação
UMG
16
Resumo da Aula sobre Grafos de De Bruijn e Teorema de Euler
Linguagens de Programação
UFPI
44
Testes de Performance em Software: Tipos e Objetivos
Linguagens de Programação
UAM
1
Regras para Formação de Identificadores
Linguagens de Programação
UNIFTC
1
Atividade Prática: Criação de Circuito Lógico com Display de Sete Segmentos
Linguagens de Programação
UFPA
1
Avaliação Prática - Verificador de Frames para Pdls 2022-1
Linguagens de Programação
UFF
75
Tópicos Abordados em TSQL para Banco de Dados I
Linguagens de Programação
UNIANCHIETA
23
Aula 23: Interface Gráfica e Conexão com Banco de Dados
Linguagens de Programação
UAM
1
Script SQL Criacao Tabela Carro - codChassi nomeProprietario codVendedor
Linguagens de Programação
UNIANCHIETA
Texto de pré-visualização
1 Introdução O sistema em questão é um sistema de autoatendimento para a reserva e compra de ingressos das sessões dos filmes exibidos pelo grupo de cinema Mariano Ribeiro A empresa pretende instalar o software em terminais que utilizam uma interface de console familiar aos clientes Portanto a decisão foi implementar o software usando a linguagem de programação C que se adequa bem ao ambiente de execução 2 Requisitos e Regras de Negócio As salas possuem as mesmas características com 40 fileiras e 10 poltronas por fileira Existem duas modalidades de desconto meiaentrada e cadastro no Banco Itasil O desconto da meiaentrada é de 50 enquanto o desconto para cadastro no Banco Itasil é de 30 Para que um código de meiaentrada seja aceito a soma dos quatro primeiros dígitos módulo 10 deve ser igual ao último dígito verificador Um código de cliente do Banco Itasil será aceito se for um número positivo e múltiplo de 341 e 001 Os descontos não são cumulativos 3 Funcionalidades do sistema Após as entrevistas e as etapas de análise de requisitos e definição das regras de negócio foi possível identificar vários requisitos Com base nesses requisitos as seguintes funções do sistema podem ser definidas int SelecionaSala Essa função permite que o usuário selecione a sala Com base nos requisitos apresentados é necessário inserir o número da sala correspondente ao filme que o usuário deseja assistir Além disso o valor deve ser validado para evitar a seleção de uma sala inválida O valor de retorno dessa função é o número da sala escolhida pelo cliente void ImprimeMapaSalasala Essa função informa ao usuário quais poltronas estão disponíveis marcando 0 nos assentos livres e X nos assentos ocupados Ela utiliza a matriz que indica as poltronas livres e ocupadas da sala indicada no argumento definida como variável global int QuantidadeIngressosint sala Essa função permite que o usuário insira a quantidade de ingressos que deseja comprar É fornecida a sala como argumento para que seja feita uma contagem dos assentos disponíveis nessa sala e para garantir que o usuário não compre mais ingressos do que o número de assentos disponíveis Portanto a quantidade de ingressos comprada deve ser um valor entre 1 e o número de assentos disponíveis na sala Se o usuário inserir um valor fora dessa faixa o programa deve exibir uma mensagem de erro e solicitar que o usuário insira um valor válido O valor de retorno dessa função é a quantidade de ingressos que o cliente deseja comprar void SelecionaPoltronasqtIngressos sala Nessa função o cliente seleciona as poltronas As poltronas selecionadas são alteradas diretamente na matriz usada para guardar as informações dos assentos livres e ocupados na sala fornecida como argumento O cliente deve selecionar um número de poltronas correspondente ao número de ingressos a serem comprados O programa instrui o cliente a digitar o número da fileira e a letra da poltrona separados por espaços Qualquer valor digitado de forma inválida é informado ao cliente e ele é solicitado a digitar novamente int QuantidadeEstudantesint qtIngressos unsigned long int carteirasValidasInseridas Essa função valida os usuários com desconto de estudante É fornecido por valor um argumento referente à quantidade total de ingressos e por referência um vetor de carteiras de estudante válidas já inseridas durante a execução do programa O usuário deve inserir a quantidade de estudantes que será validada para que seja menor ou igual à quantidade de ingressos a serem comprados Em seguida será solicitado que o usuário digite o código da carteira de estudante para validar de acordo com os critérios estabelecidos nos Requisitos e Regras de Negócio Se for validado o código será alocado dinamicamente no vetor de carteiras válidas já inseridas carteirasValidasInseridas Se o número digitado for inválido ou já tiver sido utilizado uma vez durante a execução do programa o usuário será notificado e será solicitado que digite novamente o número da carteira de estudante Para cancelar o desconto o usuário poderá digitar 0 em qualquer momento entre a inserção do primeiro código da carteira de estudante e o último Isso cancela o desconto apenas do cliente que está digitando o código no momento Ao final da execução a função retorna a quantidade de usuários com carteira de estudante validadas no sistema int QuantidadeClientesItasilint qtIngressos unsigned long int codigosValidosInseridos Essa função faz parte do sistema para validar os usuários que são clientes do Banco Itasil É fornecido por valor um argumento referente à quantidade total de ingressos e por referência um vetor de códigos Itasil válidos já inseridos durante a execução do programa O usuário deve inserir a quantidade de clientes do Banco Itasil e essa quantidade deve ser validada para que seja menor ou igual à quantidade de ingressos a serem comprados Em seguida será solicitado que o usuário digite o código do cliente do banco para validar de acordo com os requisitos do sistema Se for validado o código será alocado dinamicamente no vetor de códigos válidos inseridos codigosValidosInseridos Os códigos dos usuários do Banco Itasil são números múltiplos de 341 e 001 Além disso a verificação também contempla o fato de que uma carteira válida não pode ser usada mais de uma vez durante a execução do programa o que é verificado acessando o vetor codigosValidosInseridos Se o número digitado não corresponder a um código válido o usuário será notificado e será solicitado que digite novamente o número do cliente do Banco Para cancelar o desconto o usuário poderá digitar 0 em qualquer momento entre a inserção do primeiro código do cliente Itasil e o último Isso cancela o desconto apenas do cliente que está digitando o código no momento Ao final da execução a função retorna a quantidade de clientes Itasil validados no sistema float calculaPrecoprecoIngresso qtIngressos descontoMeiaEntrada qtEstudantes descontoItasil qtClientesItasil No final do códigoserá impresso o valor pago pelo cliente que será calculado na função calculaPreco Essa função recebe como parâmetros as variáveis do preço do ingresso a quantidade de ingressos que pagam inteira o valor do desconto para estudantes a quantidade de estudantes com carteira de estudante válida o desconto para clientes Itasil e a quantidade de clientes Itasil O cálculo realizado nessa função é o seguinte Preco precoIngresso qtIngressos descontoMeiaEntrada qtEstudantes descontoItasil qtClientesItasil Ao final da execução a função deve retornar o valor que deve ser pago pelo cliente 4 Rotina do sistema O código terá três variáveis globais que serão matrizes de char com 40 linhas e 10 colunas representando cada uma os assentos das salas Para essa aplicação o código abaixo irá definir a rotina do sistema define PRECOINGRESSO 20 define DESCONTOESTUDANTE 05 define DESCONTOITASIL 07 char poltronasSala1 4010 poltronasSala2 4010 poltronasSala3 4010 int i j void InicializaSalas for i0 i40 i for j0 j10 j poltronasSala1 ij 0 poltronasSala2 ij 0 poltronasSala3 ij 0 int mainvoid int qtEstudantes int qtClientesItasil unsigned long int carteirasValidasInseridas Vetor com as Carteiras de Estudante validas ja inseridas unsigned long int codigosItasilValidosInseridos Vetor com os Codigos Itasil validos ja inseridos int qtIngressos int preco int termina 0 InicializaSalas sala SelecionaSala if sala 0 termina1 whiletermina0 qtIngressos QuantidadeIngressossala qtEstudantes QuantidadeEstudantesqtIngressos carteirasValidasInseridas qtIngressos qtEstudantes qtClientesItasil QuantidadeClientesItasilqtIngressos codigosItasilValidosInseridos qtIngressos qtClientesItasil ImprimeMapaSalasala SelecionaPoltronas qtdIngressos sala preco calculaPreco precoIngresso qtIngressos descontoEstudante qtEstudantes descontoItasil qtClientesItasil printfO valor a ser pago é R2f preco printf Agradecemos o pedido sala SelecionaSala if sala 0 termina1 freecarteirasValidasInseridas freecodigosItasilValidosInseridos return 0 5 Manual de uso do sistema Na tela do terminal o usuário irá digitar o número correspondente do filme que deseja assistir Após cada dado que seja digitado o usuário deve apertar a tecla enter para que o sistema siga a execução Após isso o sistema irá solicitar a quantidade de ingressos que o usuário deseja comprar e a quantidade desses ingressos que serão de meia entrada digitando em seguida o número de cada carteira de estudante Se o número for inválido o usuário poderá digitar novamente ou 0 para voltar para a tela anterior e digitar novamente a quantidade de ingressos com desconto de estudante O mesmo processo irá acontecer para o usuário informar a quantidade de pessoas que são clientes do banco Itasil Logo após a aplicação dos dados dos usuários o programa irá mostrar as cadeiras disponíveis na sala e o usuário deverá selecionar em quais deseja se sentar para assistir o filme O número de cadeiras selecionadas será igual a quantidade de espectadores indicados na etapa anterior Ao final disso o sistema irá fazer novamente a requisição da sala para um novo usuário Após o final das seções o sistema deve ser reiniciado digitando 0 na requisição da sala ou pressionando CtrlC Ao início das vendas para uma nova sessão o programa poderá ser reiniciado digitandose nome do programa como já explicado anteriormente 6 Conclusão O sistema será aplicado em computadores acessíveis aos usuários do cinema e o software se limita às linhas de comando do sistema Nas próximas versões do software ele pode ser desenvolvido em interfaces gráficas aumentando a usabilidade Isso pode ser implementado em C usando a biblioteca GTK que é um toolkit multiplataforma de código aberto para criação de interfaces gráficas Assim o software poderá tomar formas semelhantes ao sketch a seguir Código até agora include stdioh define PRECOINGRESSO 20 define DESCONTOESTUDANTE 05 define DESCONTOITASIL 07 char poltronasSala14010 poltronasSala24010 poltronasSala34010 int i j void InicializaSalas for i0 i40 i for j0 j10 j poltronasSala1ij 0 poltronasSala2ij 0 poltronasSala3ij 0 int SelecionaSala int sala printfSelecione a sala 1 2 ou 3 scanfd sala ifsala 1 sala 3 printfSala inválida Selecione novamente return SelecionaSala return sala void ImprimeMapaSalaint sala charpoltronas10 if sala 1 poltronas poltronasSala1 else if sala 2 poltronas poltronasSala2 else if sala 3 poltronas poltronasSala3 printfMapa da Sala for i 0 i 40 i forj 0 j 10 j printfc poltronasij printf printf int QuantidadeIngressosint sala int qtIngressos printfDigite quantos ingressos deseja comprar scanfd qtIngressos if qtIngressos 1 qtIngressos 400 printfQuantidade inválida Selecione novamente return QuantidadeIngressossala return qtIngressos void SelecionaPoltronasqtIngressos sala char poltronas10 int fileira char poltrona if sala 1 poltronas poltronasSala1 else if sala 2 poltronas poltronasSala2 else if sala 3 poltronas poltronasSala3 printfSelecione as poltronas Ordem Fileira Poltrona fori 0 i qtIngressos i printfPoltrona d i 1 scanfd c fileira poltrona iffileira 1 fileira 40 poltrona A poltrona J printfPoltrona inválida Selecione novamente i continue ifpoltronasfileira ipoltrona A X printfPoltrona ocupada Selecione novamente i continue poltronasfileira ipoltrona A X int QuantidadeEstudantesint qtIngressos unsigned long int carteirasValidasInseridas int qtEstudantes i unsigned long int carteira printfDigite a quantidade de estudantes scanfd qtEstudantes ifqtEstudantes 0 qtEstudantes qtIngressos printfQuantidade inválida Digite novamente return QuantidadeEstudantesqtIngressos carteirasValidasInseridas carteirasValidasInseridas unsigned long int mallocqtEstudantes sizeofunsigned long int printfDigite os códigos das carteiras de estudante fori 0 i qtEstudantes i printfCódigo d i scanflu carteira ifcarteira 0 printfDesconto de estudante cancelado break else ifcarteira 10 carteira 1000 carteira 100 10 carteira 10 10 carteira 10 10 printfCódigo inválido Digite novamente i continue int carteiraJaInserida 0 forint j 0 j i j ifcarteirasValidasInseridasj carteira printfCódigo já inserido anteriormente Digite novamente carteiraJaInserida 1 break ifcarteiraJaInserida i continue carteirasValidasInseridasi carteira return qtEstudantes int QuantidadeClientesItasilint qtIngressos unsigned long int codigosValidosInseridos int qtClientesItasil i unsigned long int codigo printfDigite a quantidade de Clientes Itasil scanfd qtClientesItasil ifqtClientesItasil 0 qtClientesItasil qtIngressos printfQuantidade de Clientes Itasil inválida Digite novamente return QuantidadeClientesItasilqtIngressos codigosValidosInseridos codigosValidosInseridos unsigned long int mallocqtClientesItasil sizeofunsigned long int printfDigite os códigos Itasil fori 0 i qtClientesItasil i printfCódigo d i scanflu codigo ifcodigo 0 printfDesconto Itasil Cancelado break else ifcodigo 341 0 codigo 1000 1 printfCódigo inválido Digite novamente i continue int codigoJaInserido 0 forint j 0 j i j ifcodigosValidosInseridosj codigo printfCódigo já inserido Digite novamente codigoJaInserido 1 break ifcodigoJaInserido i continue codigosValidosInseridosi codigo return qtClientesItasil float CalculaPrecoint precoIngresso int qtIngressos int descontoMeiaEntrada int qtEstudantes int descontoItasil int qtClientesItasil float preco precoIngresso qtIngressos descontoMeiaEntrada qtEstudantes descontoItasil qtClientesItasil return preco int mainvoid int sala int qtEstudantes int qtClientesItasil unsigned long int carteirasValidasInseridas NULL unsigned long int codigosValidosInseridos NULL int qtIngressos float preco int termina 0 InicializaSalas sala SelecionaSala if sala 0 termina 1 while termina 0 qtIngressos QuantidadeIngressossala ImprimeMapaSalasala SelecionaPoltronasqtIngressos sala qtEstudantes QuantidadeEstudantesqtIngressos carteirasValidasInseridas qtIngressos qtEstudantes qtClientesItasil QuantidadeClientesItasilqtIngressos codigosValidosInseridos qtIngressos qtClientesItasil preco CalculaPrecoPRECOINGRESSO qtIngressos DESCONTOESTUDANTE qtEstudantes DESCONTOITASIL qtClientesItasil printfO preço a ser pago é R2f preco printfAgradecemos o pedido sala SelecionaSala ifsala 0 termina 1 freecarteirasValidasInseridas freecodigosValidosInseridos return 0
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
3
Documentação e Programação do Sistema de Compra de Ingressos do Grupo Mariano Pinheiro
Linguagens de Programação
UMG
931
Concepts, Techniques and Models of Computer Programming - Peter Van Roy & Seif Haridi
Linguagens de Programação
UMG
16
Resumo da Aula sobre Grafos de De Bruijn e Teorema de Euler
Linguagens de Programação
UFPI
44
Testes de Performance em Software: Tipos e Objetivos
Linguagens de Programação
UAM
1
Regras para Formação de Identificadores
Linguagens de Programação
UNIFTC
1
Atividade Prática: Criação de Circuito Lógico com Display de Sete Segmentos
Linguagens de Programação
UFPA
1
Avaliação Prática - Verificador de Frames para Pdls 2022-1
Linguagens de Programação
UFF
75
Tópicos Abordados em TSQL para Banco de Dados I
Linguagens de Programação
UNIANCHIETA
23
Aula 23: Interface Gráfica e Conexão com Banco de Dados
Linguagens de Programação
UAM
1
Script SQL Criacao Tabela Carro - codChassi nomeProprietario codVendedor
Linguagens de Programação
UNIANCHIETA
Texto de pré-visualização
1 Introdução O sistema em questão é um sistema de autoatendimento para a reserva e compra de ingressos das sessões dos filmes exibidos pelo grupo de cinema Mariano Ribeiro A empresa pretende instalar o software em terminais que utilizam uma interface de console familiar aos clientes Portanto a decisão foi implementar o software usando a linguagem de programação C que se adequa bem ao ambiente de execução 2 Requisitos e Regras de Negócio As salas possuem as mesmas características com 40 fileiras e 10 poltronas por fileira Existem duas modalidades de desconto meiaentrada e cadastro no Banco Itasil O desconto da meiaentrada é de 50 enquanto o desconto para cadastro no Banco Itasil é de 30 Para que um código de meiaentrada seja aceito a soma dos quatro primeiros dígitos módulo 10 deve ser igual ao último dígito verificador Um código de cliente do Banco Itasil será aceito se for um número positivo e múltiplo de 341 e 001 Os descontos não são cumulativos 3 Funcionalidades do sistema Após as entrevistas e as etapas de análise de requisitos e definição das regras de negócio foi possível identificar vários requisitos Com base nesses requisitos as seguintes funções do sistema podem ser definidas int SelecionaSala Essa função permite que o usuário selecione a sala Com base nos requisitos apresentados é necessário inserir o número da sala correspondente ao filme que o usuário deseja assistir Além disso o valor deve ser validado para evitar a seleção de uma sala inválida O valor de retorno dessa função é o número da sala escolhida pelo cliente void ImprimeMapaSalasala Essa função informa ao usuário quais poltronas estão disponíveis marcando 0 nos assentos livres e X nos assentos ocupados Ela utiliza a matriz que indica as poltronas livres e ocupadas da sala indicada no argumento definida como variável global int QuantidadeIngressosint sala Essa função permite que o usuário insira a quantidade de ingressos que deseja comprar É fornecida a sala como argumento para que seja feita uma contagem dos assentos disponíveis nessa sala e para garantir que o usuário não compre mais ingressos do que o número de assentos disponíveis Portanto a quantidade de ingressos comprada deve ser um valor entre 1 e o número de assentos disponíveis na sala Se o usuário inserir um valor fora dessa faixa o programa deve exibir uma mensagem de erro e solicitar que o usuário insira um valor válido O valor de retorno dessa função é a quantidade de ingressos que o cliente deseja comprar void SelecionaPoltronasqtIngressos sala Nessa função o cliente seleciona as poltronas As poltronas selecionadas são alteradas diretamente na matriz usada para guardar as informações dos assentos livres e ocupados na sala fornecida como argumento O cliente deve selecionar um número de poltronas correspondente ao número de ingressos a serem comprados O programa instrui o cliente a digitar o número da fileira e a letra da poltrona separados por espaços Qualquer valor digitado de forma inválida é informado ao cliente e ele é solicitado a digitar novamente int QuantidadeEstudantesint qtIngressos unsigned long int carteirasValidasInseridas Essa função valida os usuários com desconto de estudante É fornecido por valor um argumento referente à quantidade total de ingressos e por referência um vetor de carteiras de estudante válidas já inseridas durante a execução do programa O usuário deve inserir a quantidade de estudantes que será validada para que seja menor ou igual à quantidade de ingressos a serem comprados Em seguida será solicitado que o usuário digite o código da carteira de estudante para validar de acordo com os critérios estabelecidos nos Requisitos e Regras de Negócio Se for validado o código será alocado dinamicamente no vetor de carteiras válidas já inseridas carteirasValidasInseridas Se o número digitado for inválido ou já tiver sido utilizado uma vez durante a execução do programa o usuário será notificado e será solicitado que digite novamente o número da carteira de estudante Para cancelar o desconto o usuário poderá digitar 0 em qualquer momento entre a inserção do primeiro código da carteira de estudante e o último Isso cancela o desconto apenas do cliente que está digitando o código no momento Ao final da execução a função retorna a quantidade de usuários com carteira de estudante validadas no sistema int QuantidadeClientesItasilint qtIngressos unsigned long int codigosValidosInseridos Essa função faz parte do sistema para validar os usuários que são clientes do Banco Itasil É fornecido por valor um argumento referente à quantidade total de ingressos e por referência um vetor de códigos Itasil válidos já inseridos durante a execução do programa O usuário deve inserir a quantidade de clientes do Banco Itasil e essa quantidade deve ser validada para que seja menor ou igual à quantidade de ingressos a serem comprados Em seguida será solicitado que o usuário digite o código do cliente do banco para validar de acordo com os requisitos do sistema Se for validado o código será alocado dinamicamente no vetor de códigos válidos inseridos codigosValidosInseridos Os códigos dos usuários do Banco Itasil são números múltiplos de 341 e 001 Além disso a verificação também contempla o fato de que uma carteira válida não pode ser usada mais de uma vez durante a execução do programa o que é verificado acessando o vetor codigosValidosInseridos Se o número digitado não corresponder a um código válido o usuário será notificado e será solicitado que digite novamente o número do cliente do Banco Para cancelar o desconto o usuário poderá digitar 0 em qualquer momento entre a inserção do primeiro código do cliente Itasil e o último Isso cancela o desconto apenas do cliente que está digitando o código no momento Ao final da execução a função retorna a quantidade de clientes Itasil validados no sistema float calculaPrecoprecoIngresso qtIngressos descontoMeiaEntrada qtEstudantes descontoItasil qtClientesItasil No final do códigoserá impresso o valor pago pelo cliente que será calculado na função calculaPreco Essa função recebe como parâmetros as variáveis do preço do ingresso a quantidade de ingressos que pagam inteira o valor do desconto para estudantes a quantidade de estudantes com carteira de estudante válida o desconto para clientes Itasil e a quantidade de clientes Itasil O cálculo realizado nessa função é o seguinte Preco precoIngresso qtIngressos descontoMeiaEntrada qtEstudantes descontoItasil qtClientesItasil Ao final da execução a função deve retornar o valor que deve ser pago pelo cliente 4 Rotina do sistema O código terá três variáveis globais que serão matrizes de char com 40 linhas e 10 colunas representando cada uma os assentos das salas Para essa aplicação o código abaixo irá definir a rotina do sistema define PRECOINGRESSO 20 define DESCONTOESTUDANTE 05 define DESCONTOITASIL 07 char poltronasSala1 4010 poltronasSala2 4010 poltronasSala3 4010 int i j void InicializaSalas for i0 i40 i for j0 j10 j poltronasSala1 ij 0 poltronasSala2 ij 0 poltronasSala3 ij 0 int mainvoid int qtEstudantes int qtClientesItasil unsigned long int carteirasValidasInseridas Vetor com as Carteiras de Estudante validas ja inseridas unsigned long int codigosItasilValidosInseridos Vetor com os Codigos Itasil validos ja inseridos int qtIngressos int preco int termina 0 InicializaSalas sala SelecionaSala if sala 0 termina1 whiletermina0 qtIngressos QuantidadeIngressossala qtEstudantes QuantidadeEstudantesqtIngressos carteirasValidasInseridas qtIngressos qtEstudantes qtClientesItasil QuantidadeClientesItasilqtIngressos codigosItasilValidosInseridos qtIngressos qtClientesItasil ImprimeMapaSalasala SelecionaPoltronas qtdIngressos sala preco calculaPreco precoIngresso qtIngressos descontoEstudante qtEstudantes descontoItasil qtClientesItasil printfO valor a ser pago é R2f preco printf Agradecemos o pedido sala SelecionaSala if sala 0 termina1 freecarteirasValidasInseridas freecodigosItasilValidosInseridos return 0 5 Manual de uso do sistema Na tela do terminal o usuário irá digitar o número correspondente do filme que deseja assistir Após cada dado que seja digitado o usuário deve apertar a tecla enter para que o sistema siga a execução Após isso o sistema irá solicitar a quantidade de ingressos que o usuário deseja comprar e a quantidade desses ingressos que serão de meia entrada digitando em seguida o número de cada carteira de estudante Se o número for inválido o usuário poderá digitar novamente ou 0 para voltar para a tela anterior e digitar novamente a quantidade de ingressos com desconto de estudante O mesmo processo irá acontecer para o usuário informar a quantidade de pessoas que são clientes do banco Itasil Logo após a aplicação dos dados dos usuários o programa irá mostrar as cadeiras disponíveis na sala e o usuário deverá selecionar em quais deseja se sentar para assistir o filme O número de cadeiras selecionadas será igual a quantidade de espectadores indicados na etapa anterior Ao final disso o sistema irá fazer novamente a requisição da sala para um novo usuário Após o final das seções o sistema deve ser reiniciado digitando 0 na requisição da sala ou pressionando CtrlC Ao início das vendas para uma nova sessão o programa poderá ser reiniciado digitandose nome do programa como já explicado anteriormente 6 Conclusão O sistema será aplicado em computadores acessíveis aos usuários do cinema e o software se limita às linhas de comando do sistema Nas próximas versões do software ele pode ser desenvolvido em interfaces gráficas aumentando a usabilidade Isso pode ser implementado em C usando a biblioteca GTK que é um toolkit multiplataforma de código aberto para criação de interfaces gráficas Assim o software poderá tomar formas semelhantes ao sketch a seguir Código até agora include stdioh define PRECOINGRESSO 20 define DESCONTOESTUDANTE 05 define DESCONTOITASIL 07 char poltronasSala14010 poltronasSala24010 poltronasSala34010 int i j void InicializaSalas for i0 i40 i for j0 j10 j poltronasSala1ij 0 poltronasSala2ij 0 poltronasSala3ij 0 int SelecionaSala int sala printfSelecione a sala 1 2 ou 3 scanfd sala ifsala 1 sala 3 printfSala inválida Selecione novamente return SelecionaSala return sala void ImprimeMapaSalaint sala charpoltronas10 if sala 1 poltronas poltronasSala1 else if sala 2 poltronas poltronasSala2 else if sala 3 poltronas poltronasSala3 printfMapa da Sala for i 0 i 40 i forj 0 j 10 j printfc poltronasij printf printf int QuantidadeIngressosint sala int qtIngressos printfDigite quantos ingressos deseja comprar scanfd qtIngressos if qtIngressos 1 qtIngressos 400 printfQuantidade inválida Selecione novamente return QuantidadeIngressossala return qtIngressos void SelecionaPoltronasqtIngressos sala char poltronas10 int fileira char poltrona if sala 1 poltronas poltronasSala1 else if sala 2 poltronas poltronasSala2 else if sala 3 poltronas poltronasSala3 printfSelecione as poltronas Ordem Fileira Poltrona fori 0 i qtIngressos i printfPoltrona d i 1 scanfd c fileira poltrona iffileira 1 fileira 40 poltrona A poltrona J printfPoltrona inválida Selecione novamente i continue ifpoltronasfileira ipoltrona A X printfPoltrona ocupada Selecione novamente i continue poltronasfileira ipoltrona A X int QuantidadeEstudantesint qtIngressos unsigned long int carteirasValidasInseridas int qtEstudantes i unsigned long int carteira printfDigite a quantidade de estudantes scanfd qtEstudantes ifqtEstudantes 0 qtEstudantes qtIngressos printfQuantidade inválida Digite novamente return QuantidadeEstudantesqtIngressos carteirasValidasInseridas carteirasValidasInseridas unsigned long int mallocqtEstudantes sizeofunsigned long int printfDigite os códigos das carteiras de estudante fori 0 i qtEstudantes i printfCódigo d i scanflu carteira ifcarteira 0 printfDesconto de estudante cancelado break else ifcarteira 10 carteira 1000 carteira 100 10 carteira 10 10 carteira 10 10 printfCódigo inválido Digite novamente i continue int carteiraJaInserida 0 forint j 0 j i j ifcarteirasValidasInseridasj carteira printfCódigo já inserido anteriormente Digite novamente carteiraJaInserida 1 break ifcarteiraJaInserida i continue carteirasValidasInseridasi carteira return qtEstudantes int QuantidadeClientesItasilint qtIngressos unsigned long int codigosValidosInseridos int qtClientesItasil i unsigned long int codigo printfDigite a quantidade de Clientes Itasil scanfd qtClientesItasil ifqtClientesItasil 0 qtClientesItasil qtIngressos printfQuantidade de Clientes Itasil inválida Digite novamente return QuantidadeClientesItasilqtIngressos codigosValidosInseridos codigosValidosInseridos unsigned long int mallocqtClientesItasil sizeofunsigned long int printfDigite os códigos Itasil fori 0 i qtClientesItasil i printfCódigo d i scanflu codigo ifcodigo 0 printfDesconto Itasil Cancelado break else ifcodigo 341 0 codigo 1000 1 printfCódigo inválido Digite novamente i continue int codigoJaInserido 0 forint j 0 j i j ifcodigosValidosInseridosj codigo printfCódigo já inserido Digite novamente codigoJaInserido 1 break ifcodigoJaInserido i continue codigosValidosInseridosi codigo return qtClientesItasil float CalculaPrecoint precoIngresso int qtIngressos int descontoMeiaEntrada int qtEstudantes int descontoItasil int qtClientesItasil float preco precoIngresso qtIngressos descontoMeiaEntrada qtEstudantes descontoItasil qtClientesItasil return preco int mainvoid int sala int qtEstudantes int qtClientesItasil unsigned long int carteirasValidasInseridas NULL unsigned long int codigosValidosInseridos NULL int qtIngressos float preco int termina 0 InicializaSalas sala SelecionaSala if sala 0 termina 1 while termina 0 qtIngressos QuantidadeIngressossala ImprimeMapaSalasala SelecionaPoltronasqtIngressos sala qtEstudantes QuantidadeEstudantesqtIngressos carteirasValidasInseridas qtIngressos qtEstudantes qtClientesItasil QuantidadeClientesItasilqtIngressos codigosValidosInseridos qtIngressos qtClientesItasil preco CalculaPrecoPRECOINGRESSO qtIngressos DESCONTOESTUDANTE qtEstudantes DESCONTOITASIL qtClientesItasil printfO preço a ser pago é R2f preco printfAgradecemos o pedido sala SelecionaSala ifsala 0 termina 1 freecarteirasValidasInseridas freecodigosValidosInseridos return 0