Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola pessoal estou com um trabaho para fazer cheguei ao um ponto que preciso comparar entradas,
se algumem sober ou tiver ideias
//Estrutura utilizada para armazenar uma data
typedef struct Data
{
int iDia;
int iMes;
int iAno;
} stData;
//Estrutura utilizada para armazenar uma hora
typedef struct Horario
{
int iHora;
int iMinuto;
}stHorario;
//Estrutura utilizada para representar uma transação efetuada na conta ou cartão de crédito
typedef struct Transacao
{
float fValor;
stData sData;
int iOperacao;
stHorario sHorario;
struct Transacao *prProximo;
}stTransacao;
//Estrutura utilizada para representar uma lista de transações
typedef struct Lista
{
stTransacao *prInicio;
stTransacao *prFim;
}stLista;a ideias é mais ou menos isso, comparar se iDia & iMes & iAno digitado pelo usuario na froma dd/mm/aa é igual ao salvo em um arquivo entrada
if(stTransacao.sData.iDia == sDataInicial.iDia,
&& stTransacao.sData.iMes == sDataInicial.iMes,
&& stTransacao.sData.iAno == DataInicial.iAno)
if(stTransacao.sData.iDia == sDataFinal.iDia,
&& stTransacao.sData.iMes == sDataFinal.iMes,
&& stTransacao.sData.iAno == sDataFinal.iAno)
stLista CriaSubListaContaOrdenada(stLista pListaConta, stConta *pConta, stData pDataInicial, stData pDataFinal, char psNomeArquivo[])
{
//Declara um ponteiro para a estrutura de um arquivo
FILE *prArquivoEntrada = NULL;
//Declara uma string para a leitura da linha
char sLinha[TAM_STRING];
//Declara um ponteiro para transaçao
stTransacao *prTransacao = NULL;
//Faz as inicializaçoes das estruturas lista
pListaConta->prInicio = NULL;
pListaConta->prFim = NULL;
//Faz as inicializações da estrutura conta
pConta->fSaldoAnterior = 0.0f;
pConta->fSaldoAtual = 0.0f;
//Faz a abertura do arquivo
prArquivoEntrada = fopen(psNomeArquivo,"r");
//Testa se o arquivo foi aberto com sucesso
if (!prArquivoEntrada)
{
printf("Nao foi possivel abrir o arquivo de entrada");
return(0);
}
//Le a primeira linha do arquivo (cabecalho)
fgets(sLinha,TAM_STRING,prArquivoEntrada);
//Invoca a função que separa as informaçoes do cabeçalho
LerCabecalho(pConta,sLinha);
//Enquanto existirem transasões a serem lidas
while (!feof(prArquivoEntrada))
{
//Faz a leitura de uma linha no arquivo contendo os dados da transação
fgets(sLinha,TAM_STRING,prArquivoEntrada);
//Testa se não é linha em branco
if (sLinha[0]=='\n')
{
continue;
}
//Aloca memória para uma nova transação
prTransacao = (stTransacao*)malloc(sizeof(stTransacao));
//Quebra os dados da transação e preenche as estruturas
PreencheTransacao(prTransacao,sLinha);
//Verifica o tipo da operação e insere na lista do cartão ou da conta corrente:
//código 1 a 4: operações de conta corrente
//código 5 e 6: operações do cartão de crédito
if (prTransacao->iOperacao < 4)
{
InsereTransacao(pListaConta,prTransacao);
}
}
/******************************************
if(stTransacao.sData.iDia == sDataInicial.iDia,
&& stTransacao.sData.iMes == sDataInicial.iMes,
&& stTransacao.sData.iAno == DataInicial.iAno)
if(stTransacao.sData.iDia == sDataFinal.iDia,
&& stTransacao.sData.iMes == sDataFinal.iMes,
&& stTransacao.sData.iAno == sDataFinal.iAno)
****************************************/
//Cria um ponteiro para o nó inicial de uma lista
stLista* prSubLista = NULL;
stLista* prSubLista = (stLista*)malloc(sizeof(stLista));
if (sListaConta==NULL)
{
printf("Erro de alocacao\n");
return 0;
}
//sListaConta->sDataInicial = sConta;
//sListaConta->sDataFinal = NULL;
if (prSubLista==NULL)
prSubLista = sListaConta;
else {
//sListaConta->sDataFinal = prSubLista;
//prSubLista = sListaConta;
}
//Implemente aqui
//Retorna a lista ordenada
return prSubLista;
}Carregando comentários...