Clase Alumno
public class Alumnos
{
private String rut;
private String nombre;
private String apellidop;
private String apellidom;
private String domicilio;
private double montocancelado;
private int descuento;
public Alumnos(String rut)
{
this.rut = rut;
}
public void ingresoAlumnos(String rut, String nombre, String apellidop, String apellidom, String domicilio, double montocancelado, int descuento)
{
this.rut = rut;
this.nombre = nombre;
this.apellidop = apellidop;
this.apellidom = apellidom;
this.domicilio = domicilio;
this.montocancelado = montocancelado;
this.descuento = descuento;
}
public String rutAlumno()
{
return rut;
}
public String nombreAlumno()
{
return nombre;
}
public String apellidopaternoAlumno()
{
return apellidop;
}
public String apellidomaternoAlumno()
{
return apellidom;
}
public String domicilioAlumno()
{
return domicilio;
}
public double canceladoAlumno()
{
return montocancelado;
}
public int descuentoAlumno()
{
return descuento;
}
}
Clase Curso
import java.io.*;
public class Cursos
{
private String nombre;
private int codigo;
private String fechainicio;
private int horas;
private int nummax;
private double valor;
private double costo;
private Alumnos[] lista;
public Cursos(String nombre, int codigo, String fechainicio, int horas, int nummax, double valor, double costo)
{
this.nombre = nombre;
this.codigo = codigo;
this.fechainicio = fechainicio;
this.horas = horas;
this.nummax = nummax;
this.valor = valor;
this.costo = costo;
lista = new Alumnos[nummax];
}
public void creaAlumnos()
{
String rut = "0";
for(int i=0;i<nummax;i++)
lista[i]=new Alumnos(rut);
}
public void ingresaAlumno()
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
int descuento = 0;
double apagar = 0;
try {
System.out.println("Ingresar alumnos al curso "+nombreCurso());
System.out.print("RUT :");
String rut = br.readLine();
System.out.print("Nombre :");
String nombre = br.readLine();
System.out.print("Apellido paterno :");
String apellidop = br.readLine();
System.out.print("Apellido materno :");
String apellidom = br.readLine();
System.out.print("Domicilio :");
String domicilio = br.readLine();
if (cantidadAlumnos()<5)
descuento = 5;
if (cantidadAlumnos()<10)
descuento = descuento + 10;
apagar = valor-(valor*descuento/100);
lista[cantidadAlumnos()].ingresoAlumnos(rut, nombre, apellidop, apellidom, domicilio, apagar, descuento);
}
catch(Exception e)
{
System.out.print("ERROR");
}
}
public int cantidadAlumnos()
{
int i;
for (i=0;i<nummax;i++)
{
if (lista[i].rutAlumno()=="0")
{
break;
}
}
return i;
}
public int vacantes()
{
int vacantes = 0;
vacantes = nummax-cantidadAlumnos();
return vacantes;
}
public String nombreCurso()
{
return nombre;
}
public void listaCurso()
{
System.out.println("hay "+cantidadAlumnos()+" alumnos matriculados");
for (int i=0;i<cantidadAlumnos();i++)
{
System.out.println("");
System.out.println("RUT :"+lista[i].rutAlumno());
System.out.println("nombre :"+lista[i].nombreAlumno());
System.out.println("Apellido paterno :"+lista[i].apellidopaternoAlumno());
System.out.println("Apellido materno :"+lista[i].apellidomaternoAlumno());
System.out.println("Domicilio :"+lista[i].domicilioAlumno());
System.out.println("Valor pagado :"+lista[i].canceladoAlumno());
System.out.println("Descuento :"+lista[i].descuentoAlumno());
System.out.println("");
}
}
public double recaudadoCurso()
{
double recaudado = 0;
for (int i=0;i<nummax;i++)
recaudado = lista[i].canceladoAlumno()+recaudado;
return recaudado;
}
public double costoCurso()
{
double costo = 0;
costo = cantidadAlumnos()*this.costo;
return costo;
}
}
Clase Ingreso
import java.io.*;
public class Ingreso {
public static int menu() { //Menu de Inscripcion por curso
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
int opc = 0;
System.out.println("");
System.out.println("ingrese una opcion");
System.out.println("1 - Ingresar Alumno");
System.out.println("2 - consultar numero de vacantes");
System.out.println("3 - Lista de alumnos");
System.out.println("4 - Estadisticas financieras del curso");
System.out.println("5 - Cerrar inscripciones");
System.out.println("6 - Terminar programa");
do {
try {
opc = Integer.parseInt(br.readLine());
if (opc < 1 || opc > 6)
System.out.println("Opcion invalida, reingrese");
}
catch(Exception e)
{
System.out.println("Opcion invalida, reingrese");
opc = 0;
}
}
while (opc < 1 || opc >6);
return opc;
}
public static void main(String[] args) {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String nombrecurso ="", fechaini = "";
int codigo = 0, nummax = 0, horas = 0, opc = 0;
double valor = 0, costo = 0;
try {
//INGRESO DE DATOS DEL CURSO
System.out.println("Creacion de cursos");
System.out.print("nombre :");
nombrecurso = br.readLine();
System.out.print("Codigo :");
codigo = Integer.parseInt(br.readLine());
System.out.print("Fecha de inicio :");
fechaini = br.readLine();
do{
System.out.print("Maximo de alumnos :");
nummax = Integer.parseInt(br.readLine());
if (nummax<15)
System.out.println("El minimo de alumnos es 15");
}
while(nummax<15);
System.out.print("Horas :");
horas = Integer.parseInt(br.readLine());
System.out.print("Valor por alumno :");
Double d = new Double(br.readLine());
valor = d.doubleValue();
System.out.print("Costo por alumno :");
d = new Double(br.readLine());
costo = d.doubleValue();
}
catch(Exception e)
{
System.out.print("ERROR");
}
Cursos curso = new Cursos(nombrecurso, codigo, fechaini, horas, nummax, valor, costo);
curso.creaAlumnos();
do {
opc = menu();
switch (opc) {
case 1:
if (curso.vacantes()>0)
curso.ingresaAlumno();
else
System.out.println("No hay vacantes para este curso");
break;
case 2:
System.out.println("Hay "+curso.vacantes()+" vacantes");
break;
case 3:
System.out.println("Lista de alumnos del curso "+curso.nombreCurso());
curso.listaCurso();
break;
case 4:
System.out.println("Recaudado :"+curso.recaudadoCurso());
System.out.println("Costo :"+curso.costoCurso());
if (curso.recaudadoCurso()-curso.costoCurso()>=0)
System.out.println("Ganacia :"+(curso.recaudadoCurso()-curso.costoCurso()));
else
System.out.println("perdida :"+(curso.recaudadoCurso()-curso.costoCurso()));
break;
case 5:
if (curso.cantidadAlumnos()<15)
System.out.println("Cantidad insuficiente de alumnos");
break;
default:
System.out.println("Salida del programa");
}
}
while (opc!=6);
}
}
Saludos