tonelol1 Posted April 27, 2012 at 06:51 PM Report #451825 Posted April 27, 2012 at 06:51 PM 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
pikax Posted April 27, 2012 at 07:48 PM Report #451829 Posted April 27, 2012 at 07:48 PM 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."
tonelol1 Posted April 27, 2012 at 08:05 PM Author Report #451831 Posted April 27, 2012 at 08:05 PM 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.
pikax Posted April 27, 2012 at 08:26 PM Report #451835 Posted April 27, 2012 at 08:26 PM 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."
tonelol1 Posted April 27, 2012 at 08:43 PM Author Report #451840 Posted April 27, 2012 at 08:43 PM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now