Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
MRMC

Sistema de bilhetes de cinema

Recommended Posts

MRMC

Boa noite,

tenho um projecto para realizar sobre um sistema de bilhetes de cinema, e gostava de saber se me podem dar dicas para o realizar, e corrigir alguns erros que eu não consiga detectar.

I. Requisitos Funcionais Base

O sistema a desenvolver deve permitir gerir a seguinte informação: Ficha de Sala, incluindo o nome, o número, a descrição, o número de filas e o número de lugares por cada fila; Ficha de Espectáculo, incluindo o nome, o número, a descrição, a data inicial, a sessão (manhã, tarde, noite) e a data final; Ficha de Espectador, incluindo, o nome, a identificação e o contacto; Ficha da gestão das reservas, incluindo o espectáculo, a data, a sala, a sessão, o estado (Livre ou Reservado), a fila, o número do lugar, o espectador.

Deve assim permitir: a criação de salas, espectáculos, reservas e espectadores; a remoção de salas, espectáculos, reservas e espectadores; a alteração de salas, espectáculos, reservas e espectadores; listar salas, espectáculos, reservas e espectadores;

O sistema deve permitir ainda fazer as seguintes consultas: Pesquisar salas por nome e número; Pesquisar espectáculos por nome e número;

Pesquisar os espectáculos e salas que um dado espectador reservou numa determinada data; Pesquisar os espectáculos de uma dada sala ou sessão numa determinada data; Pesquisar filas e lugares livres de uma dada sala, sessão e/ou espectáculo numa determinada data; Pesquisar número de lugares vagos de uma dada sala, sessão e espectáculo numa determinada data.

Atenção: Todos os dados terão que ser guardados de forma permanente em ficheiros, de forma que duas execuções do programa não impliquem perda de informação. O programa deve ler informação desses ficheiros no inicio da sua execução e salvaguardar todos os dados quando termina. Durante a execução os dados devem estar obrigatoriamente guardados em memória sob a forma de vectores de estruturas.

I. Requisitos Funcionais Avançados

Os requisitos técnicos avançados incluem os seguintes: A garantia da consistência das referências entre os vários tipos de ficha. Por exemplo: garantir que a sala de um espectáculo existe efectivamente e arranjar mecânismos para resolver o impacto da remoção de um dado espectador nas restantes fichas; Garantir a consistência das calendarizações. Por exemplo: não permitir sobreposição de espectáculos para a mesma sala e sessão, não permitir violações relativamente às datas dos espectáculos, entre outros itens; Reservas de grupos; Concretizar as Reservas em Vendas.

Share this post


Link to post
Share on other sites
Localhost

Queres que te façam um trabalho ou já tens algo feito?


here since 2009

Share this post


Link to post
Share on other sites
MRMC

Por enquanto ainda não comecei nada. Mas se me dessem algumas ideias iniciais, agradecia.

😎

Share this post


Link to post
Share on other sites
Localhost

É só aplicares os conhecimentos que aprendeste durante as aulas.


here since 2009

Share this post


Link to post
Share on other sites
MRMC

Sim, isso eu sei. Estava-me a referir à organização do programa, o que utilizar em alguns casos, e o que devo utilizar em outros.

Share this post


Link to post
Share on other sites
Localhost

Acho que isso se divide em salas e espectadores, li o enunciado por alto. Tens de dividir o teu programa nisso e começar a pensar. A parte de pesquisas, adição de dados, remoção é simples. Depois vem a parte das reservas em que deves ter alguns pormenores como por exemplo, se passar a data da reserva tens de retirar a reserva, etc.

Eu dividia isso em duas estruturas, uma para as salas e outra para os espectadores, isto para as funções básicas. Terias ainda um sistema de reservas, podia por exemplo, dentro da estrutura teres uma variável que indicava se era uma reserva ou não. E depois verificavas datas e tudo. Mas tens de começar a fazer alguma coisa senão nunca vais sair de suposições.


here since 2009

Share this post


Link to post
Share on other sites
MRMC

o projecto tem de ser entregue em junho (final do mês), mas o mais tardar esta semana vou começar a fazer, já que vou estar livre de frequências.

Share this post


Link to post
Share on other sites
MRMC

já agora, tenho usado o dev c++ em casa, e o visual studio nas aulas. Qual me aconselham?

😎

Share this post


Link to post
Share on other sites
Triton
Durante a execução os dados devem estar obrigatoriamente guardados em memória sob a forma de vectores de estruturas.

Bem, primeiro cria uma estrutura diferente para cada tipo que eles querem (Sala, Espectador, etc). Depois usas vectores para guardar as estruturas. Depois é só criares meia dúzia de funções que peguem em cada estrutura para ler ou escrever a informação num ficheiro.


<3 life

Share this post


Link to post
Share on other sites
anagrama

Li na diagonal, mas cria uma estrutura para sala, espectador, etc, obedecendo aos campos que te indicam. Sobre eles, deverão estar preparadas operações de inserção, eliminação, consulta, ordenação, listagem. Terás de trabalhar com ficheiros para te guardarem permanentemente a informação e arrays para manipulares essa informação, armazená-la em memória e poder tranferi-la, posteriormente para ficheiros que criaste.

Share this post


Link to post
Share on other sites
MRMC

Obrigado pela ajuda. Ainda não comecei o projecto porque tive uns percalços positivos que me fizeram atrasar o inicio do programa. Na próxima semana, direi algo em principio.

Share this post


Link to post
Share on other sites
MRMC

Tenho uma dúvida. Eu criei já várias estruturas, mas agora tenho algumas dúvidas em como posso criar uma ligação entre uma variável, em 2 estruturas diferentes.

Deixo aqui um exemplo:

struct dados{
char nome[50];
int bi;
};

struct dados_copia{
int bi;
int abc;
};

Como podem ver, a variável "bi" está repetida nas 2 estruturas. O objectivo é que a variável "bi" que está na estrutura "dados_copia", tome todos os valores da variável da estrutura "dados". Alguém me pode ajudar?

Share this post


Link to post
Share on other sites
Localhost

As estruturas são diferentes, não podes copiar dados de tipos diferentes, ou seja, não podes fazer uma "cópia" de coisas diferentes.


here since 2009

Share this post


Link to post
Share on other sites
MRMC

As estruturas são diferentes, não podes copiar dados de tipos diferentes, ou seja, não podes fazer uma "cópia" de coisas diferentes.

Mesmo sendo as várias do mesmo tipo (neste caso, "int")?

Share this post


Link to post
Share on other sites
Localhost

Não percebi bem.

Tu tens de perceber que se tens numa estrutura uma string não podes simplesmente "copiar" essa string para um inteiro.


here since 2009

Share this post


Link to post
Share on other sites
MRMC

Não percebi bem.

Tu tens de perceber que se tens numa estrutura uma string não podes simplesmente "copiar" essa string para um inteiro.

O que eu tava a tentar dizer era que recebendo um número do utilizador para a variável "bi" da estrutura dados, se eu conseguia depois copiar esse tal número para a variável "bi", mas da estrutura dados_copia, sendo as variáveis do mesmo tipo, mas de estruturas diferentes. Não existe maneira de associar esses dados um ao outro?

Indo buscar um exemplo de outro programa, como se fosse uma chave externa (Acess).

Share this post


Link to post
Share on other sites
TheDark

Também não sei se percebi bem qual é a dúvida, mas pela última frase, diria que a melhor solução, em vez de teres um campo bi na estrutura dados_copia, seria teres um apontador para a estrutura dados correspondente.


Desaparecido.

Share this post


Link to post
Share on other sites
MRMC

Também não sei se percebi bem qual é a dúvida, mas pela última frase, diria que a melhor solução, em vez de teres um campo bi na estrutura dados_copia, seria teres um apontador para a estrutura dados correspondente.

struct dados_pessoais Dados_Pessoais;

Assim?

Share this post


Link to post
Share on other sites
Localhost

Dentro da estrutura "original" terias um ponteiro para a sua cópia.

Ou seja:

struct Original {
  int blah;
  int blabla;
  struct copia *pt;
}orig;

Segundo o que percebi a tua dúvida era algo como isto, além de que ainda não percebi muito bem o que queres fazer.


here since 2009

Share this post


Link to post
Share on other sites
MRMC

Dentro da estrutura "original" terias um ponteiro para a sua cópia.

Ou seja:

struct Original {
  int blah;
  int blabla;
  struct copia *pt;
}orig;

Segundo o que percebi a tua dúvida era algo como isto, além de que ainda não percebi muito bem o que queres fazer.

Sim era isso. Dei este exemplo geral, e agora é que vou adaptar às estruturas que tenho. Aliás, esta dúvida surgiu porque quando se for fazer uma reserva de bilhetes, aparecerá um número correspondente a cada pessoa, para diferenciar quem realizou as várias reservas.

Onde devo colocar o nome da estrutura cópia nesse apontador?

struct dados_copia *pt

Assim?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.