الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة بسيطة في out put of Queue

بدأه سماهر- في 16 أكتوبر 2011 · 5 رد · 612 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ...

البرناج شغال عادي بس المشكلة في out put يطبع جملة زايدة وهي في كلاس QueueApp

 // Queue.java
// demonstrates queue
// to run this program: C>java QueueApp
////////////////////////////////////////////////////////////////
class Queue
   {
   private int maxSize;
   private long[] queArray;
   private int front;
   private int rear;
   private int nItems;
//--------------------------------------------------------------
   public Queue(int s)          // constructor
      {
      maxSize = s;
      queArray = new long[maxSize];
      front = 0;
      rear = -1;
      nItems = 0;
      }
//--------------------------------------------------------------
   public void insert(long j)   // put item at rear of queue
      {
      if(rear == maxSize-1)         // deal with wraparound
         rear = -1;
      queArray[++rear] = j;         // increment rear and insert
      nItems++;                     // one more item
      }
//--------------------------------------------------------------
   public long remove()         // take item from front of queue
      {
      long temp = queArray[front++]; // get value and incr front
      if(front == maxSize)           // deal with wraparound
         front = 0;
      nItems--;                      // one less item
      return temp;
      }
//--------------------------------------------------------------
   public long peekFront()      // peek at front of queue
      {
      return queArray[front];
      }
//--------------------------------------------------------------
   public boolean isEmpty()    // true if queue is empty
      {
      return (nItems==0);
      }
//--------------------------------------------------------------
   public boolean isFull()     // true if queue is full
      {
      return (nItems==maxSize);
      }
//--------------------------------------------------------------
   public int size()           // number of items in queue
      {
      return nItems;
      }

    public int getrear(){

    	return rear;
    }
//--------------------------------------------------------------
   }  // end class Queue

import java.util.Scanner;

class QueueApp
   {
   public static void main(String[] args)
      {

    Scanner input=new Scanner(System.in);

      Queue theQueue = new Queue(3);  


      System.out.print("Enter number : ");

      int x,ans;
      do{

       if(!theQueue.isFull()){

      x=input.nextInt();    
      theQueue.insert(x);            
    }


       System.out.print("\n\nAdd more input [1.yes _ 2.no] : ");   ////يطبع هذه الجملة زيادة؟؟؟؟ليش
       ans=input.nextInt();


    }while(ans==1 && !theQueue.isFull());




     System.out.print("\n\nThe front "+ theQueue.peekFront());            

     System.out.print("\n\nThe rear "+ theQueue.getrear());            




        if(theQueue.isFull()){

        System.out.print("\n\nFUll");
    }
    else{

        System.out.print("\n\n NOT  FUll");}

      }  // end main()
   }

يكرر الجملة Add more input [1.yes _ 2.no : ???

#2

ما معنى يطبع جملة زايدة؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

أعتقد يجب أن تضع طباعة الجملة داخل كتلة العملية

if(!theQueue.isFull())

وليس بعدها

#4
علاء الصالحي كتب:

ما معنى يطبع جملة زايدة؟

تحياتي

أقصد انو الحد الأقصي للمستخدم عشان يحط القيم هي 3 مرات فسيسئل مرتين

هذا out put

Enter number : 1

Add more input [1.yes _ 2.no] : 1

2

Add more input [1.yes _ 2.no] : 1

3

Add more input [1.yes _ 2.no] : 1 ............... هذه الجملة المفروض ماتنطبع لانة حيكون full

The front 1

The rear 2

FUll

#5
khaled refai كتب:

أعتقد يجب أن تضع طباعة الجملة داخل كتلة العملية

if(!theQueue.isFull())

وليس بعدها

جربتها ما نفعت

#6

أختي أنتي تقرئي مرتين في نفس التكرار فطيبيعي أن يحصل معك هذا لو كان عدد البيانات المسموح بها فردي

بمعنى أن التكرار يضيف 2 2 إلى الطابور

يفترض عليك إخراج الجملة الـ if من التكرار

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة