Erstmal ein herzliches Hallo.
Nun aber zum Kern meiner Frage.
Ich habe folgende Aufgabe in der Schule erhalten.
Grundlage hierfür ist eine Textdatei, in der Artikeldaten enthalten sind. Jede Textzeile hat folgenden Aufbau:
Art.Nr.: 8 Zeichen
Art.Bez.:30 Zeichen
ME: 2 Zeichen
MaxBest.:4Zeichen
MinBest.:4Zeichen
Herst.:41 Zeichen
Preis:7Zeichen
MaxPreis:7Zeichen
MinPreis:7 Zeichen
Lieferzeit:2Zeichen
Zwischen den Angaben befindet sich jeweils ein trennendes Leerzeichen. Löse folgende Aufgabe durch ein Java-Projekt:
Es ist eine Artikelliste nach Bestandswerten (=Bestand * Preis) fallend sortiert auszugeben, die in der ME (Mengeneinheit) "QM" geliefert werden. Das Unterprogramm führe bei jedem Aufruf den Vergleich benachbarter Werte aus. Die Artikelbezeichnungen und die Mengeneinheiten(ME) sind mit aus zu geben, ebenso die prozentualen Abweichungen von den Max.- und Min.-Werten (bei Verwendund der Max.- bzw. Min.-Preisen).
Ein gesondertes Unterprogramm soll die Daten aus der Textdatei lesen und bereitstellen.
Seid etlichen Wochen knaupel ich nun an dem Programm rum, es will aber einfach nicht laufen.
So sieht bisher mein Quellcode aus:
___________________________________
---------------------------------------------------------
Bitte helft mir, ich weiß mir keinen Rat mehr.
Vielen Dank für euren schnellen Rat und Hinweis.
Nun aber zum Kern meiner Frage.
Ich habe folgende Aufgabe in der Schule erhalten.
Grundlage hierfür ist eine Textdatei, in der Artikeldaten enthalten sind. Jede Textzeile hat folgenden Aufbau:
Art.Nr.: 8 Zeichen
Art.Bez.:30 Zeichen
ME: 2 Zeichen
MaxBest.:4Zeichen
MinBest.:4Zeichen
Herst.:41 Zeichen
Preis:7Zeichen
MaxPreis:7Zeichen
MinPreis:7 Zeichen
Lieferzeit:2Zeichen
Zwischen den Angaben befindet sich jeweils ein trennendes Leerzeichen. Löse folgende Aufgabe durch ein Java-Projekt:
Es ist eine Artikelliste nach Bestandswerten (=Bestand * Preis) fallend sortiert auszugeben, die in der ME (Mengeneinheit) "QM" geliefert werden. Das Unterprogramm führe bei jedem Aufruf den Vergleich benachbarter Werte aus. Die Artikelbezeichnungen und die Mengeneinheiten(ME) sind mit aus zu geben, ebenso die prozentualen Abweichungen von den Max.- und Min.-Werten (bei Verwendund der Max.- bzw. Min.-Preisen).
Ein gesondertes Unterprogramm soll die Daten aus der Textdatei lesen und bereitstellen.
Seid etlichen Wochen knaupel ich nun an dem Programm rum, es will aber einfach nicht laufen.
So sieht bisher mein Quellcode aus:
Code:
package main;
import java.io.*;
import java.text.*;
import java.util.*;
public class main {
ArrayList<String>ArtikelListe = new ArrayList<String>();
static String Einzelartikel;
int z =0;
Einzelartikel = Einlesen(z);
Artikel_Class Instanz = new Artikel_Class(Einzelartikel);
if (Einzelartikel == "Fehler") System.out.println("Lesefehler");
while (Einzelartikel != null)
return null;
{
if(Instanz.Mengeneinheit == "QM");
{
ArtikelListe.add(Einzelartikel);
z = z+1;
Einzelartikel = Einlesen(z);
}
z = z+1;
Einzelartikel = Einlesen(z);
}
if (Einzelartikel == "Fehler") System.exit(0);
System.out.println(ArtikelListe);
ArtikelListe = Bubblesort(ArtikelListe);
System.out.println("Artikelbezeichnung ME Bestand Preis Best.Wert ProzAbweichung");
System.out.println();
System.out.println(ArtikelListe);
}
public static String Einlesen (int i)
{
int pos = 126 * i;
try
{
File FileDatei = new File("ARTIKEL.txt");
FileReader FileReader = new FileReader(FileDatei);
BufferedReader Reader = new BufferedReader(FileReader);
Reader.skip(pos);
Einzelartikel = Reader.readLine();
System.out.checkError();
Reader.close();
return Einzelartikel;
}
catch (Exception Fehler)
{
System.out.println("Es trat folgender Fehler auf:" + Fehler);
return "Fehler";
}
}
public static ArrayList<String> BubbleSort(ArrayList<String> ArtikelListe)
{
int Zeilenanzahl = ArtikelListe.size() -1;
String a, b;
Double BW_a, BW_b;
for (int i=0; i<Zeilenanzahl; i++)
{
for (int j=0; j<Zeilenanzahl; j++)
{
a = ArtikelListe.get(j);
b = ArtikelListe.get(j+1);
{
}
}
}
return ArtikelListe;
}
}
___________________________________
Code:
package main;
public class Artikel_Class
{
String Artikelbezeichnung, Hersteller, Mengeneinheit;
int Artikelnummer, Bestand, Minimalbestand, Maximalbestand, Lieferzeit;
public String Einzelartikel;
public Artikel_Class(String Artikelzeile, double Preis, double Maximalpreis, double Minimalpreis, double Bestandswert, double MinBestandwert, double MaxBestandswert, Object ProzAbweichung, int MinBestandswert)
{
Artikelnummer=Integer.parseInt(Artikelzeile.substring(0,7));
Artikelbezeichnung=Artikelzeile.substring(8,38);
Mengeneinheit=Artikelzeile.substring(39,41);
Bestand=Integer.parseInt(Artikelzeile.substring(42,46));
Maximalbestand=Integer.parseInt(Artikelzeile.substring(47,51));
Minimalbestand=Integer.parseInt(Artikelzeile.substring(52,56));
Hersteller=Artikelzeile.substring(57,98);
Preis = Double.parseDouble(Artikelzeile.substring(99,106));
Maximalpreis = Double.parseDouble(Artikelzeile.substring(107,114));
Minimalpreis = Double.parseDouble(Artikelzeile.substring(115,122));
Lieferzeit=Integer.parseInt(Artikelzeile.substring(123,124));
Bestandswert = Preis*Bestand;
MinBestandwert = Minimalbestand*Minimalpreis;
MaxBestandswert = Maximalbestand*Maximalpreis;
ProzAbweichung = (MinBestandswert*100)/MaxBestandswert;
}
}
---------------------------------------------------------
Bitte helft mir, ich weiß mir keinen Rat mehr.
Vielen Dank für euren schnellen Rat und Hinweis.
Zuletzt bearbeitet: