Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss

_so_far_away_

Mitglied
Hi. ich habe schon wieder ein Problem. ich habe ein Inventarisierungssystem gemacht und brauche, dass der Nutzer etwas löschen, ändern oder hinzufügen kann. ich habe alle diese Funktionen gemacht, jedoch weiß ich nicht, wie der nutzer das ändern kann, weil man das nur im Programm selbst ändern kann. Dankeschön im Voraus.

Hier ist der Code:
Java:
public class Inventur {
    public static Literature[] addElement(Literature[] array, Literature element) {
        Literature[]help=new Literature[array.length+1];
        int counter=0;
        for(int i=0; i<array.length +1;i++) {
            if (i==array.length) {
                help[i]= element;
            }else {
            help[i]=array[counter];
            counter++;}
        }
        array=help;
        return array;
    }
    public static Literature[] removeElement(Literature[] array, int number) {
        Literature[]help=new Literature[array.length-1];
        int counter=0;
        for(int i=0; i<array.length;i++) {
            if (i==number) {
            }else {
            help[counter]=array[i];
            counter++;}
        }
        array=help;
        return array;
    }
    public static Literature[] changeElement(Literature[] array, int number, Literature element) {
        Literature[]help=new Literature[array.length];
        for(int i=0; i<array.length;i++) {
            if (i==number) {
                help[i]=element;
            }else{
                help[i]=array[i];
            }
        }
        array=help;
        return array;
    }
public static void main (String[] args) {
        Literature[]array=new Literature[5];
            array[0]=new Literature("Der Fremde ","Albert Camus ",1942,345);
            array[1]=new Fiction("sincefiction ","Der kleine Prinz ","Antoine de Saint-Exupéry ",1943,105);
            array[2]=new NonFiction("article ","Alkohol","Guillaume Apollinaire ",2001,34);
            array[3]=new Literature("Der Hund von Baskerville ","Arthur Conan Doyle ",1901,384);
            array[4]=new Literature("Der Prozess","Franz Kafka ",1925,290);
            array=addElement(array,new Literature("Harry Potter","J.K.Rowling",2001,344));
            array=removeElement(array,2);
            array=changeElement(array, 1, new Fiction("sincefiction","Herr der Ringe","J.R.R.Tolkien",1954,410));
            for(int i=0;i<array.length;i++) {
                System.out.println(array[i].toString());
            }
    }
}
class Literature{
    String name;
    String author;
    int year;
    int amountPages;
    Literature(String name, String author, int year, int amountPages){
        this.name=name;
        this.author=author;
        this.year=year;
        this.amountPages=amountPages;
    }
    @override
    public String toString(){
    return name+", "+ author+", "+ String.valueOf(year)+", "+ String.valueOf(amountPages);   
    }
}

class Fiction extends Literature{
    String genre;
    Fiction(String genre,String name, String author, int year, int amountPages){
        super(name, author, year, amountPages);
        this.genre=genre;
        
    }
    @override
    public String toString(){
    return genre+", "+name+", "+ author+", "+ String.valueOf(year)+", "+ String.valueOf(amountPages);   
    }
    
}
class NonFiction extends Literature{
    String subject;
    NonFiction(String subject,String name, String author, int year, int amountPages){
        super(name, author, year, amountPages);
        this.subject=subject;
        
    }
    @override
    public String toString(){
    return subject+", "+name+", "+ author+", "+ String.valueOf(year)+", "+ String.valueOf(amountPages);   
    }
}
 
Du kannst dem Nutzer Möglichkeiten ausgeben: System.out.println("Drücken Sie die 1 für ...");
und dann mit der berühmten Klasse Scanner die Eingaben lesen und im Programm auswerten, ...
 
Ich habe jetzt das hier eingefügt und komme leider nicht weiter.
Java:
System.out.println("Für Einfügen drücken Sie die 1, für Löschen drücken Sie die 2, für Ändern drücken sie die 3");
            int Zahl=scan.nextInt();
                switch(Zahl){
                 case 1:
                     array=addElement(array, null);
                     break;
                 case 2:
                     array=removeElement(array, Zahl);
                     break;
                 case 3:
                     array=changeElement(array, Zahl, null);
                     for(int i=0;i<array.length;i++) {
                            System.out.println(array[i].toString());
                     break;
                }
 
Jetzt sieht es so aus:

Java:
public class Inventur {
    public static Literature[] addElement(Literature[] array, Literature element) {
        Literature[]help=new Literature[array.length+1];
        int counter=0;
        for(int i=0; i<array.length +1;i++) {
            if (i==array.length) {
                help[i]= element;
            }else {
            help[i]=array[counter];
            counter++;}
        }
        array=help;
        return array;
    }
    public static Literature[] removeElement(Literature[] array, int number) {
        Literature[]help=new Literature[array.length-1];
        int counter=0;
        for(int i=0; i<array.length;i++) {
            if (i==number) {
            }else {
            help[counter]=array[i];
            counter++;}
        }
        array=help;
        return array;
    }
    public static Literature[] changeElement(Literature[] array, int number, Literature element) {
        Literature[]help=new Literature[array.length];
        for(int i=0; i<array.length;i++) {
            if (i==number) {
                help[i]=element;
            }else{
                help[i]=array[i];
            }
        }
        array=help;
        return array;
    }
public static void main (String[] args) {
        Literature[]array=new Literature[5];
            Scanner scan= new Scanner(System.in);
            array[0]=new Literature("Der Fremde ","Albert Camus ",1942,345);
            array[1]=new Fiction("sincefiction ","Der kleine Prinz ","Antoine de Saint-Exupéry ",1943,105);
            array[2]=new NonFiction("article ","Alkohol","Guillaume Apollinaire ",2001,34);
            array[3]=new Literature("Der Hund von Baskerville ","Arthur Conan Doyle ",1901,384);
            array[4]=new Literature("Der Prozess","Franz Kafka ",1925,290);
            
                
            System.out.println("Für Einfügen drücken Sie die 1, für Löschen drücken Sie die 2, für Ändern drücken sie die 3");
            int Zahl=scan.nextInt();
                switch(Zahl){
                 case 1:
                     array=addElement(array, null);
                     break;
                 case 2:
                     array=removeElement(array, Zahl);
                     break;
                 case 3:
                     array=changeElement(array, Zahl, null);
                     for(int i=0;i<array.length;i++) {
                            System.out.println(array[i].toString());
                     break;
                }
            }
    }
}
class Literature{
    String name;
    String author;
    int year;
    int amountPages;
    Literature(String name, String author, int year, int amountPages){
        this.name=name;
        this.author=author;
        this.year=year;
        this.amountPages=amountPages;
    }
    @override
    public String toString(){
    return name+", "+ author+", "+ String.valueOf(year)+", "+ String.valueOf(amountPages);   
    }
}

class Fiction extends Literature{
    String genre;
    Fiction(String genre,String name, String author, int year, int amountPages){
        super(name, author, year, amountPages);
        this.genre=genre;
        
    }
    @override
    public String toString(){
    return genre+", "+name+", "+ author+", "+ String.valueOf(year)+", "+ String.valueOf(amountPages);   
    }
    
}
class NonFiction extends Literature{
    String subject;
    NonFiction(String subject,String name, String author, int year, int amountPages){
        super(name, author, year, amountPages);
        this.subject=subject;
        
    }
    @override
    public String toString(){
    return subject+", "+name+", "+ author+", "+ String.valueOf(year)+", "+ String.valueOf(amountPages);   
    }
}
 
Einfach erfragen was der Nutzer vor hat, ist ja erst die halbe Lösung. Wenn du weißt, das der Nutzer löschen will, dann musst du ihn noch fragen was er löschen will, also welchen Index - usw.

Warum schreibst du die Variable Zahl jetzt plötzlich groß? Zahl und number sind völlig nichtssagende Variablennamen. Das solltest du nicht tun. Warum verwendest du nicht Namen die einen Bezug zur Verwendung haben, wie elementIndex oder inputOption, dann weißt du auch später noch wozu diese Variablen gedacht sind.
 
Zuletzt bearbeitet:
Das siehst du selbst oder:
Java:
if (i==number) {
} else {
    help[counter]=array[i];
    counter++;
}
Wie wäre es mit:
Java:
if (i != number) {
    help[counter] = array[i];
    counter++;
}
 

Neue Themen


Zurück
Oben