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 - kevin lozano 96

#1
Programación C/C++ / Ciclos en C
30 Mayo 2015, 01:02 AM
Tengo un pequeño problema, mi codigo trata de registrar autos, sus problemas, etc., pero el problema esta en que no puedo registrar más de un auto y no se porque. Si fueran tan amables de responder y resolver mi problema se los agradecería mucho.


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

struct marca{
char nombre[30], modelo[30]; int año;
};
struct auto1{
int placa; marca mc;
}*auts;
int total=0;
void captura(){

FILE *apt;

int n, i; char opc;
// auto1 *auts;
printf("Cuantos autos se van a registrar?\n");
scanf("%d",&n);
auts=new auto1[n];
for(i=0;i<n;i++){

printf("\n-----Datos del auto %d----\n\n",i+1);

printf("Ingrese placa: ");
scanf("%d",&auts[i].placa);
printf("Ingrese marca del auto: ");
fflush(stdin); gets(auts[i].mc.nombre);
printf("Ingrese modelo del auto: ");
fflush(stdin); gets(auts[i].mc.modelo);
printf("Ingrese año del auto: ");
scanf("%d",&auts[i].mc.año);

printf("\n\nQue problema tiene su auto? \n");

while(opc!='s'){

printf("\na) Afinacion ---> $900\nb) Cambio de aceite ---> $400\nc) Frenos ---> $600\nd) Anillada ---> $3500\ne) Cambio de amortiguadores ---> $800\nf) Bomba de agua ---> $350\ng) Bomba de gasolina ---> $950\nh) Bomba de aceite ---> $1200\ni) Bobinas ---> $1500\nj) Carburada ---> $350\nk)Reten ---> $750\nl) Afinacion a transicion ---> $1800\nm) Cambio de crucetas ---> $700\nn) Soportes ---> $950\no) Flechas ---> $500\np) Rotulas ---> $600\nq) Cadena o banda ---> $1500\nr) Alineacion y balanceo ---> $850\nt) Luz de tablero ---> $350\nu) Clutch ---> $1200\n\ns.Desea salir?\n\n");
scanf("%s",&opc);


switch(opc){
case'a': total+=900; break;
case'b': total+=400; break;
case'c': total+=600; break;
case'd': total+=3500; break;
case'e': total+=800; break;
case'f': total+=350; break;
case'g': total+=950; break;
case'h': total+=1200; break;
case'i': total+=1500; break;
case'j': total+=350; break;
case'k': total+=750; break;
case'l': total+=1800; break;
case'm': total+=700; break;
case'n': total+=950; break;
case'o': total+=500; break;
case'p': total+=600; break;
case'q': total+=1500; break;
case'r': total+=850; break;
case't': total+=350; break;
case'u': total+=1200; break;
case's': break;
default: printf("Opcion invalida"); break;
}
system("cls");
printf("\n\n\nTotal que debe: %d\n\n",total);

}
}
apt=fopen("Registro de autos.txt","w");
   for(i=0;i<n;i++)
   fwrite(&auts[i],sizeof(auts[i]),1,apt);
   printf("\n\n**Datos guardados en el archivo**\n\n");
   fclose(apt);
}


//AQUI ES DONDE ESTA EL PROBLEMA!!! LA N NO SE QUE VALOR DEBE DE LLEVAR O COMO SOLUCIONARLO


void mostrar(){
FILE *apt;
   
   int  n=3, i;
//   auto1 auts[i];
   apt=fopen("Registro de autos.txt","r");
   fread(&auts[0],sizeof(auts[0]),1,apt);
   i=1;
   while(!feof(apt)){
   fread(&auts[i],sizeof(auts[i]),1,apt);
   i++;
   }
   
   printf("\nPLACA\tMARCA\tMODELO\tANIO\tANTIGUEDAD DE SU AUTO\tTOTAL QUE DEBE\n");
   
for(i=0;i<n;i++){
   printf("\n%d\t%s\t%s\t%d\t          %d       \t   %d\n",auts[i].placa, auts[i].mc.nombre, auts[i].mc.modelo, auts[i].mc.año, 2015-auts[i].mc.año, total);
   fclose(apt);
   }
}

/*int prcio(int prec, int pres){
int p, i, n;
if(p==1)
return prec;
else
p=prec-pres;
return p;
}*/


int numautos(){
   int n, i, f;
   printf("\n\nDame numero de autos registrados: ");
   scanf("%d",&n);
   for(i=0;i<n;i++){
              f=n-i;
              return f;      
                 }
                     }


int main(){
printf("BIENVENIDO AL TALLER MECANICO\n\n");
printf("Minimo de autos que deben entrar por dia: 5\n\n");

int total;
captura();
mostrar();



//printf("\n\nLa cantidad que debe es: $%d\n",prcio(8500,2500));

printf("\n\nLos autos que te faltaron el dia de hoy son: %d\n", 5-numautos());
system("PAUSE");
return 0;
}
#2
Mod: Los titulos deben ser descriptivos, no debes escribir en mayúsculas, los códigos deben ir en etiquetas GeSHi


ayudenme por favor urgenteeeeeeee :c :c   :( :( :( :(

Tengo un problema gente: no se como hacer para que me haga operaciones con el switch en mi codigo, lo que necesito es que me ayuden a como hacer operaciones, por ejemplo, en el menu aparece una lista de reparaciones y su costo, pero no sé como hacer para que ese costo lo sume con otro (si el usuario lo desea), no se que poner en cada case, o si hay otra forma de hacerlo ayudenme a hacerla por favor.


*Las partes comentadas no afectan en mi codigo*.


Para que me entiendan mejor les dejo mi codigo a continuacion:


Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

struct marca{
char nombre[30], modelo[30]; int año;
};
struct auto1{
int placa; marca mc; //char prob[1500];
}*auts;

void captura(){

FILE *apt;

int n, i; char opc;
// auto1 *auts;
printf("Cuantos autos se van a registrar?\n");
scanf("%d",&n);
auts=new auto1[n];
for(i=0;i<n;i++){

printf("\n-----Datos del auto %d----\n\n",i+1);

printf("Ingrese placa: ");
scanf("%d",&auts[i].placa);
printf("Ingrese marca del auto: ");
fflush(stdin); gets(auts[i].mc.nombre);
printf("Ingrese modelo del auto: ");
fflush(stdin); gets(auts[i].mc.modelo);
printf("Ingrese año del auto: ");
scanf("%d",&auts[i].mc.año);

printf("\n\nQue problema tiene su auto? \n");

while(opc!='s'){

printf("\n1.Afinacion ---> $900\n2.Cambio de aceite ---> $400\n3.Frenos ---> $600\n4.Anillada ---> $3500\n5.Cambio de amortiguadores ---> $800\n6.Bomba de agua ---> $350\n7.Bomba de gasolina ---> $950\n8.Bomba de aceite ---> $1200\n9.Bobinas ---> $1500\n10.Carburada ---> $350\n11.Reten ---> $750\n12.Afinacion a transicion ---> $1800\n13.Cambio de crucetas ---> $700\n14.Soportes ---> $950\n15.Flechas ---> $500\n16.Rotulas ---> $600\n17.Cadena o banda ---> $1500\n18.Alineacion y balanceo ---> $850\n19.Luz de tablero ---> $350\n20.Clutch ---> $1200\ns.Desea salir?");
scanf("%c",&opc);


switch(opc){
case'1': ; break;
case'2': ; break;
case'3': ; break;
case'4': ; break;
case'5': ; break;
case'6': ; break;
case'7': ; break;
case'8': ; break;
case'9': ; break;
case'10': ; break;
case'11': ; break;
case'12': ; break;
case'13': ; break;
case'14': ; break;
case'15': ; break;
case'16': ; break;
case'17': ; break;
case'18': ; break;
case'19': ; break;
case'20': ; break;
case's': ; break;
default: printf("Opcion invalida");
}
}
}
apt=fopen("Registro de autos.txt","wb");
   for(i=0;i<n;i++)
   fwrite(&auts[i],sizeof(auts[i]),1,apt);
   printf("\n\n**Datos guardados en el archivo**\n\n");
   fclose(apt);
}

void mostrar(){
FILE *apt;
   
   int n=2, i;
  // auto1 auts[i];
   apt=fopen("Registro de autos.txt","rb");
   fread(&auts[0],sizeof(auts[0]),1,apt);
   i=1;
   while(!feof(apt)){
   fread(&auts[i],sizeof(auts[i]),1,apt);
   i++;
   }
   
   printf("\nPLACA\tMARCA\tMODELO\tANIO\n");
   
for(i=0;i<n;i++){
   printf("\n%d\t%s\t%s\t%d\n",auts[i].placa, auts[i].mc.nombre, auts[i].mc.modelo, auts[i].mc.año);
   fclose(apt);
   }
}

/*int prcio(int prec, int pres){
int p, i, n;
if(p==1)
return prec;
else
p=prec-pres;
return p;


}*/



int numautos(){
   int n, i, f;
   printf("\n\nDame numero de autos registrados: ");
   scanf("%d",&n);
   for(i=0;i<n;i++){
              f=n-i;
              return f;      
                 }
                     }


int main(){
printf("BIENVENIDO AL TALLER MECANICO\n\n");
printf("Minimo de autos que deben entrar por dia: 5\n\n");


captura();
mostrar();



//printf("\n\nLa cantidad que debe es: $%d\n",prcio(8500,2500));

printf("\n\nLos autos que te faltaron el dia de hoy son: %d\n", 5-numautos());
system("PAUSE");
return 0;
}