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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C++ - Opinión sobre código; tienda básica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C++ - Opinión sobre código; tienda básica  (Leído 5,123 veces)
Clerning

Desconectado Desconectado

Mensajes: 2


Ver Perfil
C++ - Opinión sobre código; tienda básica
« en: 9 Enero 2021, 20:19 pm »

Muy buenas comunidad.
He programado un simple programa que trata de simular un paseo por un supermercado; quisiera opiniones y una retroalimentación del código que dejaré a continuación.

Código
  1. #include<iostream>
  2. #include<string.h>
  3.  
  4. using namespace std;
  5.  
  6. /*
  7. run: variable bool para ser constante en la ejecución del programa
  8. money: variable int que simulara dinero para la compra de productos
  9. minusMoney: variable int que restará el valor de "money" según el precio del producto
  10. multProduct: variable int que sirve para multiplicar el precio de un producto según sea la cantidad pedida
  11. shoppCart: variable string, array; simulará un carrito de compras
  12. marketProduct: variable iny, array; serán los productos
  13. */
  14. int main(){
  15. int vegeFruts[3]; //vegetales y frutas
  16. vegeFruts[0] = 2; //tomates
  17. vegeFruts[1] = 4; //papas
  18. vegeFruts[2] = 4; //lechuga
  19. int breadRep[3]; //panaderia y reposteria
  20. breadRep[0] = 2; //pan
  21. breadRep[1] = 4; //pastel
  22. breadRep[2] = 2; //dona
  23. int snack[3]; //snacks
  24. snack[0] = 2; //mani
  25. snack[1] = 3; //nuez
  26. snack[2] = 4; //papas fritas
  27. int drink[3]; //bebidas
  28. drink[0] = 5; //soda
  29. drink[1] = 5; //jugo
  30. drink[2] = 4; //te
  31. int money = 2000, minusMoney = 0, multProduct = 0, opc = 0, indFil = 0, indCol = 0;
  32. string shoppCart[16];
  33. string totalProductNum[16];
  34. string totalProduct[3][4];
  35. //vegetales y frutas
  36. totalProduct[0][0] = "Tomate";
  37. totalProduct[1][0] = "Papa";
  38. totalProduct[2][0] = "Lechuga";
  39. //panaderia y reposteria
  40. totalProduct[0][1] = "Pan";
  41. totalProduct[1][1] = "Pastel";
  42. totalProduct[2][1] = "Dona";
  43. //snack
  44. totalProduct[0][2] = "Mani";
  45. totalProduct[1][2] = "Nuez";
  46. totalProduct[2][2] = "Mani confitado";
  47. //bebidas
  48. totalProduct[0][3] = "Soda";
  49. totalProduct[1][3] = "Jugo";
  50. totalProduct[2][3] = "Te";
  51. string multProductString;
  52. bool run = true;
  53.  
  54. for(int i = 0; i < 16; i++){
  55. shoppCart[i] = "[vacio]";
  56. }
  57. while(run){
  58. do{
  59. system("cls");
  60. cout<<"\t--- Bienvenido a la tienda ---\nUsted cuenta con "<<money<<" de dinero."<<endl;
  61. cout<<"1. Vegetales y frutas.\n2. Panaderia y reposteria.\n3. Snacks.\n4. Bebidas.\n5. Ver carrito.\n6. Salir."<<endl;
  62. cin>>opc;
  63. indCol = opc-1;
  64. }while(opc < 1 || opc > 6);
  65. switch(opc){ //opciones
  66. case 1: //vegetales y frutas
  67. do{
  68. system("cls");
  69. cout<<"1. Tomate | $2\n2. Papa | $4\n3. Lechuga | $4"<<endl;
  70. cin>>opc;
  71. indFil = opc-1;
  72. }while(opc <= 0 || opc > 3);
  73. minusMoney = vegeFruts[opc-1];
  74. break;
  75. case 2: //panaderia y reposteria
  76. do{system("cls");
  77. cout<<"1. Pan | $2\n2. Pastel | $4\n3. Dona | $2"<<endl;
  78. cin>>opc;
  79. indFil = opc-1;
  80. }while(opc <= 0 || opc > 3);
  81. minusMoney = breadRep[opc-1];
  82. break;
  83. case 3: //snack
  84. do{
  85. system("cls");
  86. cout<<"1. Mani | $2\n2. Nuez | $3\n3. Mani confitado | $4"<<endl;
  87. cin>>opc;
  88. indFil = opc-1;
  89. }while(opc <= 0 || opc > 3);
  90. minusMoney = snack[opc-1];
  91. break;
  92. case 4: //bebidas
  93. do{
  94. system("cls");
  95. cout<<"1. Soda | $5\n2. Jugo | $4\n3. Te | $4"<<endl;
  96. cin>>opc;
  97. indFil = opc-1;
  98. }while(opc <= 0 || opc > 3);
  99. minusMoney = drink[opc-1];
  100. break;
  101. case 5: //carrito
  102. do{
  103. system("cls");
  104. for(int i = 0; i < 16; i++){
  105. if(shoppCart[i] == "[vacio]"){
  106. cout<<i+1<<". "<<shoppCart[i]<<endl;
  107. }else{
  108. cout<<i+1<<". "<<totalProductNum[i]<<" x "<<shoppCart[i]<<endl;
  109. }
  110. }
  111. cout<<"1: Quitar producto del carro. | 2: Salir."<<endl;
  112. cin>>opc;
  113. if(opc == 1){
  114. do{
  115. cout<<"Escriba el numero que corresponde al producto que desea retirar; 0 para salir."<<endl;
  116. cin>>opc;
  117. if(opc == 0){
  118. break;
  119. }
  120. shoppCart[opc-1] = "[vacio]";
  121. }while(opc <= 0 || opc > 16 || shoppCart[opc-1] == "[vacio]");
  122. }else if(opc == 2){
  123. break;
  124. }
  125. }while(opc <= 0 || opc > 2);
  126. opc = 5;
  127. break;
  128. case 6: //salir
  129. run = false;
  130. }
  131. if(opc < 5){
  132. do{
  133. cout<<"Cantidad: "; cin>>multProduct; //multiplicar el precio del producto segun la cantidad
  134. }while(multProduct <= 0);
  135. multProductString = multProduct;
  136. minusMoney *= multProduct;
  137. if(money - minusMoney > 0){ //restar dinero
  138. money -= minusMoney;
  139. }else{
  140. cout<<"No hay suficiente dinero."<<endl;
  141. system("pause");
  142. }
  143. for(int i = 0; i < 16; i++){
  144. if(shoppCart[i] == "[vacio]"){
  145. totalProductNum[i] = to_string(multProduct);
  146. shoppCart[i] = "[" + totalProduct[indFil][indCol] + "]";
  147. break;
  148. }
  149. }
  150. }
  151. }
  152.  
  153. return 0;
  154. }


« Última modificación: 10 Enero 2021, 22:54 pm por K-YreX » En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: C++ - Opinión sobre código; tienda básica
« Respuesta #1 en: 10 Enero 2021, 23:06 pm »

Supongo que aun no aprendes sobre structs o clases? hacer funciones?

Voy a suponer que no y no comentare al respecto.

La variable multProductString parece superflua, la asignas, pero no la usas mas. Sugiero eliminarla.

La variable totalProduct guarda nombres, no totales. Cambiale el nombre para que sea mas facil de leer/entender el codigo.

El ciclo que tienes en la linea 143 lo haces haya o no haya dinero. Esta bien eso?
Supongo que solo quieres aceptar la venta si hay dinero suficiente, no en todos los casos.


« Última modificación: 10 Enero 2021, 23:11 pm por CalgaryCorpus » En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Clerning

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: C++ - Opinión sobre código; tienda básica
« Respuesta #2 en: 11 Enero 2021, 03:07 am »

Hola, gracias por tomarte el tiempo de leer mi código.
Citar

Supongo que aun no aprendes sobre structs o clases? hacer funciones?
De hecho sí sé de qué tratan; intentaba probar de cómo sería si no tuviera esas posibilidades. Veo que no termino muy bien.
Citar
La variable multProductString parece superflua, la asignas, pero no la usas mas. Sugiero eliminarla.
¡Oops, se me fue! Mi principal intención era de que, al momento de observar el carrito de compras, te señalara la cantidad del producto y el respectivo producto; pero al momento de ver qué pasaba, olvidé un detalle del comportamiento de C++, que es el tema de "Números + caracteres" (es decir, que según qué número se escriba, me devuelve un carácter), entonces tuve que hacer otra jugada.
Citar
La variable totalProduct guarda nombres, no totales. Cambiale el nombre para que sea mas facil de leer/entender el codigo.
Igual pensaba que no era el mejor nombre para una variable.
Citar
El ciclo que tienes en la linea 143 lo haces haya o no haya dinero. Esta bien eso?
No, no está bien. Me tuve que haber dado cuenta de ese detalle; qué despistado. Gracias por hacerlemo saber.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
codigo abierto para tienda similar a ebay
Desarrollo Web
alexxxxx 0 1,957 Último mensaje 28 Mayo 2010, 22:41 pm
por alexxxxx
Duda básica sobre C:
Programación C/C++
Error 404: 5 2,808 Último mensaje 9 Septiembre 2014, 11:12 am
por Error 404:
Opinión sobre mi código (trigonometría)
Programación Visual Basic
Kraiback 1 1,620 Último mensaje 22 Mayo 2016, 18:13 pm
por AlbertoBSD
Pregunta básica sobre POO
Programación C/C++
matver 4 2,206 Último mensaje 14 Agosto 2017, 00:46 am
por ivancea96
[javascript] Opinion sobre este código? return en función.
Desarrollo Web
@XSStringManolo 1 2,421 Último mensaje 6 Octubre 2019, 08:23 am
por #!drvy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines