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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  simulador de procesos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: simulador de procesos  (Leído 3,049 veces)
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
simulador de procesos
« en: 23 Junio 2015, 03:36 am »

Saludos

Tengo el siguiente programa que se trata de un simulador de procesos

Tengo que introducir desde el teclado N procesos, estos seran los que conformen los lotes,
la capacidad máxima de un lote es de 5, y si el número de procesos que se introduce
excede esta cantidad, se conformará otro lote.Al terminar un lote se ejecuta.

La información a capturar por cada proceso es:

1)Nombre de Programador
2)Operación(+,-,*,/) y datos a realizar(validar operaciones)
3 Tiempo Máximo Estimado (validar, debe ser mayor a 0)

Los procesos se atenderán en el orden en que se capturaron. En pantalla debe mostrarse lo
siguiente:

a) Procesos en Espera
   1) Nombre de programador
   2) Tiempo Maximo Estimado
   3) Si hay lotes en espera, anotar el número de lotes pendientes.
b) Proceso en Ejecucion
   1) Se deberán mostrar todos los datos del proceso (Nombre, Operacion, tiempo max)
   2) Tiempo transcurrido de ejecución
   3) Tiempo restante por ejecutar.
c) Procesos Terminados
   1) Número de Programa
   2) Operación y datos
   3) Resultado de la operación.

Desde que se inicia la simulacion, se desplegará un reloj global, es decir, un contador
que lleve el tiempo desde el inicio del programa hasta que termine
El programa se pausa una vez que se hayan realizado todas las operaciones.

hasta ahora tengo ya la parte que captura la información de los procesos y los va
almacenando en un arreglo de tipo infoProceso, pero no se bien como tengo que usar hilos
(Threads) para que se vayan ejecutando los procesos, tengo que usar una clase para los lotes???

el codigo es el siguiente:

Código
  1. class infoProceso{
  2. String nombreProgramador;
  3. int numeroPrograma,tiempoMaximo,num1,num2,resultado;
  4. char operador;
  5. }
  6.  
  7. public class ProcesamientoPorLotes
  8. {
  9. public static int MAX = 5;
  10. public static infoProceso[] lote = new infoProceso[50];
  11. public static void main(String[] args)
  12. {
  13. int numProcesos;
  14. Scanner entradaTeclado = new Scanner(System.in);
  15. System.out.println("Dame el numero de procesos: ");
  16. numProcesos = entradaTeclado.nextInt();
  17. entradaTeclado.close();
  18. capturarInformacion(numProcesos);
  19. }
  20.  
  21. public static void capturarInformacion(int numProcesos)
  22. {
  23. String nombre = "",operador = "";
  24. boolean opValido,tiempoValido = true,idRepetido = false;
  25. int tiempo,numero,i,j;
  26.        for(i = numProcesos;i > 0;i--)
  27.        {
  28. for(j = 0;j < MAX;j++)
  29. {
  30. Scanner teclado = new Scanner(System.in);
  31. //ingresar nombre del programador
  32. System.out.println("Dame Nombre de Programador: ");
  33. nombre = teclado.nextLine();
  34. lote[j].nombreProgramador = nombre;
  35. //ingresar la operación
  36. do
  37. {
  38. System.out.println("Dame la Operacion: ");
  39. operador = teclado.nextLine();
  40. teclado.close();
  41. opValido = validarOperador(operador);
  42. }while(!opValido);
  43. capturarOperacion(operador,j);
  44. //ingresar el máximo tiempo estimado
  45. do
  46. {
  47. System.out.println("Dame el tiempo maximo estimado: ");
  48. tiempo = teclado.nextInt();
  49. teclado.close();
  50. tiempoValido = validarTiempo(tiempo);
  51. }while(!tiempoValido);
  52. lote[j].tiempoMaximo = tiempo;
  53. //ingresar ID
  54. do
  55. {
  56.    System.out.println("Dame el numero de programa: ");
  57.    numero = teclado.nextInt();
  58.    teclado.close();
  59.    verificarID(numero);
  60. }while(idRepetido);
  61. }
  62. //
  63. }
  64. }
  65.  
  66. public static boolean verificarID(int numero)
  67. {
  68. boolean esRepetido = false;
  69. return esRepetido;
  70. }
  71.  
  72. public static boolean validarOperador(String op)
  73. {
  74. boolean esValido;
  75. char operador = op.charAt(0);
  76. if(operador == '+' || operador == '-' || operador == '*' || operador == '/')
  77.   esValido = true;
  78. else
  79.   esValido = false;
  80. return esValido;
  81. }
  82.  
  83. public static boolean validarTiempo(int tiempo)
  84. {
  85. boolean esValido = true;
  86. if(tiempo <= 0)
  87. {
  88.        System.out.println("Tiempo invalido (debe ser mayor a 0).\nIntroducir dato nuevamente");
  89.        esValido = false;
  90. }
  91. return esValido;
  92. }
  93.  
  94. public static void capturarOperacion(String op,int j){
  95. char operador = op.charAt(0);
  96. int num1,num2;
  97. Scanner entrada1 = new Scanner(System.in);
  98. Scanner entrada2 = new Scanner(System.in);
  99. System.out.println("Dame el numero1: ");
  100.        num1 = entrada1.nextInt();
  101.        System.out.println("Dame el numero2: ");
  102.        num2 = entrada2.nextInt();
  103.        lote[j].num1 = num1;
  104.    lote[j].num2 = num2;
  105.    lote[j].operador = operador;
  106. switch(operador)
  107. {
  108.    case '+':  
  109.       lote[j].resultado = lote[j].num1+lote[j].num2;
  110.       break;
  111.    case '-':
  112.       lote[j].resultado = lote[j].num1-lote[j].num2;
  113.       break;
  114.    case '*':
  115.       lote[j].resultado = lote[j].num1*lote[j].num2;
  116.       break;
  117.    case '/':
  118.       lote[j].resultado = lote[j].num1/lote[j].num2;
  119.       break;
  120. }
  121. entrada1.close();
  122. entrada2.close();
  123. }
  124. }
  125.  

de antemano gracias


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Simulador de PLC
Electrónica
lllyounghackerlll 5 35,565 Último mensaje 23 Junio 2005, 15:52 pm
por IVANNA
Listar procesos y realizar cosas con los procesos
Programación Visual Basic
sebas369 2 3,202 Último mensaje 14 Julio 2006, 16:08 pm
por sebas369
simulador de plc
Electrónica
javielo20 0 2,843 Último mensaje 13 Octubre 2007, 20:26 pm
por javielo20
Un simulador...
.NET (C#, VB.NET, ASP)
erivera87 1 4,593 Último mensaje 2 Enero 2008, 12:41 pm
por [D4N93R]
Simulador PCB En C++?
Programación C/C++
include (); 0 2,595 Último mensaje 6 Agosto 2012, 07:46 am
por include ();
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines