Orientação Ori
LISTA
Nome: Natan Rodrigues Valenciano I.D.: 301691 Danilo Nascimento Valenciano I.D.: 301662
LINS/SP – 09/2013 main: #include "Rotas.h"
int main(void)
{
exibeMenu (); // joga na função de menu return 0;
}
Rotas.h:
#include
#include
#include
// Definição de constantes
#define N_MAX_CAR_CIDADE 20
// Declaração de tipos struct No
{
char cidade[N_MAX_CAR_CIDADE + 1]; struct No * prox;
};
typedef struct No no; // declarei o tipo no para ser usado posteriormente.
// Declaração de protótipos de funções no * criaNo(char * nomeCidade); // poderia ignorar o "nomeCidade". int exibeMenu(void); int leRotaArq(no *, char *); // devolve inteiro com quantidade de cidades lidas int exibeRota (no *); int insereNo(no*, char *, char*); //retorna int para verificar se a função obteve sucesso. int deletaNo(no *, char *); void salvarRota (no *); void deletaRota (no* );
criaNo:
#include "Rotas.h"
no * criaNo(char * nomeCidade)
{
no * p; // Ponteiro para novo nó p = (no *)malloc(sizeof(no)); // (no *) é typecasting, força ser um ponteiro para nó strcpy(p->cidade, nomeCidade); p->prox = NULL; return p;
}
leRotaArq:
#include "Rotas.h"
/* * Le rota a partir de um arquivo. * Parâmetros: - inicio: ponteiro p/ no falso que inicia a rota - arq: nome(caminho) do arquivo contendo os destinos da rota * Retorna: numero de destinos lidos.
*/
int leRotaArq(no * inicio, char * arq)
{
FILE * fp; // descritor de arquivo o "FILE * " no * p; char cid[N_MAX_CAR_CIDADE + 1]; int nCidades = 0; fp = fopen(arq, "r"); //(estrutura: nome do arquivo, modo de leitura(aspas)) if (fp == NULL) // teste para ver se deu certo a operação(pode dar errado o nome do arq, o caminho, etc) return -1; //