Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ivanctes

#1
Programación C/C++ / Problema con Vectores
17 Junio 2017, 16:42 PM
Buenas gente del foro, tengo un problema. No puedo generar un vector apartir de un archivo.dat. Al compilar me muestra que no tengo errores y cuando lo ejecuto no me aparece nada.
1) Me piden que haga un vector con la cantidad de cada prestamo, luego mostrar por pantalla
2) Que muestre por pantalla, los datos de la gente de misiones que pidieron prestamos personales
3) Que muestre por pantalla, la cantidad de gente de corrientes que pidieron prestamos prendarios.

Muchas gracias desde ya gentes! Espero que no sea tan largo mi codigo


#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void inicializar();
void proceso();
void finalizar();
void mostrarVector();
void condicion();
float porcentaje (int, int);

/* Estructura del Registro */
typedef struct
{
int dniCliente;
char apeNom[30];
int codPrestamo;
char codProvincia;
float prestamo;
}tProvencred;

tProvencred regProvencred;
FILE *f_Provencred;

int vPrestamos[5];

int i;
int cantTotal;
int cantHipotecario;
int cantCorr;


int main()
{
inicializar();
proceso();
finalizar();

getch();
return 0;
}

void inicializar()
{
f_Provencred = fopen("provencred.dat","rb");

i = 0;
cantHipotecario = 0;
cantTotal = 0;
cantCorr = 0;

printf("----------| Archivo Abierto |----------\n\n");
}

void proceso()
{
fread(&regProvencred, sizeof(regProvencred), 1,f_Provencred);

do
{
cantTotal++;

switch(regProvencred.codPrestamo)
{
case 1: vPrestamos[0] = vPrestamos[0] + 1;
break;
case 2: vPrestamos[1] = vPrestamos[1] + 1;
break;
case 3: vPrestamos[2] = vPrestamos[2] + 1;
break;
case 4: vPrestamos[3] = vPrestamos[3] + 1;
cantHipotecario++;
break;
case 5: vPrestamos[4] = vPrestamos[4] + 1;
break;

fread(&regProvencred, sizeof(regProvencred), 1,f_Provencred);
}

condicion();
}
while(!feof(f_Provencred));

mostrarVector();
}

void mostrarVector()
{
for(i=0; i<5; i++)
{
scanf("%i", &vPrestamos[i]);
}

for(i=0; i<5; i++)
{
printf("Cantidad de Prestamo %i: %i\n", (i+1), vPrestamos[i]);
}
}

void condicion()
{
if((regProvencred.prestamo == 2) && ((regProvencred.codProvincia == 'd') || (regProvencred.codProvincia == 'd')))
{
printf("DNI Cliente: %d\n", regProvencred.dniCliente);
printf("Apellido y Nombre: %s\n", regProvencred.apeNom);
printf("Codigo Prestamo: %i\n", regProvencred.codPrestamo);
printf("Provincia: Misiones\n");
printf("Importe Prestamo: %.2f\n", regProvencred.prestamo);
}

if ( (regProvencred.codPrestamo == 5) && ((regProvencred.codProvincia == 'a') || (regProvencred.codProvincia == 'A')) )
{
cantCorr++;
}
}

void finalizar()
{
printf("\nCant de Prestamos: %d", cantTotal);
printf("\nCant de Prestamos Prendarios en Corrientes: %d", cantCorr);
printf("\nEl porcentaje de prestamos hipotecarios es de: %.2f %c", porcentaje(cantHipotecario, cantTotal), '%');

fclose(f_Provencred);
}

float porcentaje (int pCantHipotecario, int pCantTotal)
{
float porc;

porc = (pCantHipotecario / pCantTotal) * 100;

return porc;
}