Sure thing
Här kommer all min kod i diverse olika klasser jag har.
Klassen HuvudProgram är huvudklassen och Prylar är en superklass till subklasserna Smycke, Apparat och Aktie. Klassen Person håller koden för att lägga till.
Jag hoppas detta ger bättre inblick.
Kom ihåg att jag inte vill ha lösningar utan redovisning. Alltså, jag vill inte bara få hjälp och sedan ingen förklaring till. Inget fusk här inte
HuvudProgram:
import java.util.*;
class HuvudProgram{
ArrayList<Person> alla = new ArrayList<Person>();
Scanner scan = new Scanner(System.in);
int readInt(String fraga){
for(;;){
try{
System.out.print(fraga);
int x=Integer.parseInt(scan.nextLine());
return x;
}
catch (NumberFormatException e){
System.out.println("Fel - skall vara numeriskt värde");
}
}
}
String readString(String fraga){
System.out.print(fraga);
String str=scan.nextLine();
return str;
}
Person getPerson(String namn){
for (Person p : alla)
if (p.getNamn().equalsIgnoreCase(namn))
return p;
return null;
}
void skapaPerson(){
String namn = readString("Skriv in den nya personens namn: ");
Person p = getPerson(namn);
if (p!=null)
System.out.println("Den personen du valt finns redan");
else{
Person ny = new Person(namn);
alla.add(ny);
}
}
void skapaPryl(){
System.out.print("\n");
Person p = getPerson(readString("Vilken person äger prylen: "));
if(p==null)
return;
System.out.print("\n");
int prylSort=readInt("Vilken sorts pryl: 1.Smycke, 2.Apparat 3.Aktie ");
Prylar ny=null;
switch(prylSort){
case 1:
boolean material;
String n = readString("Vilken sorts smycke: ");
int g=readInt(" 1.Guld \n 2.Silver \n");
while(!(g==1||g==2)){
g=readInt("Fel! Du måste mata in 1.Guld eller 2.Silver");
}
if(g==1)
material = true;
else
material= false;
int antalStenar=readInt("Antal ädelstenar: ");
ny = new Smycke(n,material,antalStenar);
break;
case 2:
//aktie
break;
case 3:
//apparat
break;
default:
System.out.println("Error: 1-3");
}
p.addPryl(ny);
System.out.print("\n");
// Prylar pr = new Prylavoid visar(smycke, aktie, apparat);
// allaPrylar.add(pr);
}
void visaRikaste(){
// System.out.print("Vem skall bort?");
}
void visaViss(){
//Koden för att visa viss
}
void borskrasch(){
//Koden för att visa borskrasch
}
void visaAlla(){
System.out.print("En person " + namn);
}
public static void main(String[]args){
HuvudProgram hp = new HuvudProgram();
System.out.println("Prylprogrammet BETA 1");
for(;;){
int val=hp.readInt("\n 1.Skapa ny person \n 2.Skapa ny pryl \n 3.Visa allt \n 4.Visa rikaste \n 5.Visa viss \n 6.Börskrasch \n 7.Avsluta \n \n Välj ett kommando: ");
System.out.println("");
switch (val){
case 1: hp.skapaPerson(); break;
case 2: hp.skapaPryl(); break;
case 3: hp.visaAlla(); break;
case 4: hp.visaRikaste(); break;
case 5: hp.visaViss(); break;
case 6: hp.borskrasch(); break;
case 7: System.out.println("Tack och hej då!");
System.exit(0);
default: System.out.println("Fel kommando");
}
}
}
}
Person:
import java.util.*;
class Person{
private ArrayList<Prylar> allaPrylar = new ArrayList<Prylar>();
private String namn;
public Person(String namn){
this.namn = namn;
}
public String getNamn(){
return namn;
}
public void addPryl(Prylar ny){
allaPrylar.add(ny);
}
}