Jump to content

Placard de Publicidade


Recommended Posts

Posted (edited)

Boa noite programadores! Preciso de ajuda para fazer um painel publicitário mas não percebo nada de "c".

Se for possível agradecia comentários no programa final para eu conseguir perceber.

Tenho um código que me foi dado por um colega, que queria usar como base, mas alterado de maneira que o prof não perceba que e do mesmo!

O enunciado do trabalho encontra-se por baixo do código... Desde já obrigado a quem me puder ajudar.. é que eu nao percebo mesmo nada disto!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
/*Estrutura onde são guardadas temporariamente as Publicidades inseridas no programa guardando também outras variáveis como o tempo e o tamanho da publicidade */
  struct publicidades {
     char anuncio[1000];
     int tempo ;
     int tamanhoanuncio;
  } pulb[50], tempomaior; //50 publicidades no máximo
    int nlinhas, ncolunas;
  int i, j, c=0; //Servem para a contagem de linhas e colunas do painel

  /* Função Guardar */
void guardar(int n){
      FILE *fp;
      char ss[8];         
   int j = 0;  

   fp = fopen("texto.txt", "w");
  //atoi();
  sprintf(ss, "%d", n);
   fputs(ss,fp);
   for(j=0;j<n;j++){
                                fputs(pulb[n].anuncio,fp);
                                sprintf(ss, "%d", pulb[n].tempo);
                                fputs(ss,fp);
                                 sprintf(ss, "%d", pulb[n].tamanhoanuncio);
                                fputs(ss,fp);
                                }
   fclose(fp);
} 
/* Função que pede a inserção Publicidades para a posição N da struct */
void inserir(int n){
        printf("AN%cNCIO\n",233);
        setbuf(stdin, NULL); //Limpa o teclado
        scanf("%[^\n]s",&pulb[n].anuncio);
        printf("TEMPO\n");
        scanf("%i",&pulb[n].tempo);
        pulb[n].tamanhoanuncio=strlen (pulb[n].anuncio); //o tamanhoanuncio é a contagem dos caracteres da variavel anuncio
}
/* Função que constrói o painel do anúncio N consoante o numero de linhas e colunas inseridas*/  
void mostarpainel(int n){
     int c=0; //serve para a contagem de espaços vazios no painel
     /*Se o tamanho do anúncio for menor ou igual ao tamanho do painel constrói o painel, caso contrario aparece uma mensagem de erro*/
    if(pulb[n].tamanhoanuncio<=paineltamanho()){
     printf("\n");
     printf("\n");
     printf("Pain%cl\n",130);
     printf("\n");
     printf("\n");
     for(i=0;i<nlinhas;i++){  
       printf("|");               
     for(j=0;j<ncolunas;j++){
        if(  c<=pulb[n].tamanhoanuncio){ 
           printf("%c",pulb[n].anuncio[c]);             
             c++; }
   else printf("*");                          
     }
      printf("|\n");
     } 
 } else {
  printf("Pain%cl demasiado pequeno \n",130);
 }
sleep(pulb[n].tempo*1000);
}
//Função que pede para redefinir o Painel
void alterartamanho(){
      printf("Tamanho do pain%cl\n",130);
      printf("N%cmero de linhas\n",163);
      scanf("%d",&nlinhas);
       printf("N%cmero de colunas\n",163);
       scanf("%d",&ncolunas);
       printf("\nColunas: %d linhas: %d\n",ncolunas,nlinhas);
}
//Variável tamanho do painel que é a multiplicação do nº de linhas pelo nº de colunas
int paineltamanho(){
   return ncolunas*nlinhas;
}

int main(int argc, char *argv[])
{
int i;
   int escolha,numero,escolha2,quantidade;


  alterartamanho();

      printf("1 - Inserir novas publica%c%ces\n",135,228);
      printf("2 - Abrir Publicidades guardadas\n");
      scanf("%d",&escolha);
      if(escolha==1){
             printf("N%cmero de publicidades\n",163);
             scanf("%d",&quantidade);
                for(i=0;i<quantidade;i++){
                     inserir(i);
                }
             }else{

             }

   do{
      printf("MENU\n");
      printf("1 - INICIAR\n");
      printf("2 - Inserir publicidades\n");
      printf("3 - Redefenir tamanho do pain%cl\n",130);
      printf("4 - Informa%c%ces\n",135,228);
       printf("5 - guardar\n");
      printf("0 - sair\n");
      scanf("%i",&escolha);
      switch ( escolha){
        case 1 : for(i=0;i<quantidade;i++){

                         mostarpainel(i);

                         }
                  break;
             case 2 : inserir(quantidade++);

                     break;
             case 3 : alterartamanho();
                  break;
             case 4 : do{
                       printf("Informa%c%ces\n",135,228);
                       printf("1 - Listar todos\n");
                        printf("2 - Por ordem de mais tempo no ar\n");
                        printf("3 - Os que nao d%co com as configura%c%ces atuais\n",198,135,228);
                        printf("0 - Voltar\n");
                        scanf("%i",&escolha2);
                        switch ( escolha2){
                               case 1 :for(i=0;i<paineltamanho();i++)
                                           mostarpainel(i);
                                break;
                                case 2 :
                                        for(i=0;i<quantidade;i++){
                                         for(c=0;c<quantidade;c++){
                                            if(pulb[c].tempo <  pulb[i].tempo ){
                                                 tempomaior=pulb[i];
                                                  pulb[i]=pulb[c];
                                                  pulb[c] =tempomaior;    
                                                             }

                                              }

                                     }
                                break;
                                case 3 :for(i=0;i<quantidade;i++){
                                       if(pulb[i].tamanhoanuncio<= paineltamanho())
                                         mostarpainel(i);}
                                break;
                                }
                                }while(escolha2!=0);
                  break;
                  case 5:guardar(quantidade);
                       break;
           }
    }while(escolha!=0);

 system("PAUSE");
 return 0;
}

O objetivo é o seguinte:

A paisagem urbana está cada vez mais povoada de ecrãs digitais para apresentação dos

mais variados conteúdos. Essa apresentação obedece a um escalonamento pré-definido

pela pessoa ou pessoas que controlam o ecrã. O escalonamento passa pela definição de

um conjunto de regras que indicam que conteúdo deve ser apresentado a dado momento e

durante quanto tempo. O presente trabalho tem como finalidade o desenvolvimento de

um sistema de escalonamento de conteúdos a serem apresentados num determinado ecrã

público.

Os conteúdos a apresentar no ecrã devem ser previamente definidos e devem estar

disponíveis para o escalonamento. Para efeitos do presente trabalho, cada conteúdo

deverá ser simulado com recurso a várias sequências de um número fixo de carateres,

uma para cada linha do ecrã.

Com base nos conteúdos inseridos, o escalonamento já poderá ser definido, por indicação

do momento em que o mesmo deverá ser apresentado e a duração dessa apresentação.

Não deverão ser permitidas sobreposições de conteúdos, ou seja, a cada momento o ecrã

só poderá apresentar um único conteúdo.

Além da inserção, alteração e remoção da informação sobre o escalonamento dos

conteúdos, a aplicação deverá ainda permitir algumas listagens, tais como:

- todos os conteúdos disponíveis;

- os conteúdos utilizados no escalonamento;

- os conteúdos não utilizados no escalonamento;

- o conteúdo com maior número de apresentações no escalonamento;

- o conteúdo com mais tempo de apresentação acumulado no escalonamento;

- o escalonamento.

Edited by thoga31
GeSHi
Posted

Boa tarde.

Acho que os meus colegas já opinaram o suficiente acerca da tua situação. Portanto, adiante...

Boa noite programadores! Preciso de ajuda para fazer um painel publicitário mas não percebo nada de "c".

Se tens aulas de programação, como não percebes nada de C? Tens estudado?

Se for possível agradecia comentários no programa final para eu conseguir perceber.

O que pretendes da nossa parte? Que te alteremos o código e que to deixemos comentado?

Tenho um código que me foi dado por um colega, que queria usar como base, mas alterado de maneira que o prof não perceba que e do mesmo!

A isto chama-se plágio, coisa que muitos de nós aqui não vemos com bons olhos.

Posto isto, quais são as tuas dúvidas?

Knowledge is free!

Posted

thoga31 sim era isso que pretendia, se fosse possível.

Eu também nao sou a favor do plagio! Mas aconteceram coisas recentemente na minha vida que me impediram de estudar e o prazo esta mesmo a ficar apertado e eu nao sei para que lado me virar!

Posted

thoga31 sim era isso que pretendia, se fosse possível

Não é possível, aqui ninguém te vai fazer o trabalho. Pior ainda quando estás à espera que te ajudemos a plagiar disfarçadamente. Mais, é contra as Regras do Fórum. Quando te inscreveste, aceitaste essas mesmas Regras. Se não as leste, o problema não é nosso.

O meu conselho é estudares e não andares a fazer as disciplinas só para passar. E claro, não fazer plágios pseudo-disfarçados.

Knowledge is free!

Posted

thoga31 sim era isso que pretendia, se fosse possível

Eu também nao sou a favor do plagio! Mas aconteceram coisas recentemente na minha vida que me impediram de estudar e o prazo esta mesmo a ficar apertado e eu nao sei para que lado me virar!

Olha. Conselho de quem já chumbou a programação: Se não sabes, não mereces passar. Coisas acontecem na vida, seja problema emocionais, problemas de saúde, questões de preguiça, ou se estiveres na faculdade "é o primeiro ano e quero aproveitar" e sintomas do secundário de estudar um dia antes do teste, qualquer coisa. Se não mereces passar, por qualquer motivo que te impediu de estudar e trabalhar, então não mereces passar e é mais fácil admiti-lo que tentar enganar o professor. Chumba, é melhor para ti. E digo-te isto porque sei o que é querer passar e despachar a cadeira, querer copiar código e mandar assim como se o trabalho fosse nosso. No ano a seguir, trabalhei e esforcei-me e compensou e senti-me muito melhor. Para o ano tentas outra vez e tentas dedicar-te. Passar "por favor" não te vai ajudar em nada. Especialmente se tiveres continuação da matéria para o ano.

já agora os professores não são tapadinhos, eles conhecem bem os cantos à casa. E se não sabes nada de c, não vais saber editar o código o suficiente para iludir os professores

  • 2 weeks later...
Posted

Parabéns, FBI99. Se não te fizeram o trabalho foi precisamente para fazeres as coisas por ti, pois tal é também possível (e é certamente mais útil para a tua formação).

Quando tiveres dúvidas, és sempre bem-vindo, e o pessoal está pronto para ajudar.

e ?

Foi só para nos lembrar que não devemos fazer o trabalho dos outros, pois dessa forma eles acabam por conseguir fazê-lo por eles (aprendendo alguma coisa pelo meio).

  • Vote 1

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
×
×
  • Create New...

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.