Advertisement
idsystems

CPP2_Practica13_ContandoDinero

Aug 5th, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.36 KB | None | 0 0
  1. /* Prac13.cpp
  2. Programa Contando Dinero
  3. Basado en la practica 7 del Cuaderno de Ejercicios Programacion I
  4. En esta ocasion, creamos un control de Tab para dividir la pantalla y mostrar
  5. las dos operaciones: 1) Contar el dinero y 2) Convertir a otra divisa
  6.  
  7. Notemos que crearemos hasta 3 ventanas con los controles debidos para cada una
  8. a fin de facilitar la tarea, asimismo, deberemos hacer 3 procedimientos de forma
  9. para que se ejecuten correctamente.
  10. Por: LSC Sergio Hugo Sanchez O.
  11. Fecha: 19/Mayo/2011
  12.  
  13. */
  14. #include <radc++.h>
  15.  
  16. //Declaracion de variables
  17. int nVeinte, nCincuenta, nCien, nDoscientos, nQuinientos, nMil, nSumBill;
  18. int nUno, nDos, nCinco, nDiez, nSumCoin;
  19. int nTotal;
  20. int nDlls, nEuros;
  21.  
  22. //Establecemos la ventana principal, asi como un control de pestañas con 2 tabs
  23. // y una ventana extra
  24. Form Form1("Contando Dinero",130,180,624,450,RCP_SIMPLE);
  25. Tab  pgTab("",AUTO_ID,0,0,Form1.cwidth, Form1.cheight, Form1);
  26. TabPage p1 = pgTab.addPage("Calcular");
  27. TabPage p2 = pgTab.addPage("Convertir");
  28. Form Form2("",0,0,600,400,RCP_NONE, true, true, false, false, false, Form1, true, 0);
  29. Form Form3("",0,0,400,300,RCP_NONE,true, true, false, false, false, Form1, true, 0);
  30.  
  31. // Contando dinero. Billetes
  32. Label       lblBill("Billetes",AUTO_ID, 7,10,100,20, Form2);
  33. Label       lblCoin("Monedas",AUTO_ID, 200,10,100,20, Form2);
  34. SunkLine    line1(5,30,500,2,Form2);
  35.  
  36. Label       lbl20("Veinte",AUTO_ID,7,51,60,25,Form2);
  37. NumberBox   txt20("",AUTO_ID,84,44,67,25,Form2);
  38.  
  39. Label       lbl50("Cincuenta",AUTO_ID,7,86,71,25,Form2);
  40. NumberBox   txt50("",AUTO_ID,84,84,67,25,Form2);
  41.  
  42. Label       lbl100("Cien",AUTO_ID,7,121,69,25,Form2);
  43. NumberBox   txt100("",AUTO_ID,84,114,67,25,Form2);
  44.  
  45. Label       lbl200("Doscientos",AUTO_ID,7,156,64,25,Form2);
  46. NumberBox   txt200("",AUTO_ID,84,149,67,25,Form2);
  47.  
  48. Label       lbl500("Quinientos",AUTO_ID,7,191,62,25,Form2);
  49. NumberBox   txt500("",AUTO_ID,84,184,67,25,Form2);
  50.  
  51. Label       lbl1000("Mil",AUTO_ID,7,216,52,25,Form2);
  52. NumberBox   txt1000("",AUTO_ID,84,219,67,25,Form2);
  53.  
  54. //Contando Dinero.Monedas
  55. Label       lbl1("Uno",AUTO_ID,200,51,46,25,Form2);
  56. NumberBox   txt1("",AUTO_ID,248,44,67,25,Form2);
  57.  
  58. Label       lbl2("Dos",AUTO_ID,200,86,46,25,Form2);
  59. NumberBox   txt2("",AUTO_ID,248,84,67,25,Form2);
  60.  
  61. Label       lbl5("Cinco",AUTO_ID,200,121,46,25,Form2);
  62. NumberBox   txt5("",AUTO_ID,248,114,67,25,Form2);
  63.  
  64. Label       lbl10("Diez",AUTO_ID,200,156,46,25,Form2);
  65. NumberBox   txt10("",AUTO_ID,248,149,67,25,Form2);
  66.  
  67. ReadOnlyBox txtSumBill("Total",AUTO_ID,14,252,163,25,Form2);
  68. ReadOnlyBox txtSumCoin("Total",AUTO_ID,189,252,132,25,Form2);
  69.  
  70. Label   lblTotal("TOTAL",AUTO_ID,77,294,100,25,Form2);
  71. ReadOnlyBox txtTotal("0",AUTO_ID,189,287,132,25,Form2);
  72.  
  73. Button cmdCalcular("Calcular",AUTO_ID,7,340,140,25,Form2);
  74. // Para conversion
  75. Label   lblMonto("Monto",AUTO_ID,7,21,33,25,Form3);
  76. TextBox txtMonto("0",AUTO_ID,40,21,89,25,Form3);
  77. Button  cmdDlls("Dolares",AUTO_ID,7,63,100,25,Form3);
  78. Button  cmdEuros("Euros",AUTO_ID,130,63,100,25,Form3);
  79. TextBox txtDlls("0",AUTO_ID,7,98,98,25,Form3);
  80. TextBox txtEuros("0",AUTO_ID,130,98,107,25,Form3);
  81.  
  82. // Procedimiento de la segunda ventana (que se vera primero) para calcular
  83. // cuanto dinero tenemos
  84. FormProcedure Form2_Proc1(FormProcArgs) {
  85.     ON_COMMAND_BY( cmdCalcular ) {
  86.         // Calcular Billetes          
  87.         nVeinte = val(txt20.text) * 20;
  88.         nCincuenta = val(txt50.text) * 50;
  89.         nCien = val( txt100.text) * 100;
  90.         nDoscientos = val( txt200.text) * 200 ;
  91.         nQuinientos = val( txt500.text ) * 500 ;
  92.         nMil = val( txt1000.text ) * 1000;
  93.                
  94.         nSumBill = nVeinte + nCincuenta + nCien + nDoscientos + nQuinientos + nMil;
  95.         txtSumBill.text = str(nSumBill) ;
  96.        
  97.         // Calcular Monedas
  98.         nUno = val( txt1.text ) * 1;
  99.         nDos = val( txt2.text ) * 2;
  100.         nCinco = val( txt5.text ) * 5;
  101.         nDiez = val( txt10.text ) * 10;
  102.        
  103.         nSumCoin = nUno + nDos + nCinco + nDiez;
  104.         txtSumCoin.text = str(nSumCoin);
  105.        
  106.         // Total
  107.         nTotal = nSumBill + nSumCoin;
  108.         txtTotal.text = str( nTotal);
  109.     }
  110.              
  111.     return 0;
  112. }
  113.  
  114. FormProcedure Form3_Proc1(FormProcArgs) {
  115.     ON_COMMAND_BY( cmdDlls ) {
  116.         nDlls = val( txtMonto.text ) / 11.90;
  117.         txtDlls.text = str( nDlls);
  118.     }
  119.     ON_COMMAND_BY( cmdEuros ) {
  120.         nEuros = val( txtMonto.text ) / 16.90;
  121.         txtEuros.text = str( nEuros);
  122.     }
  123.     return 0;              
  124. }
  125.  
  126. // Procedimiento de la ventana principal
  127. FormProcedure Form1_Procedure(FormProcArgs) {
  128.     ON_CLOSE() {
  129.         Application.close();
  130.     }
  131.     // Cuando se seleccione alguna de las pestañas
  132.     ON_TAB_SELECT(pgTab, p1);
  133.     ON_TAB_SELECT(pgTab, p2);
  134.     // Cuando se redimensione la ventana principal, se ajustaran los controles
  135.     // del tab
  136.     ON_RESIZE() {
  137.        pgTab.fitExact();
  138.        p1.adjust();
  139.        p2.adjust();
  140.     }
  141.  
  142.     return 0;
  143. }
  144.  
  145. rad_main()
  146.     //Establecemos la seccion de Procedimientos para las 2 ventanas
  147.     Form1.procedure = Form1_Procedure;
  148.     Form2.procedure = Form2_Proc1;    
  149.     Form3.procedure = Form3_Proc1;
  150.    
  151.     //Ponemos los objetos en la ventana principal
  152.     p1.attachObject(Form2);
  153.     p2.attachObject(Form3);
  154.     // Ajustamos a la ventana principal Form1
  155.     pgTab.fitExact();
  156.     p1.adjust();
  157.     p2.adjust();
  158.     // Ponemos el foco en la primer caja de texto
  159.     txt20.focus(); 
  160. rad_end()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement