Classes CatalegAstronomic i Borsa en Java: Guia i Codi
Clasificado en Inglés
Escrito el en
catalán con un tamaño de 4,99 KB
Classe CatalegAstronomic en Java
A continuació es presenta la implementació de la classe CatalegAstronomic, dissenyada per a gestionar una col·lecció d'astres utilitzant arrays estàtics i mètodes de cerca i filtratge.
public class CatalegAstronomic {
// Atributs
public static final int MAX_ASTRES = 120;
private int numAstres;
private int numEstelsSimpleVista;
private Astre[] cataleg;
// Constructor per defecte
public CatalegAstronomic() {
cataleg = new Astre[MAX_ASTRES];
numAstres = 0;
numEstelsSimpleVista = 0;
}
// Mètode que torna la posició o -1 si no hi és
private int posicioDe(Astre a) {
int pos = -1;
int i = 0;
while (i < numAstres && !cataleg[i].equals(a)) {
i++;
}
if (i < numAstres) {
pos = i;
}
return pos;
}
// Mètode booleà
public boolean esEstelSimpleVista(int i) {
return cataleg[i].getTipus() == Astre.ESTEL &&
cataleg[i].visibleAmb().equals("a simple vista");
}
// Booleà que torna true quan afegeix un astre; si no hi és o no cap, torna false
public boolean afegeix(Astre a) {
boolean res = false;
int pos = posicioDe(a);
if (pos == -1) {
if (numAstres != MAX_ASTRES) {
cataleg[numAstres++] = a;
if (esEstelSimpleVista(numAstres - 1)) {
numEstelsSimpleVista++;
}
res = true;
}
}
return res;
}
// Torna el primer Astre del catàleg més brillant que el donat o null si no n'hi ha
public Astre primerMesBrillantQue(Astre a) {
int i = 0;
while (i < numAstres && cataleg[i].mesBrillant(a) != 1) {
i++;
}
if (i < numAstres) {
return cataleg[i];
} else {
return null;
}
}
// Mètode que torna un array d'Astre amb els estels visibles
public Astre[] filtraEstelSimpleVista() {
Astre[] aux = new Astre[numEstelsSimpleVista];
int n = 0;
for (int i = 0; i < numAstres; i++) {
if (esEstelSimpleVista(i)) {
aux[n] = cataleg[i];
n++;
}
}
return aux;
}
// Mètode que torna el més brillant de tots o null si el catàleg està buit
public Astre brillaMes() {
Astre brillant = cataleg[0];
for (int i = 1; i < numAstres; i++) {
if (cataleg[i].mesBrillant(brillant) == 1) {
brillant = cataleg[i];
}
}
return brillant;
}
}Classe Borsa en Java
La classe Borsa gestiona accions financeres, controlant actualitzacions de preus i filtrant aquelles empreses que presenten beneficis positius.
public class Borsa {
// Atributs
public static final int MAX_ACCIONS = 250;
private int accions;
private Accio[] borsa;
private int ambBeneficis;
// Constructor que inicialitza els atributs
public Borsa() {
borsa = new Accio[MAX_ACCIONS];
accions = ambBeneficis = 0;
}
// Donada una acció, torna la seua posició a l'array o -1 si no hi és
private int posicioDe(Accio a) {
int result = -1;
int i = 0;
while (a.getEmpresa() != borsa[i].getEmpresa() && i < accions) {
i++;
}
if (i != accions) {
result = i;
}
return result;
}
// Mètode que afegeix o actualitza l'acció a
public boolean afegeixActualitza(Accio a) {
boolean result = false;
if (accions != MAX_ACCIONS) {
if (posicioDe(a) != -1) {
borsa[posicioDe(a)].setActual(a.getActual());
result = true;
} else {
borsa[accions] = a;
result = true;
accions++;
}
if (a.capAmunt() == true) {
ambBeneficis++;
}
}
return result;
}
// Mètode que torna la primera acció de l'array que dóna més benefici o null si no n'hi ha cap
public Accio mesBeneficisQue(Accio a) {
double beneficisA = a.getActual() - a.getApertura();
int i = 0;
while (i < accions && (borsa[i].getActual() - borsa[i].getApertura()) <= beneficisA) {
i++;
}
if (i < accions) {
return borsa[i];
} else {
return null;
}
}
// Mètode que torna un array de String que continga el nom de les empreses amb beneficis
public String[] empresaCapAmunt() {
String[] aux = new String[ambBeneficis];
int n = 0;
for (int i = 0; i < accions; i++) {
if (borsa[i].capAmunt()) {
aux[n] = borsa[i].getEmpresa();
n++;
}
}
return aux;
}
}