Hallo,
ich würde gerne mittels einem Stack oder Queue Programm eine Datei einlesen die bearbeiten, z.b. sortieren oder so was in der Richtung und diese dann wieder als Datei ausgeben. Aber wie mache ich das? Hab das Forum schon durchsucht aber nix brauchbares gefunden
. Ist wichtig, da ich morgen ne Klausur drüber schreib. Danke schonmal =).
mfg
Das wäre das Queue:
und das die Stack:
--------------------------------------------------
--------------------------------------------------------------------------
ich würde gerne mittels einem Stack oder Queue Programm eine Datei einlesen die bearbeiten, z.b. sortieren oder so was in der Richtung und diese dann wieder als Datei ausgeben. Aber wie mache ich das? Hab das Forum schon durchsucht aber nix brauchbares gefunden
mfg
Das wäre das Queue:
Java:
import java.io.IOException;
import java.util.Scanner;
public class Queue {
int q[];
int head = 0;
int tail = 0;
int size;
boolean underflow = false;
boolean overflow = false;
public Queue (int size){
this.size = size;
q = new int[size];
}
public void put (int a){
overflow = (tail+1)%size == head;
if(!overflow){
q[tail] = a;
tail = (tail+1);
}
}
public int get(){
if(!underflow){
int a = q[head];
head = (head+1);
return a;
}
else return -1;
}
public static void main (String args [])throws IOException{
//args[0] Größe des Stacks übergeben
Queue mQ = new Queue(Integer.parseInt(args[0]));
Scanner sc = new Scanner(System.in);
int b = 1;
while( b == 1 || b == 2){
System.out.println("1 - get \n2 - put");
int auswahl = sc.nextInt();
b = auswahl;
switch(auswahl){
case 1:
System.out.println("Zahl ist: " + mQ.get());
break;
case 2:
System.out.println("Geben sie eine Zahl ein: ");
mQ.put(sc.nextInt());
break;
default:
System.out.println("Programm beendet");
break;
}
}
}
}
und das die Stack:
Java:
package Verwaltung;
public class Stack {
//Datenfeld
Artikel s[];
int lenght;
int merker;
boolean overflow;
boolean underflow;
//Konstruktor
public Stack(int size){
merker=size;
s=new Artikel[size];
lenght=0;
overflow=false;
underflow=false;
}
public int arraySize(){
return merker;
}
public int counter(){
return lenght;
}
public void push (Artikel a){
overflow = lenght >= s.length;
if (!overflow){
s[lenght]=a;
lenght++;
}
}
public Artikel pop(){
underflow=lenght==0;
if (!underflow){
lenght--;
return s[lenght];
}
else{
return null;
}
}
}
Java:
package Verwaltung;
import java.util.*;
public class Artikel {
//Datenfeld
private String bezeichnung;
private Date lieferzeit;
//Methoden
public String getBezeichnung()
{
return bezeichnung;
}
public Date getLieferzeit()
{
return lieferzeit;
}
//Konstuktor
public Artikel(String bezeichnung)
{
this.bezeichnung=bezeichnung;
lieferzeit=Calendar.getInstance().getTime();
}
}
Java:
package Verwaltung;
import static Verwaltung.IOTools.*;
public class ExecuteClass {
//Datenfeld
int menueNumber;
Stack stapel;
int size;
//Konstruktor
private ExecuteClass(){
stapel = new Stack(readInteger("Größe des Lagers: "));
}
/**
* @param args
*/
public static void main(String[] args) {
ExecuteClass exe = new ExecuteClass();
exe.showOptions();
exe.handleOptions();
}
private void handleOptions() {
menueNumber=readInteger("=>");
switch (menueNumber){
case (1):
if (stapel.counter()>=stapel.arraySize()){
System.out.println("Lager ist voll.");
handleOptions();}
else{
Artikel a;
a=new Artikel(readString("Artikelname: "));
stapel.push(a);
handleOptions();}
break;
case (2):
try{
//System.out.println(""+ stapel.getBezeichnung());
Artikel raus;
raus = stapel.pop();
System.out.println(raus.getBezeichnung());
System.out.println(raus.getLieferzeit());
handleOptions();
}
catch (Exception e){
System.out.println("---");
handleOptions();
}
break;
case (3):
System.out.println("Auf Wiedersehen");
System.exit(0);
break;
default:
System.out.println("--");
handleOptions();
break;
}
}
private void showOptions() {
System.out.println("Menü");
System.out.println("\t 1.) Einlagern");
System.out.println("\t 2.) Ausgabe");
System.out.println("\t 3.) Programm beenden");
}
}