<file_sep>package Dep;
import java.util.Scanner;
public class Persona implements Registro {
	static final Scanner entrada=new Scanner(System.in);
	protected String DNI;
	protected String nombre;
	protected String apellidos;
	protected String fechaNacimiento;
	protected String direccion;
	protected String ciudadProcedencia;
	Persona(){
	}
	
	public Persona(String dNI, String nombre, String apellidos) {
		DNI = dNI;
		this.nombre = nombre;
		this.apellidos = apellidos;
	}

	public Persona(String dNI, String nombre, String apellidos, String fechaNacimiento, String direccion,
			String ciudadProcedencia) {
		DNI = dNI;
		this.nombre = nombre;
		this.apellidos = apellidos;
		this.fechaNacimiento = fechaNacimiento;
		this.direccion = direccion;
		this.ciudadProcedencia = ciudadProcedencia;
	}

	
	public String getDNI() {
		return DNI;
	}

	public void setDNI(String dNI) {
		DNI = dNI;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellidos() {
		return apellidos;
	}

	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}

	public String getFechaNacimiento() {
		return fechaNacimiento;
	}

	public void setFechaNacimiento(String fechaNacimiento) {
		this.fechaNacimiento = fechaNacimiento;
	}

	public String getDireccion() {
		return direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getCiudadProcedencia() {
		return ciudadProcedencia;
	}

	public void setCiudadProcedencia(String ciudadProcedencia) {
		this.ciudadProcedencia = ciudadProcedencia;
	}

	@Override
	public String toString(){
		return String.format("%s %s\nDNI: %s\nFecha Nacimiento: %s\n"
				+ "Direccion: %s\nCiudad Procedencia: %s\n",getNombre(),
				getApellidos(), getDNI(),getFechaNacimiento(),
				this.getDireccion(),this.getCiudadProcedencia());
	}
	@Override
	public void Registrar(){
		setDNI(entrada.next());
		setNombre(entrada.next());
		setApellidos(entrada.next());
		setFechaNacimiento(entrada.next());
		setDireccion(entrada.next());
		setCiudadProcedencia(entrada.next());
	}
}
<file_sep>package GUI;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import Dep.Paciente;

import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class regPaciente extends JFrame {

	private JPanel contentPane;
	private JTextField txt_DNI;
	private JTextField txt_Nombre;
	private JTextField txt_Apellidos;
	private JTextField txt_FechaNacimiento;
	private JTextField txt_direccion;
	private JTextField txt_Procedencia;
	private JTextField txt_Historia;
	private JTextField txt_gSanguineo;
	private JTextField txt_medicamentos;
	private ButtonGroup botones=new ButtonGroup();

	/*
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					regPaciente frame = new regPaciente();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
	 */
	public regPaciente() {
		setTitle("Registrar Paciente");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 550, 400);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		txt_DNI = new JTextField();
		txt_DNI.setBounds(99, 51, 116, 22);
		contentPane.add(txt_DNI);
		txt_DNI.setColumns(10);
		
		JLabel label_Dni = new JLabel("DNI");
		label_Dni.setBounds(7, 54, 56, 16);
		contentPane.add(label_Dni);
		
		txt_Nombre = new JTextField();
		txt_Nombre.setBounds(99, 86, 116, 22);
		contentPane.add(txt_Nombre);
		txt_Nombre.setColumns(10);
		
		JLabel lblNombre = new JLabel("Nombre");
		lblNombre.setBounds(7, 89, 56, 16);
		contentPane.add(lblNombre);
		
		txt_Apellidos = new JTextField();
		txt_Apellidos.setBounds(99, 121, 116, 22);
		contentPane.add(txt_Apellidos);
		txt_Apellidos.setColumns(10);
		
		JLabel label_Apellidos = new JLabel("Apellidos");
		label_Apellidos.setBounds(7, 124, 56, 16);
		contentPane.add(label_Apellidos);
		
		txt_FechaNacimiento = new JTextField();
		txt_FechaNacimiento.setText("");
		txt_FechaNacimiento.setBounds(99, 156, 116, 22);
		contentPane.add(txt_FechaNacimiento);
		txt_FechaNacimiento.setColumns(10);
		
		JLabel label_Cumple = new JLabel("Cumple");
		label_Cumple.setBounds(7, 159, 56, 16);
		contentPane.add(label_Cumple);
		
		txt_direccion = new JTextField();
		txt_direccion.setBounds(99, 191, 116, 22);
		contentPane.add(txt_direccion);
		txt_direccion.setColumns(10);
		
		JLabel label_Direccion = new JLabel("Direccion");
		label_Direccion.setBounds(7, 194, 56, 16);
		contentPane.add(label_Direccion);
		
		txt_Procedencia = new JTextField();
		txt_Procedencia.setBounds(99, 226, 116, 22);
		contentPane.add(txt_Procedencia);
		txt_Procedencia.setColumns(10);
		
		JLabel label_Ciudad = new JLabel("Ciudad");
		label_Ciudad.setBounds(7, 229, 56, 16);
		contentPane.add(label_Ciudad);
		
		txt_Historia = new JTextField();
		txt_Historia.setBounds(99, 261, 116, 22);
		contentPane.add(txt_Historia);
		txt_Historia.setColumns(10);
		
		JLabel label_Historia = new JLabel("N\u00B0Historia");
		label_Historia.setBounds(7, 264, 75, 16);
		contentPane.add(label_Historia);
		
		final JRadioButton botonFemenino = new JRadioButton("Femenino");
		botonFemenino.setBounds(397, 47, 127, 25);
		contentPane.add(botonFemenino);
		
		final JRadioButton botonMasculino = new JRadioButton("Masculino");
		botonMasculino.setBounds(397, 101, 127, 25);
		contentPane.add(botonMasculino);
		
		botones.add(botonMasculino);
		botones.add(botonFemenino);
		
		JLabel labelSexo = new JLabel("Sexo");
		labelSexo.setBounds(327, 75, 56, 16);
		contentPane.add(labelSexo);
		
		JLabel labelGrupoSanguineo = new JLabel("Grupo Sanguineo");
		labelGrupoSanguineo.setBounds(267, 138, 116, 16);
		contentPane.add(labelGrupoSanguineo);
		
		txt_gSanguineo = new JTextField();
		txt_gSanguineo.setBounds(384, 135, 116, 22);
		contentPane.add(txt_gSanguineo);
		txt_gSanguineo.setColumns(10);
		
		txt_medicamentos = new JTextField();
		txt_medicamentos.setBounds(267, 203, 219, 22);
		contentPane.add(txt_medicamentos);
		txt_medicamentos.setColumns(10);
		
		JLabel labelMedicamentos = new JLabel("Al\u00E9rgico a medicamentos \u00BFCu\u00E1les?");
		labelMedicamentos.setBounds(284, 176, 207, 16);
		contentPane.add(labelMedicamentos);
		
		JButton botonRegistrar = new JButton("Registrar");
		botonRegistrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String sexo;
				if(botonMasculino.isSelected()){
					sexo="Masculino";
				}else {
					if(botonFemenino.isSelected()){
					sexo="Femenino";
					}
					else{
						sexo="No definido";
					}
				}
				String DNI=txt_DNI.getText();
				String Nombre=txt_Nombre.getText();
				String Apellidos=txt_Apellidos.getText();
				String Fecha=txt_FechaNacimiento.getText();
				String Direccion=txt_direccion.getText();
				String Ciudad=txt_Procedencia.getText();
				String Historia=txt_Historia.getText();
				String Grupo=txt_gSanguineo.getText();
				String Medicamentos=txt_medicamentos.getText();
				Paciente paciente=new Paciente(DNI,Nombre, Apellidos, Fecha, Direccion,
						Ciudad,Historia,sexo, Grupo, Medicamentos);

			}
		});
		botonRegistrar.setBounds(267, 238, 97, 25);
		contentPane.add(botonRegistrar);
		
		final Primera regresar=new Primera();
		JButton btnRegresarAlMen = new JButton("Regresar al men\u00FA principal");
		btnRegresarAlMen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				regresar.setVisible(true);
				dispose();
			}
		});
		btnRegresarAlMen.setBounds(267, 315, 237, 25);
		contentPane.add(btnRegresarAlMen);
	}
}
<file_sep>package Dep;

public class Medico extends EmpleadoPlanilla {
	protected String Especialidad;
	protected String servicio;
	protected String numeroConsultorio;
	Medico(){}
	
	public Medico(String dNI, String nombre, String apellidos, String fechaNacimiento, String direccion,
			String ciudadProcedencia, String codEmpleado, String horasExtra, String fechaIngreso, String area,
			String cargo, String salarioMensual, String porcentajeAd, String especialidad, String servicio,
			String numeroConsultorio) {
		super(dNI, nombre, apellidos, fechaNacimiento, direccion, ciudadProcedencia, codEmpleado, horasExtra,
				fechaIngreso, area, cargo, salarioMensual, porcentajeAd);
		Especialidad = especialidad;
		this.servicio = servicio;
		this.numeroConsultorio = numeroConsultorio;
	}


	public String getEspecialidad() {
		return Especialidad;
	}

	public void setEspecialidad(String especialidad) {
		Especialidad = especialidad;
	}

	public String getServicio() {
		return servicio;
	}

	public void setServicio(String servicio) {
		this.servicio = servicio;
	}

	public String getNumeroConsultorio() {
		return numeroConsultorio;
	}

	public void setNumeroConsultorio(String numeroConsultorio) {
		this.numeroConsultorio = numeroConsultorio;
	}

	@Override
	public String toString(){
		return String.format("Medico %s\nEspecialidad: %s\n"
				+ "Servicio: %s\nNumero Consultorio: %s\n"
				,super.toString(),this.getEspecialidad(),
				this.getServicio(),this.getNumeroConsultorio());
	}
	@Override
	public void Registrar(){
		System.out.println("Medico");
		this.setEspecialidad(entrada.next());
		super.Registrar();
		this.setServicio(entrada.next());
		this.setNumeroConsultorio(entrada.next());
	}
	
	

}
<file_sep>package GUI;

import javax.swing.JOptionPane;

public class SuperPrincipal {

	public static void main(String[] args) {
		JOptionPane.showMessageDialog(null, "Bienvenido al Departamento de Registro"); 
		Primera inicio=new Primera();
		inicio.setVisible(true);

	}

}
<file_sep>package Dep;

public class EmpleadoPlanilla extends Empleado{
	protected String salarioMensual;
	protected String porcentajeAd;
	EmpleadoPlanilla(){}
	public EmpleadoPlanilla(String dNI, String nombre, String apellidos, String fechaNacimiento, String direccion,
			String ciudadProcedencia, String codEmpleado, String horasExtra, String fechaIngreso, String area,
			String cargo, String salarioMensual, String porcentajeAd) {
		super(dNI, nombre, apellidos, fechaNacimiento, direccion, ciudadProcedencia, codEmpleado, horasExtra,
				fechaIngreso, area, cargo);
		this.salarioMensual = salarioMensual;
		this.porcentajeAd = porcentajeAd;
	}


	public String getSalarioMensual() {
		return salarioMensual;
	}
	public void setSalarioMensual(String salarioMensual) {
		this.salarioMensual = salarioMensual;
	}
	public String getPorcentajeAd() {
		return porcentajeAd;
	}
	public void setPorcentajeAd(String porcentajeAd) {
		this.porcentajeAd = porcentajeAd;
	}
	@Override
	public String toString(){
		return String.format("Empleado Planilla %s\nSalario Mensual: %s\n"
				+ "Porcentaje adicional por hora extra: %s\n"
				,super.toString(),this.getSalarioMensual(),
				this.getPorcentajeAd());
	}
	@Override
	public void Registrar(){
		System.out.println("Ingrese datos del Empleado Planilla...");
		super.Registrar();
		this.setSalarioMensual(entrada.next());
		this.setPorcentajeAd(entrada.next());
	}
}
<file_sep>package Dep;

public class Cita extends Paciente {
	protected String fecha;
	protected String codOctor;
	protected String tipoServicio;
	Cita(){}

	public Cita(String dNI, String nombre, String apellidos, String numeroHistoria, String sexo, String fecha,
			String codOctor, String tipoServicio) {
		super(dNI, nombre, apellidos, numeroHistoria, sexo);
		this.fecha = fecha;
		this.codOctor = codOctor;
		this.tipoServicio = tipoServicio;
	}

	public String getFecha() {
		return fecha;
	}
	public void setFecha(String fecha) {
		this.fecha = fecha;
	}
	public String getCodOctor() {
		return codOctor;
	}
	public void setCodOctor(String codOctor) {
		this.codOctor = codOctor;
	}

	public String getTipoServicio() {
		return tipoServicio;
	}

	public void setTipoServicio(String tipoServicio) {
		this.tipoServicio = tipoServicio;
	}
	
	
}
<file_sep>package Dep;

public class EmpleadoEventual extends Empleado{
	protected String honorariosHora;
	protected String horasNormales;//normales mas extras
	protected String fechaFinal;
	EmpleadoEventual(){}
	public EmpleadoEventual(String dNI, String nombre, String apellidos, String fechaNacimiento, String direccion,
			String ciudadProcedencia, String codEmpleado, String horasExtra, String fechaIngreso, String area,
			String cargo, String honorariosHora, String horasNormales, String fechaFinal) {
		super(dNI, nombre, apellidos, fechaNacimiento, direccion, ciudadProcedencia, codEmpleado, horasExtra,
				fechaIngreso, area, cargo);
		this.honorariosHora = honorariosHora;
		this.horasNormales = horasNormales;
		this.fechaFinal = fechaFinal;
	}

	public int obtenerHorasTotales(){
		return 0;//obtenerHorasNormales()+super.obtenerHorasExtra();
	}

	public String getHonorariosHora() {
		return honorariosHora;
	}
	public void setHonorariosHora(String honorariosHora) {
		this.honorariosHora = honorariosHora;
	}
	public String getHorasNormales() {
		return horasNormales;
	}
	public void setHorasNormales(String horasNormales) {
		this.horasNormales = horasNormales;
	}
	public String getFechaFinal() {
		return fechaFinal;
	}
	public void setFechaFinal(String fechaFinal) {
		this.fechaFinal = fechaFinal;
	}
	@Override
	public String toString(){
		return String.format("Empleado eventual: %s\n Honorario: %s\n"
				+ "Horas Totales: %s\n Fecha Final: %s\n"
				,super.toString(),this.getHonorariosHora(),
				this.obtenerHorasTotales(),this.getFechaFinal());
	}
	@Override
	public void Registrar(){
		System.out.println("Ingrese datos del Empleado Eventual...");
		super.Registrar();
		this.setHonorariosHora(entrada.next());
		this.setHorasNormales(entrada.next());
		this.setFechaFinal(entrada.next());
	}

}
