Boa tarde. Eu estou desenvolvendo uma agenda electronica em C... já fiz o programa quase todo mas falta-me ordenar os numeros de aluno por ordem crescente.
falta tambem meter o programa a funcionar por ficheiro...ou seja eu queria criar um ficheiro em que já continha alguns dados mas eu pudesse acrescentar e eliminar e fazer todas as operaçoes que faria para o programa por teclado
se me puderam ajudar agradeço imenso, porque tenho de entregar o trabalho daqui a menos de 24h
aqui está o que tenho até agora
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <String.h>
#include <conio.h>
int const total = 25;
int i = 0;
typedef struct {
char nome[100], email[100], morada[100], postal[100], numero[20];
int telefone, FP, SD, AM1, ALGA, CM;
}dados;
int sair()
{
char a;
fflush(stdin);
printf("deseja relamente sair do programa [s- Sim/n- Nao]: ");
scanf_s("%c", &a);
// a=getch();
if (a == 's' || a == 'S')
exit(1);
while (a != 'n' && a != 'N');
}
void guardar(dados *contacto)
{
FILE *f;
char nfich[20];
int j = 0;
printf("insira o caminho do ficheiro\n");
scanf_s("%s", &nfich);
f = fopen(nfich, "w");
for (j = 0; j<i; j++)
{
fprintf(f, "%s ", contacto[j].nome);
fflush(stdin);
fprintf(f, "%s ", contacto[j].numero);
fflush(stdin);
fprintf(f, "%s ", contacto[j].morada);
fflush(stdin);
fprintf(f, "%s ", contacto[j].postal);
fflush(stdin);
fprintf(f, "%s ", contacto[j].email);
fflush(stdin);
fprintf(f, "%d ", contacto[j].telefone);
fflush(stdin);
fprintf(f, "%s ", contacto[j].FP);
fflush(stdin);
fprintf(f, "%s ", contacto[j].AM1);
fflush(stdin);
fprintf(f, "%s ", contacto[j].SD);
fflush(stdin);
fprintf(f, "%s ", contacto[j].ALGA);
fflush(stdin);
fprintf(f, "%s ", contacto[j].CM);
fflush(stdin);
}
printf("Dados guardados com suscesso!!! \n");
fclose(f);
}
void adicionar(dados* contacto)
{
if (i<total)
{
printf("\nIntroduza o Nome: ", i + 1);
fflush(stdin);
scanf("%[^\n]s", contacto[i].nome);
printf("Introduza o Numero: ", i + 1);
fflush(stdin);
scanf("%s", &contacto[i].numero);
printf("Introduza Morada: ", i + 1);
fflush(stdin);
scanf("%[^\n]s", contacto[i].morada);
printf("Introduza o Codigo Postal: ", i + 1);
fflush(stdin);
scanf("%[^\n]s", contacto[i].postal);
printf("Introduza o email: ", i + 1);
fflush(stdin);
scanf("%[^\n]s", contacto[i].email);
printf("Introduza o telefone: ", i + 1);
fflush(stdin);
scanf("%d", &contacto[i].telefone);
printf("Nota Final de FP: ", i + 1);
fflush(stdin);
scanf("%d", &contacto[i].FP);
printf("Nota Final de AM1: ", i + 1);
fflush(stdin);
scanf("%d", &contacto[i].AM1);
printf("Nota Final de SD: ", i + 1);
fflush(stdin);
scanf("%d", &contacto[i].SD);
printf("Nota Final de ALGA: ", i + 1);
fflush(stdin);
scanf("%d", &contacto[i].ALGA);
printf("Nota Final de CM: ", i + 1);
fflush(stdin);
scanf("%d", &contacto[i].CM);
i++;
}
else
{
printf("a lista esta cheia");
}
}
void mostrar(dados* contacto)
{
int j = 0;
printf("\t\t Mostar dados\n\n");
fflush(stdin);
for (j = 0; j<i; j++)
{
printf("\t%d-> \n\tNome: %s |", j + 1, contacto[j].nome);
fflush(stdin);
printf(" \n\tNumero: %s |", contacto[j].numero);
fflush(stdin);
printf(" \n\tMorada: %s |", contacto[j].morada);
fflush(stdin);
printf(" \n\tCodigo Postal: %s |", contacto[j].postal);
fflush(stdin);
printf(" \n\tE-Mail: %s |", contacto[j].email);
fflush(stdin);
printf(" \n\tNumero de telefone: %d |", contacto[j].telefone);
fflush(stdin);
printf(" \n\tNota final de FP: %d |", contacto[j].FP);
fflush(stdin);
printf(" \n\tNota final de AM1: %d |", contacto[j].AM1);
fflush(stdin);
printf(" \n\tNota final de SD: %d |", contacto[j].SD);
fflush(stdin);
printf(" \n\tNota final de ALGA: %d |", contacto[j].ALGA);
fflush(stdin);
printf(" \n\tNota final de CM: %d\t\n\n\n |", contacto[j].CM);
fflush(stdin);
}
}
void eliminar(dados *contacto){
char c;
mostrar(contacto);
int j, opcao;
do{
printf("Introduza numero a eliminar:\n");
scanf("%d", &opcao);
if (opcao >i || opcao <= 0)
printf("Opcao Invalida\n");
} while (opcao >i || opcao <= 0);
getchar();
do{
printf("Deseja mesmo apagar o contacto? (s - Sim; n -Nao)");
scanf("%c", &c);
} while (c != 's' && c != 'n' && c != 'N' && c != 'S');
if (c == 's' || c == 'S'){
for (j = opcao; j<i; j++)
{
strcpy(contacto[j].nome, contacto[i - 1].nome);
strcpy(contacto[j].numero, contacto[i - 1].numero);
strcpy(contacto[j].morada, contacto[i - 1].morada);
strcpy(contacto[j].postal, contacto[i - 1].postal);
strcpy(contacto[j].email, contacto[i - 1].email);
contacto[j].telefone = contacto[i - 1].telefone;
contacto[j].FP = contacto[i - 1].FP;
contacto[j].AM1 = contacto[i - 1].AM1;
contacto[j].SD = contacto[i - 1].SD;
contacto[j].ALGA = contacto[i - 1].ALGA;
contacto[j].CM = contacto[i - 1].CM;
}
i--;
}
}
void pesquisar1(dados* contacto)
{
char proc[50];
int j;
printf("Introduza o nome que pretende pesquisar: ");
scanf("%s", proc);
for (j = 0; j<i; j++)
{// isto diz o numero total de contactos
if (0 == strcmp(proc, contacto[j].nome))
{
printf("\n\nDados: \n");
printf("\tNome: %s", contacto[j].nome);
printf("\n\tEmail: %s", contacto[j].email);
printf("\n\tTelefone: %d", contacto[j].telefone);
printf("\n----------------------------------\n");
system("pause");
return;
}
}
printf("\nNome invalido\n");
system("pause");
}
void pesquisar2(dados* contacto)
{
char proc[50];
int j;
printf("Introduza o nome que pretende pesquisar: ");
scanf("%s", proc);
for (j = 0; j<i; j++)
{// isto diz o numero total de contactos
if (0 == strcmp(proc, contacto[j].nome))
{
printf("\n\nDados: \n");
printf("\n\tNomePesquisado: %s", contacto[j].nome);
printf("\n\tMorada: %s", contacto[j].morada);
printf("\n\tCodigo Postal: %s", contacto[j].postal);
printf("\n\tTelefone: %d", contacto[j].telefone);
printf("\n----------------------------------\n");
system("pause");
return;
}
}
printf("\nNome invalido\n");
system("pause");
}
void pesquisar3(dados* contacto)
{
char proc[50];
int j;
printf("Introduza o numero que pretende pesquisar: ");
scanf("%s", proc);
for (j = 0; j<i; j++)
{// isto diz o numero total de contactos
if (0 == strcmp(proc, contacto[j].numero))
{
printf("\n\nDados: \n");
printf("\n\tNumero Pesquisado: %s", contacto[j].numero);
printf("\tNome Pesquisado: %s", contacto[j].nome);
printf("\n\tEmail: %s", contacto[j].email);
printf("\n\tTelefone: %d", contacto[j].telefone);
printf("\n----------------------------------\n");
system("pause");
return;
}
}
printf("\nNome invalido\n");
system("pause");
}
void pesquisar4(dados* contacto)
{
char proc[50];
int j;
printf("Introduza o numero que pretende pesquisar: ");
scanf("%s", proc);
for (j = 0; j<i; j++)
{// isto diz o numero total de contactos
if (0 == strcmp(proc, contacto[j].numero))
{
printf("\n\nDados: \n");
printf("\n\tNumero Pesquisado: %s", contacto[j].numero);
printf("\n\tNome: %s", contacto[j].nome);
printf("\n\tMorada: %s", contacto[j].morada);
printf("\n\tCodigo Postal: %s", contacto[j].postal);
printf("\n\tTelefone: %d", contacto[j].telefone);
printf("\n----------------------------------\n");
system("pause");
return;
}
}
printf("\nNome invalido\n");
system("pause");
}
void alterar(dados *contacto){
int opcao;
mostrar(contacto);
do{
printf("Introduza numero a alterar:\n");
scanf("%d", &opcao);
if (opcao >i || opcao <= 0)
printf("Opcao Invalida\n");
} while (opcao >i || opcao <= 0);
printf("\n\nDados: \n");
printf("\tNome: %s", contacto[opcao].nome);
printf("\tNumero de aluno ISEL: %d", contacto[opcao].numero);
printf("\tMorada: %s", contacto[opcao].morada);
printf("\tCodigo Postal: %s", contacto[opcao].postal);
printf("\n\tEmail: %s", contacto[opcao].email);
printf("\n\tTelefone: %d", contacto[opcao].telefone);
printf("\tNota final de FP: %s", contacto[opcao].FP);
printf("\tNota final de AM1: %s", contacto[opcao].AM1);
printf("\tNota final de SD: %s", contacto[opcao].SD);
printf("\tNota final de ALGA: %s", contacto[opcao].ALGA);
printf("\tNota final de CM: %s", contacto[opcao].CM);
printf("\n----------------------------------\n");
printf("Novo nome:", i);
fflush(stdin);
scanf("%[^\n]s", contacto[opcao - 1].nome);
printf("Numero de aluno ISEL:", i);
fflush(stdin);
scanf("%d", contacto[opcao - 1].numero);
printf("Nova morada:", i);
fflush(stdin);
scanf("%[^\n]s", contacto[opcao - 1].morada);
printf("Novo Codigo Postal:", i);
fflush(stdin);
scanf("%[^\n]s", contacto[opcao - 1].postal);
printf("Introduza o email:", i);
fflush(stdin);
scanf("%[^\n]s", contacto[opcao - 1].email);
printf("Introduza o telefone:", i);
fflush(stdin);
scanf("%d", &contacto[opcao - 1].telefone);
printf("Nota final de FP:", i);
fflush(stdin);
scanf("%d", &contacto[opcao - 1].FP);
printf("Nota final de AM1:", i);
fflush(stdin);
scanf("%d", &contacto[opcao - 1].AM1);
printf("Nota final de SD:", i);
fflush(stdin);
scanf("%d", &contacto[opcao - 1].SD);
printf("Nota final de ALGA:", i);
fflush(stdin);
scanf("%d", &contacto[opcao - 1].ALGA);
printf("Nota final de SD:", i);
fflush(stdin);
scanf("%d", &contacto[opcao - 1].SD);
printf("dados guardados com sucesso!!! ");
return;
}
void submenu(dados *contacto)
{
char op;
do
{
system("cls");
printf("\n\tEscolha uma opcao\n\n\t");
printf("1- Mostrar lista\n\n\t");
printf("2- Acrescentar um registo na agenda\n\n\t");
printf("3- Apagar um registo da agenda\n\n\t");
printf("4- Qual eh o telefone e o endereco\n\t de e-mail de um NOME de aluno que conste na agenda\n\n\t");
printf("5- Qual o telefone, a morada, e o\n\t codigo postal de um NOME de um aluno que conste na agenda\n\n\t");
printf("6- Qual o telefone e o endereco de\n\t e-mail de um NUMERO de um aluno que conste na agenda\n\n\t");
printf("7- Qual o telefone, a morada, e o\n\t codigo postal de um NUMERO de um aluno que conste na agenda\n\n\t");
printf("8- Ordenar a agenda por ordem crescente\n\t do numero de aluno, para todos os registos da agenda\n\n\t");
printf("0- Voltar ao menu principal\n\n\t");
printf("\n\tSelecione a opcao --> ");
op = getchar();
switch (op)
{
case '1':
system("cls");
mostrar(contacto);
system("pause");
break;
case '2':
system("cls");
adicionar(contacto);
system("pause");
break;
case '3':
system("cls");
eliminar(contacto);
system("pause");
break;
case '4':
system("cls");
pesquisar1(contacto);
system("pause");
break;
case '5':
system("cls");
pesquisar2(contacto);
system("pause");
break;
case '6':
system("cls");
pesquisar3(contacto);
system("pause");
break;
case '7':
system("cls");
pesquisar4(contacto);
system("pause");
break;
case'8':
system("cls");
//ordenar(contacto);
system("pause");
break;
case '9':
system("cls");
op = '0';
break;
}
} while (op != '0');
}
void abrir(dados *contacto)
{
FILE *f;
char nome[1000], morada[1000], postal[1000], email[1000],numero [20], nfich[20];
int telefone, FP, AM1, SD, ALGA, CM;
printf("insira o caminho do ficheiro\n");
scanf("%s", &nfich);
f = fopen(nfich, "r");
if (f == NULL)
{
printf("erro ao abrir ficheiros");
}
else
{
while (!feof(f))
{
fscanf(f, " %[\n]s %[\n]s %[\n]s %[\n]s %[\n]s %d %d %d %d %d %d", nome,numero, morada, postal, email, &telefone, &FP, &AM1, &SD, &ALGA, &CM);
strcpy(contacto[i].nome, nome);
strcpy(contacto[i].numero, numero);
strcpy(contacto[i].morada, morada);
strcpy(contacto[i].postal, postal);
strcpy(contacto[i].email, email);
contacto[i].telefone = telefone;
contacto[i].FP = FP;
contacto[i].AM1 = AM1;
contacto[i].SD = SD;
contacto[i].ALGA = ALGA;
contacto[i].CM = CM;
i++;
}
fclose(f);
}
}
void main(int argc, char *argv[])
{
dados contacto[total];
char op;
int j;
do
{
system("cls");
printf("\n\t.:: AGENDA ELECTRONICA EM LINGUAGEM C ::.\n\n\t ");
printf("Como pretende introduzir os dados:\n\n\t\t");
printf("1- Atraves do teclado\n\t\t");
printf("2- Atraves de ficheiro\n\n\t\t");
printf("0- Sair do Programa\n\n\t");
printf("opcao--> ");
scanf("%c", &op);
switch (op)
{
case'1':
submenu(contacto);
break;
case'2':
abrir(contacto);
submenu(contacto);
break;
}
} while (op != '0');
system("PAUSE");
}
Pergunta
rubenndf91
Boa tarde. Eu estou desenvolvendo uma agenda electronica em C... já fiz o programa quase todo mas falta-me ordenar os numeros de aluno por ordem crescente.
falta tambem meter o programa a funcionar por ficheiro...ou seja eu queria criar um ficheiro em que já continha alguns dados mas eu pudesse acrescentar e eliminar e fazer todas as operaçoes que faria para o programa por teclado
se me puderam ajudar agradeço imenso, porque tenho de entregar o trabalho daqui a menos de 24h
aqui está o que tenho até agora
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <String.h> #include <conio.h> int const total = 25; int i = 0; typedef struct { char nome[100], email[100], morada[100], postal[100], numero[20]; int telefone, FP, SD, AM1, ALGA, CM; }dados; int sair() { char a; fflush(stdin); printf("deseja relamente sair do programa [s- Sim/n- Nao]: "); scanf_s("%c", &a); // a=getch(); if (a == 's' || a == 'S') exit(1); while (a != 'n' && a != 'N'); } void guardar(dados *contacto) { FILE *f; char nfich[20]; int j = 0; printf("insira o caminho do ficheiro\n"); scanf_s("%s", &nfich); f = fopen(nfich, "w"); for (j = 0; j<i; j++) { fprintf(f, "%s ", contacto[j].nome); fflush(stdin); fprintf(f, "%s ", contacto[j].numero); fflush(stdin); fprintf(f, "%s ", contacto[j].morada); fflush(stdin); fprintf(f, "%s ", contacto[j].postal); fflush(stdin); fprintf(f, "%s ", contacto[j].email); fflush(stdin); fprintf(f, "%d ", contacto[j].telefone); fflush(stdin); fprintf(f, "%s ", contacto[j].FP); fflush(stdin); fprintf(f, "%s ", contacto[j].AM1); fflush(stdin); fprintf(f, "%s ", contacto[j].SD); fflush(stdin); fprintf(f, "%s ", contacto[j].ALGA); fflush(stdin); fprintf(f, "%s ", contacto[j].CM); fflush(stdin); } printf("Dados guardados com suscesso!!! \n"); fclose(f); } void adicionar(dados* contacto) { if (i<total) { printf("\nIntroduza o Nome: ", i + 1); fflush(stdin); scanf("%[^\n]s", contacto[i].nome); printf("Introduza o Numero: ", i + 1); fflush(stdin); scanf("%s", &contacto[i].numero); printf("Introduza Morada: ", i + 1); fflush(stdin); scanf("%[^\n]s", contacto[i].morada); printf("Introduza o Codigo Postal: ", i + 1); fflush(stdin); scanf("%[^\n]s", contacto[i].postal); printf("Introduza o email: ", i + 1); fflush(stdin); scanf("%[^\n]s", contacto[i].email); printf("Introduza o telefone: ", i + 1); fflush(stdin); scanf("%d", &contacto[i].telefone); printf("Nota Final de FP: ", i + 1); fflush(stdin); scanf("%d", &contacto[i].FP); printf("Nota Final de AM1: ", i + 1); fflush(stdin); scanf("%d", &contacto[i].AM1); printf("Nota Final de SD: ", i + 1); fflush(stdin); scanf("%d", &contacto[i].SD); printf("Nota Final de ALGA: ", i + 1); fflush(stdin); scanf("%d", &contacto[i].ALGA); printf("Nota Final de CM: ", i + 1); fflush(stdin); scanf("%d", &contacto[i].CM); i++; } else { printf("a lista esta cheia"); } } void mostrar(dados* contacto) { int j = 0; printf("\t\t Mostar dados\n\n"); fflush(stdin); for (j = 0; j<i; j++) { printf("\t%d-> \n\tNome: %s |", j + 1, contacto[j].nome); fflush(stdin); printf(" \n\tNumero: %s |", contacto[j].numero); fflush(stdin); printf(" \n\tMorada: %s |", contacto[j].morada); fflush(stdin); printf(" \n\tCodigo Postal: %s |", contacto[j].postal); fflush(stdin); printf(" \n\tE-Mail: %s |", contacto[j].email); fflush(stdin); printf(" \n\tNumero de telefone: %d |", contacto[j].telefone); fflush(stdin); printf(" \n\tNota final de FP: %d |", contacto[j].FP); fflush(stdin); printf(" \n\tNota final de AM1: %d |", contacto[j].AM1); fflush(stdin); printf(" \n\tNota final de SD: %d |", contacto[j].SD); fflush(stdin); printf(" \n\tNota final de ALGA: %d |", contacto[j].ALGA); fflush(stdin); printf(" \n\tNota final de CM: %d\t\n\n\n |", contacto[j].CM); fflush(stdin); } } void eliminar(dados *contacto){ char c; mostrar(contacto); int j, opcao; do{ printf("Introduza numero a eliminar:\n"); scanf("%d", &opcao); if (opcao >i || opcao <= 0) printf("Opcao Invalida\n"); } while (opcao >i || opcao <= 0); getchar(); do{ printf("Deseja mesmo apagar o contacto? (s - Sim; n -Nao)"); scanf("%c", &c); } while (c != 's' && c != 'n' && c != 'N' && c != 'S'); if (c == 's' || c == 'S'){ for (j = opcao; j<i; j++) { strcpy(contacto[j].nome, contacto[i - 1].nome); strcpy(contacto[j].numero, contacto[i - 1].numero); strcpy(contacto[j].morada, contacto[i - 1].morada); strcpy(contacto[j].postal, contacto[i - 1].postal); strcpy(contacto[j].email, contacto[i - 1].email); contacto[j].telefone = contacto[i - 1].telefone; contacto[j].FP = contacto[i - 1].FP; contacto[j].AM1 = contacto[i - 1].AM1; contacto[j].SD = contacto[i - 1].SD; contacto[j].ALGA = contacto[i - 1].ALGA; contacto[j].CM = contacto[i - 1].CM; } i--; } } void pesquisar1(dados* contacto) { char proc[50]; int j; printf("Introduza o nome que pretende pesquisar: "); scanf("%s", proc); for (j = 0; j<i; j++) {// isto diz o numero total de contactos if (0 == strcmp(proc, contacto[j].nome)) { printf("\n\nDados: \n"); printf("\tNome: %s", contacto[j].nome); printf("\n\tEmail: %s", contacto[j].email); printf("\n\tTelefone: %d", contacto[j].telefone); printf("\n----------------------------------\n"); system("pause"); return; } } printf("\nNome invalido\n"); system("pause"); } void pesquisar2(dados* contacto) { char proc[50]; int j; printf("Introduza o nome que pretende pesquisar: "); scanf("%s", proc); for (j = 0; j<i; j++) {// isto diz o numero total de contactos if (0 == strcmp(proc, contacto[j].nome)) { printf("\n\nDados: \n"); printf("\n\tNomePesquisado: %s", contacto[j].nome); printf("\n\tMorada: %s", contacto[j].morada); printf("\n\tCodigo Postal: %s", contacto[j].postal); printf("\n\tTelefone: %d", contacto[j].telefone); printf("\n----------------------------------\n"); system("pause"); return; } } printf("\nNome invalido\n"); system("pause"); } void pesquisar3(dados* contacto) { char proc[50]; int j; printf("Introduza o numero que pretende pesquisar: "); scanf("%s", proc); for (j = 0; j<i; j++) {// isto diz o numero total de contactos if (0 == strcmp(proc, contacto[j].numero)) { printf("\n\nDados: \n"); printf("\n\tNumero Pesquisado: %s", contacto[j].numero); printf("\tNome Pesquisado: %s", contacto[j].nome); printf("\n\tEmail: %s", contacto[j].email); printf("\n\tTelefone: %d", contacto[j].telefone); printf("\n----------------------------------\n"); system("pause"); return; } } printf("\nNome invalido\n"); system("pause"); } void pesquisar4(dados* contacto) { char proc[50]; int j; printf("Introduza o numero que pretende pesquisar: "); scanf("%s", proc); for (j = 0; j<i; j++) {// isto diz o numero total de contactos if (0 == strcmp(proc, contacto[j].numero)) { printf("\n\nDados: \n"); printf("\n\tNumero Pesquisado: %s", contacto[j].numero); printf("\n\tNome: %s", contacto[j].nome); printf("\n\tMorada: %s", contacto[j].morada); printf("\n\tCodigo Postal: %s", contacto[j].postal); printf("\n\tTelefone: %d", contacto[j].telefone); printf("\n----------------------------------\n"); system("pause"); return; } } printf("\nNome invalido\n"); system("pause"); } void alterar(dados *contacto){ int opcao; mostrar(contacto); do{ printf("Introduza numero a alterar:\n"); scanf("%d", &opcao); if (opcao >i || opcao <= 0) printf("Opcao Invalida\n"); } while (opcao >i || opcao <= 0); printf("\n\nDados: \n"); printf("\tNome: %s", contacto[opcao].nome); printf("\tNumero de aluno ISEL: %d", contacto[opcao].numero); printf("\tMorada: %s", contacto[opcao].morada); printf("\tCodigo Postal: %s", contacto[opcao].postal); printf("\n\tEmail: %s", contacto[opcao].email); printf("\n\tTelefone: %d", contacto[opcao].telefone); printf("\tNota final de FP: %s", contacto[opcao].FP); printf("\tNota final de AM1: %s", contacto[opcao].AM1); printf("\tNota final de SD: %s", contacto[opcao].SD); printf("\tNota final de ALGA: %s", contacto[opcao].ALGA); printf("\tNota final de CM: %s", contacto[opcao].CM); printf("\n----------------------------------\n"); printf("Novo nome:", i); fflush(stdin); scanf("%[^\n]s", contacto[opcao - 1].nome); printf("Numero de aluno ISEL:", i); fflush(stdin); scanf("%d", contacto[opcao - 1].numero); printf("Nova morada:", i); fflush(stdin); scanf("%[^\n]s", contacto[opcao - 1].morada); printf("Novo Codigo Postal:", i); fflush(stdin); scanf("%[^\n]s", contacto[opcao - 1].postal); printf("Introduza o email:", i); fflush(stdin); scanf("%[^\n]s", contacto[opcao - 1].email); printf("Introduza o telefone:", i); fflush(stdin); scanf("%d", &contacto[opcao - 1].telefone); printf("Nota final de FP:", i); fflush(stdin); scanf("%d", &contacto[opcao - 1].FP); printf("Nota final de AM1:", i); fflush(stdin); scanf("%d", &contacto[opcao - 1].AM1); printf("Nota final de SD:", i); fflush(stdin); scanf("%d", &contacto[opcao - 1].SD); printf("Nota final de ALGA:", i); fflush(stdin); scanf("%d", &contacto[opcao - 1].ALGA); printf("Nota final de SD:", i); fflush(stdin); scanf("%d", &contacto[opcao - 1].SD); printf("dados guardados com sucesso!!! "); return; } void submenu(dados *contacto) { char op; do { system("cls"); printf("\n\tEscolha uma opcao\n\n\t"); printf("1- Mostrar lista\n\n\t"); printf("2- Acrescentar um registo na agenda\n\n\t"); printf("3- Apagar um registo da agenda\n\n\t"); printf("4- Qual eh o telefone e o endereco\n\t de e-mail de um NOME de aluno que conste na agenda\n\n\t"); printf("5- Qual o telefone, a morada, e o\n\t codigo postal de um NOME de um aluno que conste na agenda\n\n\t"); printf("6- Qual o telefone e o endereco de\n\t e-mail de um NUMERO de um aluno que conste na agenda\n\n\t"); printf("7- Qual o telefone, a morada, e o\n\t codigo postal de um NUMERO de um aluno que conste na agenda\n\n\t"); printf("8- Ordenar a agenda por ordem crescente\n\t do numero de aluno, para todos os registos da agenda\n\n\t"); printf("0- Voltar ao menu principal\n\n\t"); printf("\n\tSelecione a opcao --> "); op = getchar(); switch (op) { case '1': system("cls"); mostrar(contacto); system("pause"); break; case '2': system("cls"); adicionar(contacto); system("pause"); break; case '3': system("cls"); eliminar(contacto); system("pause"); break; case '4': system("cls"); pesquisar1(contacto); system("pause"); break; case '5': system("cls"); pesquisar2(contacto); system("pause"); break; case '6': system("cls"); pesquisar3(contacto); system("pause"); break; case '7': system("cls"); pesquisar4(contacto); system("pause"); break; case'8': system("cls"); //ordenar(contacto); system("pause"); break; case '9': system("cls"); op = '0'; break; } } while (op != '0'); } void abrir(dados *contacto) { FILE *f; char nome[1000], morada[1000], postal[1000], email[1000],numero [20], nfich[20]; int telefone, FP, AM1, SD, ALGA, CM; printf("insira o caminho do ficheiro\n"); scanf("%s", &nfich); f = fopen(nfich, "r"); if (f == NULL) { printf("erro ao abrir ficheiros"); } else { while (!feof(f)) { fscanf(f, " %[\n]s %[\n]s %[\n]s %[\n]s %[\n]s %d %d %d %d %d %d", nome,numero, morada, postal, email, &telefone, &FP, &AM1, &SD, &ALGA, &CM); strcpy(contacto[i].nome, nome); strcpy(contacto[i].numero, numero); strcpy(contacto[i].morada, morada); strcpy(contacto[i].postal, postal); strcpy(contacto[i].email, email); contacto[i].telefone = telefone; contacto[i].FP = FP; contacto[i].AM1 = AM1; contacto[i].SD = SD; contacto[i].ALGA = ALGA; contacto[i].CM = CM; i++; } fclose(f); } } void main(int argc, char *argv[]) { dados contacto[total]; char op; int j; do { system("cls"); printf("\n\t.:: AGENDA ELECTRONICA EM LINGUAGEM C ::.\n\n\t "); printf("Como pretende introduzir os dados:\n\n\t\t"); printf("1- Atraves do teclado\n\t\t"); printf("2- Atraves de ficheiro\n\n\t\t"); printf("0- Sair do Programa\n\n\t"); printf("opcao--> "); scanf("%c", &op); switch (op) { case'1': submenu(contacto); break; case'2': abrir(contacto); submenu(contacto); break; } } while (op != '0'); system("PAUSE"); }Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.