Ir para conteúdo
Fórum Script Brasil
  • 0

[Problema/Ajuda] Erros de syntax


Cyber_Shoy

Pergunta

Boas.

Eu tenho um trabalho de programação em liguagem C, e ao compilar tenho vários erros e como o meu conhecimento em inguagem C é um pouco reduzido, precisava de ajuda.

Se alguém pudesse ajudar-me.

Ficheiro .txt da programação:

h**p://www.fileshost.com/en/file/75699/Projecto-txt.html

Aqui está a programação:

// Inicialização das librarias

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// Inicialização das funções.

void inicdisc(char disciplinas [10][]);

void inserir(char nomes[18][], char disciplinas[10][], float notas[18][], int *n, int *m);

void consultar(char nomes[18][], char disciplinas[10][], float notas[18][],int *n, int *m);

void alterar(char nomes[18][], char disciplinas[10][], float notas[18][], int *n, int *m);

void eliminar(char nomes[18][], float notas[18][], int *n, int *m);

void listar(char nomes[18][], char disciplinas[10][], float notas[18][], int *n, int *m);

int pesquisa(char str[], char nomes[18][], int *n, int *m);

int pesqdisc(char str[], char disciplinas[18][], int *y);

// Programa principal.

int main(int argc, char *argv[])

{

// Inicialição das variáveis.

int i, j, op, n = 0, m = 0, y = 0;

float notas[18][10];

char nomes[18][50], disciplinas[10][50];

// Ciclo for afim de colocar a matriz das notas a zero.

for(j = 0; j < 18; j++)

{

for(i = 0; i <10; i++)

{

notas[j] = 0;

}

}

// Chamada da função "inicdisc" que vai inserir os nomes das disciplinas na matriz disciplinas.

inicdisc(disciplinas);

// Ciclio do afim de escolher a opção desejada para realizar.

do

{

printf("\n\tMENU\n\n1. Inserir\n2. Consultar\n3. Alterar\n4. Eliminar\n5. Listar\n6. Sair\n\n");

scanf("%d", &op);

switch (op)

{

case 1: inserir(nomes, disciplinas, notas, &n, &m);

break;

case 2: consultar(nomes, disciplinas, notas, &n, &m);

break;

case 3: alterar(nomes, disciplinas, notas, &n, &m);

break;

case 4: eliminar(nomes, notas, &n, &m);

break;

case 5: listar(nomes, disciplinas, notas, &n, &m);

break;

case 6: break;

default: printf("Opcao escolhida inexistente");

break;

system("PAUSE");

return 0;

}

// Função "inicdisc" que vai inserir os nomes das disciplinas na matriz disciplinas.

void inicdisc(char disciplinas [10][])

{

strcpy(disciplinas[0][], "Programacao");

strcpy(disciplinas[1][], "Robotica");

strcpy(disciplinas[2][], "Projecto");

strcpy(disciplinas[3][], "Comercial");

strcpy(disciplinas[4][], "Ingles");

strcpy(disciplinas[5][], "Portugues");

strcpy(disciplinas[6][], "Matematica");

strcpy(disciplinas[7][], "Direito");

strcpy(disciplinas[8][], "ITED");

strcpy(disciplinas[9][], "Microcontroladores");

}

/* Função "inserir" que corresponde a primeira opção do menu, em que vai inserir o nome do aluno e consecutivamente verificar se

esse existe repetido ou não, assim como inserir as notas correspondente a esse mesmo aluno inserido e em função da disciplina

escolhida. */

void inserir(char nomes[18][], char disciplinas[10][], float notas[18][], int *n, int *m)

{

char str[50];

int i, flag;

printf("Qual o aluno?\n");

gets(str);

flag = pesquisa(str, nomes, &n, &m);

if(flag != 0)

{

strcpy(nomes[*n][], str);

for(i = 0; i < 10; i++)

{

printf("Insira a nota referente a disciplina %s", disciplinas[]);

scanf("%f", notas[*n]);

}

*n++;

}

else

{

printf("O aluno com esse nome já existe.");

}

}

// Função "pesquisa" que tem como função verificar se as strings inseridas estão repetidas ou não, ou se existem.

int pesquisa(char str[18], char nomes[18][], int *n, int *m)

{

int i, a = 0;

for(i = 0; i <= *n; i++)

{

a = strcomp(nomes[], str);

if(a == 0)

{

*m = i

return 0;

}

else

{

return 1;

}

}

}

/* Função "consultar" em que realiza através da subfunção "pesquisa" se existe o nome ou não e de seguida mostrar as notas

do aluno pedido. */

void consultar(char nomes[18][], char disciplinas[10][], float notas[18][], int *n, int *m)

{

char str[50];

int i, flag;

printf("Qual o aluno a consultar?\n");

gets(str);

flag = pesquisa(str, nomes, &n, &m);

if(flag == 0)

{

printf("As notas do aluno %s são: \n", str);

for(i = 0; i < 10; i ++)

{

printf("A nota da disciplina %s e: %.2f\n", disciplinas[], notas[*m]);

}

else

{

printf("O aluno não existe.\n");

}

}

/* Função "alterar" tem como função alterar uma nota correspondente a uma disciplina de um aluno. O nome é verificado se existe

e caso exista, é verificado se a disciplina a qual a nota se deseja alterar existe e daí pede para alterar a nota e guarda a

alteraçãp */

void alterar(char nomes[18][], char disciplinas[10][], float notas[18][], int *n, int *m)

{

char str[50];

int flag;

printf("Qual o aluno ao qual se pretende alterar a nota?\n");

gets(str);

flag = pesquisa(str, nomes, &n, &m);

if(flag == 0)

{

printf("Qual a disciplina ao qual pretende alterar?\n");

gets(str);

flag = pesqdisc(str, disciplinas, &m);

if(flag == 0)

{

printf("Qual a nova nota para a disciplina %s?\n", str);

scanf("%f", notas[*m][*y]);

}

else

{

printf("A disciplina não existe.");

}

}

else

{

printf("O aluno não existe.");

}

}

/* Função "pesqdisc" consiste na mesma função da de "pesquisa" apenas difere na verificação, em que este consiste na verificação

da matriz das disciplinas */

int pesqdisc(char str[], char disciplinas[18][], int *y)

{

int i, a = 0;

for(i = 0; i < 10; i++)

{

a = strcomp(disciplinas[], str);

if(a == 0)

{

*y = i;

return 0;

}

else

{

return 1;

}

}

}

// Função "eliminar" elimina o aluno e os seus dados. Em que os dados posteriores passam a um anterior e assim, eliminando o aluno.

void eliminar(char nomes[18][], float notas[18][], int *n, int *m)

{

char str[50];

int i, j, a, flag;

printf("Qual o aluno que pretende eliminar?\n");

gets(str);

flag = pesquisa(str, nomes, &n, &m);

if(flag == 0)

{

a = (*m + 1);

for(i = a; i <= n; i++)

{

nomes[(i - 1)][] = nomes[];

for(j = 0; j <10; j++)

{

notas[(i - 1)][j] = notas[j]

}

n--;

}

else

{

printf("O aluno não existe.\n");

}

}

// Funcao "listar" vai listar todos os alunos e seus dados que foram introduzidos no programa.

void listar(char nomes[18][], char disciplinas[10][], float notas[18][], int *n, int *m)

{

int i, j;

printf("LISTAGEM DOS DADOS:\n");

for(i = 0; i <= *n; i++)

{

printf("A listagem das notas do aluno %s:\n", nomes[]);

for(j = 0; j < 10; j++)

{

printf("%s - %.2f\n", disciplinas[j][], notas[j]);

}

}

}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

è que o programa consiste numa base de dados.

Em que relativamente ao nome de um aluno, é guardado uma nota referente a uma disciplina.

Em que podemos fazer esta lógica entre as matrizes

nomes[ate 18 alunos. e cada aluno tem 10 dsciplinas e 10 notas. 1 nota em cada disciplina (B)][corresponde ao comprimento da string]

disciplinas[10 disciplinas. que vai depois remeter as notas (a)][corresponde ao comprimento da string]

notas[(B) correspondente a informaçao do aluno][(a) correspondente a informaçao da disciplina]

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...