Ich bin noch neu auf Java und wusste daher nicht, wie man eine gute Hauptklasse erstellt. Im folgenden Skript habe ich eine Beispielhauptklasse für das Warteschlangenprogramm erstellt. Wenn ich es (Wert der Warteschlange) manuell aus der Syntax eingabe, wird es auf dem Programm gespeichert und auf der Konsole angezeigt. Aber wenn ich von der Konsole aus eingabe, wird es nicht im Programm gespeichert.Wie wird der Wert der Warteschlange gespeichert/angezeigt?
package kelompok;
import java.util.Scanner;
import kelompok.Queue;
class QGUI{
private Scanner inp;
public void qgui(){
{
int pilih, enq, yes=0;
inp = new Scanner(System.in);
Queue theQueue = new Queue(100);
try{while (yes == 0){
System.out.println("1. Enqueue");
System.out.println("2. Denqueue");
System.out.print("Masukkan perintah (1/2): ");
pilih = inp.nextInt();
if (pilih == 1){
System.out.print("Masukkan queue: ");
enq = inp.nextInt();
theQueue.enqueue(enq);
}
else if (pilih == 2){
theQueue.dequeue();
}
while(!theQueue.isEmpty()) // remove and display
{ // all items
long n = theQueue.dequeue(); // (40, 50, 60, 70, 80)
System.out.print(n);
System.out.print(" ");
}
System.out.println("");
// end main()
}
}catch(Exception e){
System.out.println("Data yang dimasukan bukan angka(Integer)!");
System.out.println("Program harus di-restart!");
System.exit(100);
}
}
}
}
Die Klasse Queue
package kelompok;
public class Queue
{
private int maxSize = 100;
private long[] queArray;
private int front;
private int rear;
private int nItems;
//————————————————————–
public Queue(int s) // konstruktor
{
maxSize = s;
queArray = new long[maxSize];
front = 0;
rear = -1;
nItems = 0;
}
//————————————————————–
public void enqueue(long r) // letakkan item (data) di posisi belakang dari queue
{
if(rear == maxSize-1) //
rear = -1;
queArray[++rear] = r; //naikkan rear dan masukkan item (data) pada posisi rear yang baru
nItems++; //tambah satu item lagi
}
//————————————————————–
public long dequeue() // hapus item (data) yang berada pada posisi front
{
long temp = queArray[front++]; //dapatkan nilainya dan naikkan front
if(front == maxSize) //
front = 0;
nItems-- ; // item (data) berkurang satu
return temp;
}
//————————————————————–
public long peekFront() //
{
return queArray[front];
}
//————————————————————–
public boolean isEmpty() //benar jika queue-nya kosong
{
return (nItems==0);
}
//————————————————————–
public boolean isFull() // benar jika queue-nya penuh
{
return (nItems==maxSize);
}
//————————————————————–
public int size() // jumlah ietm (data) dalam queue
{
return nItems;
}
//————————————————————–
public int clear() // jumlah ietm (data) dalam queue
{
return (nItems = -1);
}
public void Display(){
System.out.println("Isi Queue Adalah : ");
//printing list item
for(int i=0; i<nItems; i++){
System.out.print(queArray[(front + i) % maxSize]+" ");
}
System.out.println("\n");
}//end of Display
} // end class Queue
Was meinen Sie mit "Aber wenn ich eingabe wenn aus der Konsole"? – CrazyJavaLearner
Entschuldigung. Ich meine von Scanner/Tastatur. –
Wo ist Ihre Queue-Klasse? – CrazyJavaLearner