Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rubenndf91

Agenda eletrônica

Recommended Posts

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- não]: ");
    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 -não)");
        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 é 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");

}  

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

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

 

Não entendi o que vc quer fazer com os arquivos.

 

Pela quantidade de fflush na entrada padrão, um main retornando void e métodos pesquisar3 e pesquisar4, se eu fosse tua professora não aceitaria o código (isso se o próprio professor não tiver esse vício de programação).

 

Conio.h é antiga. Não use. Também evite usar system.

 

 

 

falta-me ordenar os numeros de aluno por ordem crescente

 

Pesquise por algoritmos de ordenação na internet.

 

Opinião: eu reescreveria isso do zero ou aceitaria ficar com zero de nota, porque algumas coisas não fazem sentido p/ mim. Por exemplo, um while vazio gerando loop infinito na função sair, que não é chamada em lugar nenhum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu já resolvi alguns dos problemas. e já fiz o codigo para ordenaçao mas nao está a dar, se alguem pudesse dizer o que estou a meter mal eu agradeço imenso.

agora outra questão que tenho é...
como é que meto o meu programa a escrever e a ler um ficheiro a fazer todas as opçoes do programa através do ficheiro? eu consigo meter a localizaçao o ficheiro mas logo a seguir o programa bloqueia


tenho o codigo neste momento assim

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <String.h>
#include <conio.h>


int const total = 25;//maximo de registos
int i = 0;

typedef struct {
	char nome[100], email[100], morada[100], postal[100], numero[20];
	int telefone, FP, SD, AM1, ALGA, CM;
}dados;


void guardar(dados *contacto)
{
	FILE *f;
	char nfich[20];
	int j = 0;

	printf("Insira a localizacao 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 de Aluno ISEL:  ", i + 1);
		fflush(stdin);
		scanf(" %s", &contacto[i].numero);
		printf("Introduza a 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 de Aluno ISEL: %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++)
	{
		if (0 == strcmp(proc, contacto[j].nome))
		{
			printf("\n\nDados: \n");
			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 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("\n\tNome: %s", contacto[j].nome);
			printf("\n\tEmail: %s", contacto[j].email);
			printf("\n\tTelefone: %d", contacto[j].telefone);
			printf("\n----------------------------------\n");
			printf("\n----------------------------------\n");
			system("pause");
			return;
		}
	}

	printf("\nNumero 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("\nNumero invalido\n");
	system("pause");
}

/*void ordenar(dados *contacto)
{
	char nums[total];
	int aux;
	int j, k;



	for (i = 0; i<total; i++){

		strcpy_s(nums[i], contacto[i].numero);
	}



	for (j = 0; j<total - 1; j++){


		for (k = j + 1; k<total; k++){

			if (strcmp(nums[j], nums[k])>0){


				strcpy_s(aux, nums[j]);
				strcpy_s(nums[j], nums[k]);
				strcpy_s(nums[k], aux);

			}

		}
	}

	system("pause");
	system("cls");

}*/

void abrir(dados *contacto)
{
	FILE *f;
	int telefone, FP, AM1, SD, ALGA, CM;
	char nome[1000], morada[1000], postal[1000], email[1000], numero[20], nfich[200];


	printf("Introduza a localizacao do ficheiro:\n");
	scanf(" %s", &nfich);

	f = fopen(nfich, "w");
	if (f == NULL)
	{
		printf("Erro ao abrir ficheiro");
	}
	else
	{
		while (!feof(f))
		{
			printf("Introduza os seus dados: ");
			fscanf(f, " %[\n]s", nome);
			fscanf(f, "%[\n]s", numero);
			fscanf(f, "%[\n]s", morada);
			fscanf(f, "%[\n]s", postal);
			fscanf(f, "%[\n]s", email);
			fscanf(f, "%d", &telefone);
			fscanf(f, "%d", &FP);
			fscanf(f, "%d", &AM1);
			fscanf(f, "%d", &SD);
			fscanf(f, "%d", &ALGA);
			fscanf(f, "%d", &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 submenu(dados *contacto)
{
	char op; 

	do
	{
		system("cls");
		printf("\n\tEscolha uma opcao\n\n\t");
		printf("1- Mostrar todos os registos da agenda\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("9- 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');
}




int 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("\n\tEste programa eh uma agenda eletronica. \n\tPermite introduzir vários tipos de informacao.");
		printf("\n\tNeste programa voce pode inserir o nome, numero de aluno do ISEL,\n\tmorada, codigo postal, email, telefone\n\te as notas finais das cinco disciplinas do primmeiro semestre\n\tdo curso de Eng. Electrotecnica no ISEL\n\t");
		printf("\n\n\tComo 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("-->>> ");
		scanf("%c", &op);
		switch (op)
		{
		case'1':
			submenu(contacto);
			break;
		case'2':
			abrir(contacto);
			//submenu(contacto); 
			break;
		}
	} while (op != '0');


	system("PAUSE");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.