Guest User

Untitled

a guest
Jun 23rd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. import java.io.*;
  2. public class proyecto_final {
  3. //estructura para la lista doble.
  4. public static class Node{
  5. private int tiempo;
  6. private int atendido;
  7. private String aplicacion;
  8. private Node siguiente;
  9. private Node anterior;
  10. public Node(int t,String a){
  11. tiempo=t;
  12. atendido=0;
  13. /*es cero porque al inicio no se atiende la aplicación
  14. despues que se elije la opción de atender aplicaciones
  15. es cuando este campo toma valor*/
  16. aplicacion=a;
  17. siguiente=anterior=null;
  18. }
  19. }
  20. // genera el tiempo que tarda la aplicacion aleatoriamente
  21. public static int generarTiempo(){
  22. int ti;
  23. ti=(int)(Math.random()*100);
  24. return ti;
  25. }
  26. //Cuenta cuantos elementos hay en la lista
  27. public static int cuentaElementos(Node lista){
  28. int cont=0;
  29. while(lista!=null)
  30. cont++;
  31. lista=lista.siguiente;
  32. return cont;
  33. }
  34. public static Node atender(Node top){
  35. int t=-1;
  36. String a;
  37. Node topi=null,backi=null;
  38. Node temp=null;// lista temporal auxiliar
  39. Node aux1;//lista auxiliar
  40. int con=cuentaElementos(top);//manda contar los elementos de la lista
  41. for(int i=1;i<=con;i++){
  42. aux1=top;
  43. //ciclo que buscara el mayor de la lista
  44. while(aux1!=null){
  45. if(aux1.tiempo>t){
  46. t=aux1.tiempo;
  47. a=aux1.aplicacion;
  48. }
  49. aux1=aux1.siguiente;
  50. }
  51. /*pone el dato encontrado en el ciclo en una lista nueva topi
  52. *y se atendera la aplicacion*/
  53. if(topi==null){
  54. topi=new Node(t,a);
  55. topi.atendido=i;
  56. backi=topi;
  57. }
  58. else{
  59. temp=new Node(t,a);
  60. temp.atendido=i;
  61. temp.siguiente=topi;
  62. top.anterior=temp;
  63. topi=temp;
  64. }
  65. //borra el buscado y atendido en la lista top
  66. borrar(top,t);
  67. }
  68. //se regresa el contenido de la lista topi
  69. return topi;
  70. }
  71. public static void borrar(Node top,int t){
  72. Node actual;
  73. boolean encon=false;
  74. actual=top;
  75. //ciclo de busqueda
  76. while((actual!=null)&&(!encon)){
  77. encon=(actual.tiempo==t);
  78. if(!encon)
  79. actual=actual.siguiente;
  80. }
  81. //Enlace de node anterior con siguiente
  82. if(actual!=null){
  83. if(actual==top){
  84. top=actual.siguiente;
  85. if(actual.siguiente!=null)
  86. actual.siguiente.anterior=null;
  87. }
  88. else if(actual.siguiente!=null){
  89. actual.anterior.siguiente=actual.siguiente;
  90. actual.siguiente.anterior=actual.anterior;
  91. }
  92. else
  93. actual.anterior.siguiente=null;
  94. actual=null;
  95. }
  96. }
  97. public static BufferedReader in=new BufferedReader (new InputStreamReader(System.in));
  98. public static void main(String[]args)throws IOException{// Main del programa
  99. String aplica;
  100. int opcion,ti,con;
  101. Node top=null,back=null,temp;
  102. do{
  103. System.out.print("\n1.Aplicación\n2.Atender Aplicaciones\n3.Imprimir Aplicaciones\n4.Salir\nOpción_> ");
  104. opcion=Integer.parseInt(in.readLine());
  105. switch(opcion){
  106. // se pedira la aplicación, pero no se atendera en este case
  107. case 1:
  108. System.out.print("\nAplicación: ");
  109. aplica=in.readLine();
  110. ti=generarTiempo();
  111. if(top==null){
  112. top=new Node(ti,aplica);
  113. back=top;
  114. }
  115. else{
  116. temp=new Node(ti,aplica);
  117. temp.siguiente=top;
  118. top.anterior=temp;
  119. top=temp;
  120. }
  121. break;
  122. //en este case se atendera la aplicación
  123. case 2:
  124. top=atender(top);
  125. break;
  126. //se imprime la lista de aplicaiones
  127. case 3:
  128. System.out.println("\n\tImprimiendo...\n");
  129. System.out.println("ATENDIDO\tTIEMPO (ms)\t APLICACIÓN");
  130. temp=top;
  131. while(temp!=null){
  132. System.out.println("\t"+temp.atendido+"\t\t\t"+temp.tiempo+"\t\t\t"+temp.aplicacion);
  133. temp=temp.siguiente;
  134. }
  135. break;
  136. case 4:
  137. System.out.println("\n\tHAS SALIDO DEL PROGRAMA");
  138. break;
  139. default:
  140. System.out.println("\n\tOPCIÓN EQUIVOCADA, ELIGE OTRA\n");
  141. break;
  142. }
  143. }while(opcion!=4);
  144. }
  145. }
Add Comment
Please, Sign In to add comment