Jump to content

Recommended Posts

Posted

http://www.2shared.com/file/-f4lr8ge/trabalho2.html

Boas. O projecto está praticamente terminado. Fiz upload do mesmo e gostaria que me dissessem como é que se faz:

inserir_projecto_candidato (char* titulo1,char* instituicao1,char* investigador1,int duracao1,char* palavra_chave1, pgastos despesas1)
inserir_projecto_candidato(titulo, instituicao, investigador, duracao, palavra_chave, p2->despesas);

Ambos dao erros no pgastos despesas1 e p2->despesas.

Como é que retorno o valor media e soma_despesas das voids para a main?

Só preciso disso para terminar. Thx

Posted

tens varios erros!!!

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

#define maximo 5

int code=0;


typedef struct gastos {
        int equipamento,bolsas,consumiveis,consultores,deslocacoes,gastos_gerais;
} gastos, *pgastos;


typedef struct projecto_candidato {
        int codigo;
        char* titulo;
        char* instituicao;
        char* investigador;
        int duracao;
        char* palavra_chave[5];
        pgastos despesas;
        char originalidade,qualidade_proposta,idoneidade,exequibilidade;
        int classificacao;
        double classificador1,classificador2,classficiador3;

        } projecto_candidato, *pcandidato;

       pcandidato array_projectos[maximo];

   void inserir_projecto_candidato (char* titulo1,char* instituicao1,char* investigador1,int duracao1,char* palavra_chave1, pgastos despesas1) {

     pcandidato p1 = (pcandidato) malloc(sizeof(pcandidato));
  if(p1) {
   p1->codigo=code;
   p1->titulo = titulo1;
    p1->instituicao = instituicao1;
    p1->investigador = investigador1;
    p1->duracao = duracao1;
    p1->despesas=despesas1;
    for(int i=0;i<5;i++) {
            p1->palavra_chave[i] = palavra_chave1;
            }
            p1->originalidade =' ';
            p1->qualidade_proposta=' ';
            p1->idoneidade=' ';
            p1->exequibilidade=' ';
            code++;
            }
   else {
       printf("Not enought memory!\n");
}
                   for(int j=0;j<maximo;j++) {
                      pcandidato pp1;
                      pp1 = (pcandidato)array_projectos[j];
                      if(pp1 == NULL){
                             (array_projectos[j]) = p1;
                             printf("Projecto Inserido\n");
                             break;
                             }
                      }
}
void criar_projecto_candidato(){

     char* titulo;
     char* instituicao;
     char* investigador;
     char* palavra_chave[5];
     int duracao;
     int equipamento1,bolsas1,consumiveis1,consultores1,deslocacoes1,gastos_gerais1;

     printf("Introduza o titulo: ");
    gets(titulo);
   printf("\nIntroduza a instuituicao proponente: ");
    gets(instituicao);
    printf("\nIntroduza o nome do investigador responsavel: ");
    gets(investigador);
    printf("\nIntroduza a duracao do projecto(em anos): ");
    scanf("%d",&duracao);
    printf("\nIntroduza a palavra chave (ate 5): ");
    for ( int i=0;i<5;i++) {
    gets(palavra_chave[i]);
    }
    printf("Introduza o valor para os gastos em compra de equipamento: ");
    scanf("%d",&equipamento1);
    printf("Introduza o valor para os gastos na bolsa: ");
    scanf("%d",&bolsas1);
    printf("Introduza o valor para os gastos com consumiveis: ");
    scanf("%d",&consumiveis1);
    printf("Introduza o valor para os gastos com consultores: ");
    scanf("%d",&consultores1);
    printf("Introduza o valor para os gastos com deslocacoes: ");
    scanf("%d",&deslocacoes1);
    printf("Introduza o valor para os gastos gerais: ");
    scanf("%d",&gastos_gerais1);

    pcandidato p2;
    p2->despesas->equipamento=equipamento1;
    p2->despesas->bolsas=bolsas1;
    p2->despesas->consumiveis=consumiveis1;
    p2->despesas->consultores=consultores1;
    p2->despesas->deslocacoes=deslocacoes1;
    p2->despesas->gastos_gerais=gastos_gerais1;

   code++;

   inserir_projecto_candidato(titulo, instituicao, investigador, duracao, palavra_chave[1], p2->despesas); //ERRO AQUI!! tavas a mandar um apontador para uma array

   double soma_despesas;
soma_despesas= p2->despesas->equipamento+p2->despesas->bolsas+p2->despesas->consumiveis+p2->despesas->consultores+p2->despesas->deslocacoes+p2->despesas->gastos_gerais;
}

void avaliadores() {
    int originalidade1,originalidade2,originalidade3;
    int qualidade1,qualidade2,qualidade3;
    int idoneidade1,idoneidade2,idoneidade3;
    int exequibilidade1,exequibilidade2,exequibilidade3;

     for(int k = 0 ; k<3 ; k++) {
             if ( k = 0) {
                  printf("Introduza a nota da Originalidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&originalidade1);
                  printf("Introduza a nota da Qualidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&qualidade1);
                  printf("Introduza a nota da Idoneidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&idoneidade1);
                  printf("Introduza a nota da Exequilibidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&exequibilidade1);
                  }
                  else if ( k=1) {
                  printf("Introduza a nota da Originalidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&originalidade2);
                  printf("Introduza a nota da Qualidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&qualidade2);
                  printf("Introduza a nota da Idoneidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&idoneidade2);
                  printf("Introduza a nota da Exequilibidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&exequibilidade2);
                  }
                  else if (k=2) {
                  printf("Introduza a nota da Originalidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&originalidade3);
                  printf("Introduza a nota da Qualidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&qualidade3);
                  printf("Introduza a nota da Idoneidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&idoneidade3);
                  printf("Introduza a nota da Exequilibidade em decimal! N=1, M=2, S=3, B=4, E=5: ");
                  scanf("%d",&exequibilidade3);
                  }

}


int media= (originalidade1+originalidade2+originalidade3+qualidade1+qualidade2+qualidade3+idoneidade1+idoneidade2+idoneidade3+exequibilidade1+exequibilidade2+exequibilidade3)/12;
printf ( "Media= %d", media);

}



void listar_candidatos()
{
   int i;

   printf("\nLISTAGEM\n--------------------\n");
   for(i=0;i<maximo;i++)
{
	if((array_projectos[i])!=NULL)  //candidato inserido
	{
		printf("Codigo:%d\n",array_projectos[i]->codigo);
		printf("Titulo:%s\n",array_projectos[i]->titulo);
		printf("Instituicao:%d\n",array_projectos[i]->instituicao);
		printf("Investigador:%s\n--------------\n",array_projectos[i]->investigador);
		printf("Duracao:%d\n",array_projectos[i]->duracao);
		printf("Gastos:%d\n",array_projectos[i]->despesas);
		//printf("Classificicacao:%d\n",);  //ERRO AQUI!! falta a variavel
	}

	if((array_projectos[i])==NULL)  //nao ha mais candidatos inseridos
		break;
}
}




  void gravar() {
  FILE *f = fopen("Dados_Candidato.txt","wt");
int i=0;

if(f!=NULL)
{
	for(i=0;i<maximo;i++)
	{
		if(array_projectos[i]!=NULL)
		{
			/*fprintf(f,"%d\n",array_projectos[i]->.......);
			fprintf(f,"%s\n",array_projectos[i]->.......);
			fprintf(f,"%s\n",array_projectos[i]->.......);*/
		}
	}
	fclose(f);
}
else
	printf("Erro\n");

}

int main (void) {

criar_projecto_candidato();
//inserir_projecto_candidato(); //ERRO AQUI!! poucos argumentos na funcao!!!!!!
int media;//ERRO AQUI!! media nao esta declarada

if (media<3)
{
             printf("PROJECTO REJEITADO!!");
             }
             else if (media=3) {
                  double valor;//=0.3*soma_despesas;//ERRO AQUI!! soma_despesas nao declarado
                  printf("Subsidio no valor de %0.2f",valor);}
                  else if (media = 4) {
                       double valor1;//=0.75*soma_despesas;
                  printf("Subsidio no valor de %0.2f",valor1);}
                  else if ( media=5) {
                       double valor2;//=1*soma_despesas;
                  printf("Subsidio no valor de %0.2f",valor2);}



   system("PAUSE");

return 0;
}

marquei o lugar onde encontrei erros de compilacao com "//ERRO AQUI"

ja' agora isto parece C....

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

Esses erros sao os que aparecem no programa em c. Não estou a perceber é como corrigir.

1ºerro- indiquei p2->despesas. Não faco a minima ideia do que poderá ser. Aparece um erro esquisito que nao consigo fixar. 107 

cannot convert `char**' to `char*' for argument `5' to `void inserir_projecto_candidato(char*, char*, char*, int, char*, gastos*)'

2ºerro- A classificacao seria o valor da media.Tenho que a por no array e depois chamar com o array_projectos como nos outros?

int media= (originalidade1+originalidade2+originalidade3+qualidade1+qualidade2+qualidade3+idoneidade1+idoneidade2+idoneidade3+exequibilidade1+exequibilidade2+exequibilidade3)/12;

printf ( "Media= %d", media);

3ºerro-poucos argumentos na funcao!!!!!! Esta funcao pus na main. Nao percebi o erro.

4º erro- Como é que se retorna o valor da media para a main? Tentei retirar o void da funcao. pus double e fiz return (media) e nao da.

5º erro- precisamente porque a soma nao foi retornada para a main, nao consigo fazer os calculos finais que estao na main.

Alguem pode dar uma ajudinha sff? Thx.

Posted

Esses erros sao os que aparecem no programa em c. Não estou a perceber é como corrigir.

1ºerro- indiquei p2->despesas. Não faco a minima ideia do que poderá ser. Aparece um erro esquisito que nao consigo fixar. 107 

cannot convert `char**' to `char*' for argument `5' to `void inserir_projecto_candidato(char*, char*, char*, int, char*, gastos*)'

2ºerro- A classificacao seria o valor da media.Tenho que a por no array e depois chamar com o array_projectos como nos outros?

int media= (originalidade1+originalidade2+originalidade3+qualidade1+qualidade2+qualidade3+idoneidade1+idoneidade2+idoneidade3+exequibilidade1+exequibilidade2+exequibilidade3)/12;

printf ( "Media= %d", media);

3ºerro-poucos argumentos na funcao!!!!!! Esta funcao pus na main. Nao percebi o erro.

4º erro- Como é que se retorna o valor da media para a main? Tentei retirar o void da funcao. pus double e fiz return (media) e nao da.

5º erro- precisamente porque a soma nao foi retornada para a main, nao consigo fazer os calculos finais que estao na main.

Alguem pode dar uma ajudinha sff? Thx.

1o- o erro esta na palavra chave, ou mandas um array de chars, ou modificas a funcao para receber um apontador de arrays.

2o - a media nao estava declarada

3o - entao tens uma funcao declarada "void inserir_projecto_candidato (char* titulo1,char* instituicao1,char* investigador1,int duracao1,char* palavra_chave1, pgastos despesas1)" e chamas por "nserir_projecto_candidato()"????

4o e 5o- nao percebi, porque nem sei o que o programa faz, e sinceramente nao olhei para o programa com olhos de perceber.

Foste tu que realmente fizeste este programa??? e' que nao sabes o problema na funcao, nao me parece que tenhas sido tu.

Ja' agora isto esta na seccao errada, o teu codigo e' C e nao C++....

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

Pretende-se criar, um sistema de informação (SI) para apoio à seleção de projetos de investigação candidatos ao financiamento disponibilizado por uma Instituição Nacional. Cada projeto candidato é caracterizado pelos seguintes atributos:

 titulo;

 instituição proponente;

 nome do investigador responsável;

 duração do projeto (número de anos);

 lista de palavras-chave (até 5), designando as grandes áreas/tópicos de investigação;

 gastos previstos (em euros) distribuídos pelas seguintes rúbricas: compra equipamento, pagamento bolsas, despesas com consumíveis, despesas com consultores, deslocações nacionais ou estrangeiras, gastos gerais;

 classificação atribuída pelos 3 avaliadores. Será fornecida uma sequência de 5 letras1 representando a nota dada a cada um dos 4 critérios de apreciação das propostas: originalidade, qualidade da proposta, idoneidade da equipa, exequibilidade.

2.1 Aquisição dos Dados e Armazenamento

Nesta parte do trabalho, pretende-se que desenvolva um programa que lhe permita ler os dados referentes a vários projetos, atribuindo, a cada um, um código interno (pode ser sequencial) e calcular o custo total (financiamento solicitado) e a classificação final (média dos 3 avaliadores sendo, para cada um, calculada a média das notas atribuídas aos 4 parâmetros, considerando N=1, M=2, S=3, B=4, E=5).

Após guardar num vetor de registos os dados lidos o programa deve escrever num ficheiro de texto (nome dado pelo utilizador) por ordem decrescente de classificações, o código interno, o

cada letra pode tomar um dos valores N, M, S, B, E, significando: Não satisfaz; Minimamente satisfatório; Satisfaz; Bom; Excelente.

título, a instituição, o financiamento solicitado, a classificação final e o subsídio a atribuir pela Instituição Nacional, calculado de acordo com o seguinte critério:

 0% (o projeto é rejeitado), se a classificação for inferior a 3 pontos;

 30% do solicitado, se a classificação for 3 pontos;

 75% do solicitado, se a classificação for 4 pontos;

 100% do solicitado, se a classificação for 5 pontos.

desculpa la isto estar na secção errada se puderes mover agradeco

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.