You are on page 1of 3

package propuesto01; import import import import import import import java.io.DataInputStream; java.io.DataOutputStream; java.io.File; java.io.FileInputStream; java.io.FileOutputStream; java.io.

IOException; java.util.Scanner;

public class YAMIYAMI{ public static void main(String[] args) throws IOException { Scanner in = new Scanner(System.in); //campos String nombre = "", sexo = ""; int codigo, edad; double sueldo; int nregis = 0;//numero de registros,= a nro e empleados String[][] regis; File f = new File("c:/misdatos/empleados.dat"); int opc = 0; do { System.out.println("Menu de Opciones"); System.out.println("1.Adicionar"); System.out.println("2.Listar"); System.out.println("3.Modificar"); System.out.println("4.Eliminar"); System.out.println("Digite su opcion (0=Salir)="); opc = Integer.parseInt(in.nextLine()); switch (opc) { case 1: System.out.println("****Adicion de trabajos****"); System.out.println("Codigo="); codigo = Integer.parseInt(in.nextLine()); System.out.println("nombre="); nombre = in.nextLine(); System.out.println("sexo="); sexo = in.nextLine(); System.out.println("sueldo="); sueldo = Double.parseDouble(in.nextLine()); System.out.println("edad="); edad = Integer.parseInt(in.nextLine()); if (f.exists()) {//si ya se creo el archivo anterioimente FileInputStream fis = new FileInputStream(f); DataInputStream dis = new DataInputStream(fis); nregis = dis.readInt(); regis = new String[nregis][5]; for (int i = 0; i < nregis; i++) { regis[i][0] = String.valueOf(dis.readInt()); regis[i][1] = String.valueOf(dis.readUTF()); regis[i][2] = String.valueOf(dis.readChar()); regis[i][3] = String.valueOf(dis.readDouble()); regis[i][4] = String.valueOf(dis.readInt()); } dis.close(); FileOutputStream fos = new FileOutputStream(f); DataOutputStream dos = new DataOutputStream(fos); dos.writeInt(nregis + 1); for (int i = 0; i < nregis; i++) {

dos.writeInt(Integer.parseInt(regis[i][0])); dos.writeUTF(regis[i][1]); dos.writeChar(regis[i][2].charAt(0)); dos.writeDouble(Double.parseDouble(regis[i][3])); dos.writeInt(Integer.parseInt(regis[i][4])); } dos.writeInt(codigo); dos.writeUTF(nombre); dos.writeChar(sexo.charAt(0)); dos.writeDouble(sueldo); dos.writeInt(edad); dos.close(); } else { FileOutputStream fos = new FileOutputStream(f); DataOutputStream dos = new DataOutputStream(fos); dos.writeInt(1); dos.writeInt(codigo); dos.writeUTF(nombre); dos.writeChar(sexo.charAt(0)); dos.writeDouble(sueldo); dos.writeInt(edad); dos.close(); } break; case 2: System.out.println("****Listado de Trabajadores****"); if (f.exists()) {//si ya se creo el archivo anteriormente FileInputStream fis = new FileInputStream(f); DataInputStream dis = new DataInputStream(fis); nregis = dis.readInt(); System.out.println("#Registros:" + nregis); for (int i = 0; i < nregis; i++) { System.out.println("Codigo=" + dis.readInt()); System.out.println("Nombre=" + dis.readUTF()); System.out.println("Sexo=" + dis.readChar()); System.out.println("Sueldo=" + dis.readDouble()); System.out.println("Edad=" + dis.readInt()); } dis.close(); } else { System.out.println("!!No hay datos que mostrar..."); } break; case 3://MODIFICAE System.out.println("**** Modificacion de DATOS de Trabajador es****"); System.out.println("Codigo del trabajador:"); codigo = Integer.parseInt(in.nextLine()); System.out.println("Datos grabados del Trabajador:"); if (f.exists()) {//si ya se creo el archivo anteriormente FileInputStream fis = new FileInputStream(f); DataInputStream dis = new DataInputStream(fis); nregis = dis.readInt(); regis = new String[nregis][5]; int cod, ind = -1; boolean encontrado = false; for (int i = 0; i < nregis; i++) { cod = dis.readInt(); regis[i][0] = String.valueOf(cod); regis[i][1] = String.valueOf(dis.readUTF());

regis[i][2] = String.valueOf(dis.readChar()); regis[i][3] = String.valueOf(dis.readDouble()); regis[i][4] = String.valueOf(dis.readInt()); if (cod == codigo) { encontrado = true; ind = i; System.out.println("1:Nombre=" + regis[i][1]); System.out.println("2:Sexo=" + regis[i][2]); System.out.println("3:Sueldo=" + regis[i][3]); System.out.println("4:Edad=" + regis[i][4]); } } dis.close(); if (encontrado) { int campo = 0; do { System.out.print("Campo a modificar 1/2/3/4 (0=s alir):"); campo = Integer.parseInt(in.nextLine()); if (campo >= 1 && campo <= 4) { System.out.print("\nvalor anterior=" + regis [ind][campo]); System.out.print("\nnuevo valor="); String valor = in.nextLine(); regis[ind][campo] = valor; } } while (campo != 0); FileOutputStream fos = new FileOutputStream(f); DataOutputStream dos = new DataOutputStream(fos); dos.writeInt(nregis); for (int i = 0; i < nregis; i++) { dos.writeInt(Integer.parseInt(regis[i][0])); dos.writeUTF(regis[i][1]); dos.writeChar(regis[i][2].charAt(0)); dos.writeDouble(Double.parseDouble(regis[i][3])) ; dos.writeInt(Integer.parseInt(regis[i][4])); } dos.close(); } else { System.out.println("!!Codigo no se encuentra..."); } } else { System.out.println("!!No hay datos registrados..."); } break; } } while (opc != 0); } }

You might also like