این 9-1 را امتحان کنید. استثناهایی را به کلاس Queue اضافه کنید

Summarize this content to 400 words in Persian Lang
فایل های تمرینی: QueueFullException.javaQueueEmptyException.javaFixedQueue.javaQExcDemo.java
در این پروژه دو استثنای سفارشی برای کلاس صف (Queue) ایجاد شد که نشان دهنده شرایط خطا برای صف کامل و صف خالی است. این استثناها توسط متدهای put() و get() استفاده می شوند.
استثناهای صف:
QueueFullException: هنگام تلاش برای درج یک عنصر در یک صف کامل، استثنا ایجاد می شود.
کلاس شامل یک فیلد برای ذخیره حداکثر اندازه صف است و روش toString() را برای نمایش یک پیام سفارشی لغو می کند.
QueueEmptyException: هنگام تلاش برای حذف یک عنصر از یک صف خالی، استثنا ایجاد می شود.
کلاس همچنین برای نمایش پیامی در زمانی که صف خالی است، toString() را لغو می کند.
پیاده سازی کلاس FixedQueue:
کلاس FixedQueue برای پرتاب QueueFullException و QueueEmptyException در هنگام بروز شرایط خطا اصلاح می شود.
برای انجام این کار، put() و get() حاوی یک عبارت throws در امضای خود هستند.
با پرتاب استثناها، به کد فراخوانی اجازه میدهید تا خطاها را کارآمدتر مدیریت کند.
استثناها و کد کلاس FixedQueue:QueueFullException.java
public class QueueFullException extends Exception {
int size;
QueueFullException(int s) { size = s; }
public String toString() {
return “\nQueue is full. Maximum size is ” + size;
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
QueueEmptyException.java:
public class QueueEmptyException extends Exception {
public String toString() {
return “\nQueue is empty.”;
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
FixedQueue.java:
class FixedQueue implements ICharQ {
private char q[];
private int putloc, getloc;
public FixedQueue(int size) {
q = new char[size];
putloc = getloc = 0;
}
public void put(char ch) throws QueueFullException {
if (putloc == q.length)
throw new QueueFullException(q.length);
q[putloc++] = ch;
}
public char get() throws QueueEmptyException {
if (getloc == putloc)
throw new QueueEmptyException();
return q[getloc++];
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تست با QExcDemo:کلاس QExcDemo استفاده از صف را شبیه سازی می کند:عناصر را تا زمانی که از حد فراتر رود درج می کند و QueueFullException را پرتاب می کند.تلاش برای حذف عناصر از یک صف خالی با پرتاب QueueEmptyException.
class QExcDemo {
public static void main(String args[]) {
FixedQueue q = new FixedQueue(10);
char ch;
int i;
try {
for(i=0; i < 11; i++) {
System.out.print(“Attempting to store : ” + (char) (‘A’ + i));
q.put((char) (‘A’ + i));
System.out.println(” – OK”);
}
} catch (QueueFullException exc) {
System.out.println(exc);
}
try {
for(i=0; i < 11; i++) {
System.out.print(“Getting next char: “);
ch = q.get();
System.out.println(ch);
}
} catch (QueueEmptyException exc) {
System.out.println(exc);
}
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
رابط ICharQ به روز شده:ICharQ در حال حاضر شامل استثناهای پرتابی در متدهای put() و get() است که منعکس کننده استثناهای پرتاب شده توسط FixedQueue است.
public interface ICharQ {
void put(char ch) throws QueueFullException;
char get() throws QueueEmptyException;
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
خروجی مورد انتظار:این برنامه پیام هایی را نشان می دهد که موفقیت آمیز بودن درج و حذف عناصر و همچنین پیام های خطا را نشان می دهد:صف پر است حداکثر اندازه 10 وقتی صف پر است.صف خالی است هنگام تلاش برای حذف یک عنصر از یک صف خالی.
فایل های تمرینی:
QueueFullException.java
QueueEmptyException.java
FixedQueue.java
QExcDemo.java
در این پروژه دو استثنای سفارشی برای کلاس صف (Queue) ایجاد شد که نشان دهنده شرایط خطا برای صف کامل و صف خالی است. این استثناها توسط متدهای put() و get() استفاده می شوند.
استثناهای صف:
- QueueFullException: هنگام تلاش برای درج یک عنصر در یک صف کامل، استثنا ایجاد می شود.
- کلاس شامل یک فیلد برای ذخیره حداکثر اندازه صف است و روش toString() را برای نمایش یک پیام سفارشی لغو می کند.
- QueueEmptyException: هنگام تلاش برای حذف یک عنصر از یک صف خالی، استثنا ایجاد می شود.
- کلاس همچنین برای نمایش پیامی در زمانی که صف خالی است، toString() را لغو می کند.
پیاده سازی کلاس FixedQueue:
- کلاس FixedQueue برای پرتاب QueueFullException و QueueEmptyException در هنگام بروز شرایط خطا اصلاح می شود.
- برای انجام این کار، put() و get() حاوی یک عبارت throws در امضای خود هستند.
- با پرتاب استثناها، به کد فراخوانی اجازه میدهید تا خطاها را کارآمدتر مدیریت کند.
استثناها و کد کلاس FixedQueue:
QueueFullException.java
public class QueueFullException extends Exception {
int size;
QueueFullException(int s) { size = s; }
public String toString() {
return "\nQueue is full. Maximum size is " + size;
}
}
QueueEmptyException.java:
public class QueueEmptyException extends Exception {
public String toString() {
return "\nQueue is empty.";
}
}
FixedQueue.java:
class FixedQueue implements ICharQ {
private char q[];
private int putloc, getloc;
public FixedQueue(int size) {
q = new char[size];
putloc = getloc = 0;
}
public void put(char ch) throws QueueFullException {
if (putloc == q.length)
throw new QueueFullException(q.length);
q[putloc++] = ch;
}
public char get() throws QueueEmptyException {
if (getloc == putloc)
throw new QueueEmptyException();
return q[getloc++];
}
}
تست با QExcDemo:
کلاس QExcDemo استفاده از صف را شبیه سازی می کند:
عناصر را تا زمانی که از حد فراتر رود درج می کند و QueueFullException را پرتاب می کند.
تلاش برای حذف عناصر از یک صف خالی با پرتاب QueueEmptyException.
class QExcDemo {
public static void main(String args[]) {
FixedQueue q = new FixedQueue(10);
char ch;
int i;
try {
for(i=0; i < 11; i++) {
System.out.print("Attempting to store : " + (char) ('A' + i));
q.put((char) ('A' + i));
System.out.println(" - OK");
}
} catch (QueueFullException exc) {
System.out.println(exc);
}
try {
for(i=0; i < 11; i++) {
System.out.print("Getting next char: ");
ch = q.get();
System.out.println(ch);
}
} catch (QueueEmptyException exc) {
System.out.println(exc);
}
}
}
رابط ICharQ به روز شده:
ICharQ در حال حاضر شامل استثناهای پرتابی در متدهای put() و get() است که منعکس کننده استثناهای پرتاب شده توسط FixedQueue است.
public interface ICharQ {
void put(char ch) throws QueueFullException;
char get() throws QueueEmptyException;
}
خروجی مورد انتظار:
این برنامه پیام هایی را نشان می دهد که موفقیت آمیز بودن درج و حذف عناصر و همچنین پیام های خطا را نشان می دهد:
صف پر است حداکثر اندازه 10 وقتی صف پر است.
صف خالی است هنگام تلاش برای حذف یک عنصر از یک صف خالی.