elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Ciclos en C en: 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.


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4.  
  5. struct marca{
  6. char nombre[30], modelo[30]; int año;
  7. };
  8. struct auto1{
  9. int placa; marca mc;
  10. }*auts;
  11. int total=0;
  12. void captura(){
  13.  
  14. FILE *apt;
  15.  
  16. int n, i; char opc;
  17. // auto1 *auts;
  18. printf("Cuantos autos se van a registrar?\n");
  19. scanf("%d",&n);
  20. auts=new auto1[n];
  21. for(i=0;i<n;i++){
  22.  
  23. printf("\n-----Datos del auto %d----\n\n",i+1);
  24.  
  25. printf("Ingrese placa: ");
  26. scanf("%d",&auts[i].placa);
  27. printf("Ingrese marca del auto: ");
  28. fflush(stdin); gets(auts[i].mc.nombre);
  29. printf("Ingrese modelo del auto: ");
  30. fflush(stdin); gets(auts[i].mc.modelo);
  31. printf("Ingrese año del auto: ");
  32. scanf("%d",&auts[i].mc.año);
  33.  
  34. printf("\n\nQue problema tiene su auto? \n");
  35.  
  36. while(opc!='s'){
  37.  
  38. 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");
  39. scanf("%s",&opc);
  40.  
  41.  
  42. switch(opc){
  43. case'a': total+=900; break;
  44. case'b': total+=400; break;
  45. case'c': total+=600; break;
  46. case'd': total+=3500; break;
  47. case'e': total+=800; break;
  48. case'f': total+=350; break;
  49. case'g': total+=950; break;
  50. case'h': total+=1200; break;
  51. case'i': total+=1500; break;
  52. case'j': total+=350; break;
  53. case'k': total+=750; break;
  54. case'l': total+=1800; break;
  55. case'm': total+=700; break;
  56. case'n': total+=950; break;
  57. case'o': total+=500; break;
  58. case'p': total+=600; break;
  59. case'q': total+=1500; break;
  60. case'r': total+=850; break;
  61. case't': total+=350; break;
  62. case'u': total+=1200; break;
  63. case's': break;
  64. default: printf("Opcion invalida"); break;
  65. }
  66. system("cls");
  67. printf("\n\n\nTotal que debe: %d\n\n",total);
  68.  
  69. }
  70. }
  71. apt=fopen("Registro de autos.txt","w");
  72.    for(i=0;i<n;i++)
  73.    fwrite(&auts[i],sizeof(auts[i]),1,apt);
  74.    printf("\n\n**Datos guardados en el archivo**\n\n");
  75.    fclose(apt);
  76. }
  77.  
  78.  
  79. //AQUI ES DONDE ESTA EL PROBLEMA!!! LA N NO SE QUE VALOR DEBE DE LLEVAR O COMO SOLUCIONARLO
  80.  
  81.  
  82. void mostrar(){
  83. FILE *apt;
  84.  
  85.    int  n=3, i;
  86. //   auto1 auts[i];
  87.    apt=fopen("Registro de autos.txt","r");
  88.    fread(&auts[0],sizeof(auts[0]),1,apt);
  89.    i=1;
  90.    while(!feof(apt)){
  91.    fread(&auts[i],sizeof(auts[i]),1,apt);
  92.    i++;
  93.    }
  94.  
  95.    printf("\nPLACA\tMARCA\tMODELO\tANIO\tANTIGUEDAD DE SU AUTO\tTOTAL QUE DEBE\n");
  96.  
  97. for(i=0;i<n;i++){
  98.    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);
  99.    fclose(apt);
  100.    }
  101. }
  102.  
  103. /*int prcio(int prec, int pres){
  104. int p, i, n;
  105. if(p==1)
  106. return prec;
  107. else
  108. p=prec-pres;
  109. return p;
  110. }*/
  111.  
  112.  
  113. int numautos(){
  114.    int n, i, f;
  115.    printf("\n\nDame numero de autos registrados: ");
  116.    scanf("%d",&n);
  117.    for(i=0;i<n;i++){
  118.               f=n-i;
  119.               return f;      
  120.                  }
  121.                      }
  122.  
  123.  
  124. int main(){
  125. printf("BIENVENIDO AL TALLER MECANICO\n\n");
  126. printf("Minimo de autos que deben entrar por dia: 5\n\n");
  127.  
  128. int total;
  129. captura();
  130. mostrar();
  131.  
  132.  
  133.  
  134. //printf("\n\nLa cantidad que debe es: $%d\n",prcio(8500,2500));
  135.  
  136. printf("\n\nLos autos que te faltaron el dia de hoy son: %d\n", 5-numautos());
  137. system("PAUSE");
  138. return 0;
  139. }
2  Programación / Programación C/C++ / Ayuda con switch en c urgenteeee en: 29 Mayo 2015, 22:17 pm
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
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct marca{
  5. char nombre[30], modelo[30]; int año;
  6. };
  7. struct auto1{
  8. int placa; marca mc; //char prob[1500];
  9. }*auts;
  10.  
  11. void captura(){
  12.  
  13. FILE *apt;
  14.  
  15. int n, i; char opc;
  16. // auto1 *auts;
  17. printf("Cuantos autos se van a registrar?\n");
  18. scanf("%d",&n);
  19. auts=new auto1[n];
  20. for(i=0;i<n;i++){
  21.  
  22. printf("\n-----Datos del auto %d----\n\n",i+1);
  23.  
  24. printf("Ingrese placa: ");
  25. scanf("%d",&auts[i].placa);
  26. printf("Ingrese marca del auto: ");
  27. fflush(stdin); gets(auts[i].mc.nombre);
  28. printf("Ingrese modelo del auto: ");
  29. fflush(stdin); gets(auts[i].mc.modelo);
  30. printf("Ingrese año del auto: ");
  31. scanf("%d",&auts[i].mc.año);
  32.  
  33. printf("\n\nQue problema tiene su auto? \n");
  34.  
  35. while(opc!='s'){
  36.  
  37. 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?");
  38. scanf("%c",&opc);
  39.  
  40.  
  41. switch(opc){
  42. case'1': ; break;
  43. case'2': ; break;
  44. case'3': ; break;
  45. case'4': ; break;
  46. case'5': ; break;
  47. case'6': ; break;
  48. case'7': ; break;
  49. case'8': ; break;
  50. case'9': ; break;
  51. case'10': ; break;
  52. case'11': ; break;
  53. case'12': ; break;
  54. case'13': ; break;
  55. case'14': ; break;
  56. case'15': ; break;
  57. case'16': ; break;
  58. case'17': ; break;
  59. case'18': ; break;
  60. case'19': ; break;
  61. case'20': ; break;
  62. case's': ; break;
  63. default: printf("Opcion invalida");
  64. }
  65. }
  66. }
  67. apt=fopen("Registro de autos.txt","wb");
  68.    for(i=0;i<n;i++)
  69.    fwrite(&auts[i],sizeof(auts[i]),1,apt);
  70.    printf("\n\n**Datos guardados en el archivo**\n\n");
  71.    fclose(apt);
  72. }
  73.  
  74. void mostrar(){
  75. FILE *apt;
  76.  
  77.    int n=2, i;
  78.   // auto1 auts[i];
  79.    apt=fopen("Registro de autos.txt","rb");
  80.    fread(&auts[0],sizeof(auts[0]),1,apt);
  81.    i=1;
  82.    while(!feof(apt)){
  83.    fread(&auts[i],sizeof(auts[i]),1,apt);
  84.    i++;
  85.    }
  86.  
  87.    printf("\nPLACA\tMARCA\tMODELO\tANIO\n");
  88.  
  89. for(i=0;i<n;i++){
  90.    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);
  91.    fclose(apt);
  92.    }
  93. }
  94.  
  95. /*int prcio(int prec, int pres){
  96. int p, i, n;
  97. if(p==1)
  98. return prec;
  99. else
  100. p=prec-pres;
  101. return p;
  102.  
  103.  
  104. }*/
  105.  
  106.  
  107.  
  108. int numautos(){
  109.    int n, i, f;
  110.    printf("\n\nDame numero de autos registrados: ");
  111.    scanf("%d",&n);
  112.    for(i=0;i<n;i++){
  113.               f=n-i;
  114.               return f;      
  115.                  }
  116.                      }
  117.  
  118.  
  119. int main(){
  120. printf("BIENVENIDO AL TALLER MECANICO\n\n");
  121. printf("Minimo de autos que deben entrar por dia: 5\n\n");
  122.  
  123.  
  124. captura();
  125. mostrar();
  126.  
  127.  
  128.  
  129. //printf("\n\nLa cantidad que debe es: $%d\n",prcio(8500,2500));
  130.  
  131. printf("\n\nLos autos que te faltaron el dia de hoy son: %d\n", 5-numautos());
  132. system("PAUSE");
  133. return 0;
  134. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines