בי מאסטר (Bmaster)מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
תפריט

חומרי לימוד

מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
חזרה למאגר2023 קיץ מועד א

מערכת תשלומים למסעדה

כולל סעיף סרטוט — בקרוב
שאלה קודמתשאלה הבאה
שאלה 11מבני נתונים2023 קיץ מועד א

מערכת תשלומים למסעדה

במסעדת "הרמה" אפשר להזמין מקום עבור סועד אחד או יותר. בסוף הארוחה כל אחד מן הסועדים משלם בנפרד על מה שאכל. כל סועד יכול לבחור לשלם במזומן, באמצעות אפליקציה, או בכרטיס אשראי. למשלמים בכרטיס אשראי יש אפשרות לפצל את החשבון לכמה תשלומים שווים.

כדי לנהל את מערכת התשלומים פותחו עבור המסעדה הממשק IPayment והמחלקות Restaurant, Reservation, Credit, App, Cash, כמפורט להלן:

  • IPayment — תשלום (ממשק): מגדיר את הפעולה double getPrice().
  • Cash — תשלום במזומן: sumCash (הסכום לתשלום, ממשי), name (שם הלקוח, מחרוזת).
  • App — תשלום באמצעות אפליקציה: sumApp (הסכום לתשלום, ממשי), phoneNumber (מספר טלפון, מחרוזת).
  • Credit — תשלום בכרטיס אשראי: num (מספר התשלומים, שלם), part (הסכום בכל תשלום, ממשי), creditNumber (מספר כרטיס האשראי, מחרוזת).
  • Reservation — הזמנה: date (תאריך ההזמנה, מחרוזת), total (סך החשבון של כל הסועדים באותה הזמנה, ממשי), payments (מערך מטיפוס IPayment השומר את התשלום ששילם כל אחד מן הסועדים באותה הזמנה; המערך ללא ערכי null).
  • Restaurant — המסעדה: array (מערך בגודל 10,000 מטיפוס Reservation), current (כמות ההזמנות השמורות, שלם). ההזמנות נשמרות ברצף במערך ואין ביניהן ערכי null.

הניחו שבכל מחלקה הוגדרו פעולות get ו-set ופעולות בונות.

משימות

אמשימה אdiagram

סרטטו תרשים הייררכייה המתאר את הקשרים בין המחלקות והממשק של הפרויקט. סמנו מימוש ממשק בעזרת חץ מקווקו (◁- - -) והכלה בעזרת מעוין מלא (◆——).

במשימה בcode

המסעדה מעניקה הנחות לפי צורת התשלום: סועד המשלם במזומן סכום מעל 200 ש"ח זכאי ל-10% הנחה; סועד המשלם באמצעות האפליקציה זכאי תמיד ל-5% הנחה; סועד המשלם בכרטיס אשראי משלם מחיר מלא. פעולת הממשק getPrice מחזירה את סך התשלום שכל סועד משלם לאחר שקלול ההנחה (כאשר אין הנחה — מחיר מלא). ממשו את getPrice בכל אחת מן המחלקות הנדרשות.

גמשימה גcode

כתבו במחלקה Reservation פעולה ששמה cashTotal המחזירה את סכום הכסף במזומן שהתקבל בהזמנה (לאחר שקלול ההנחה).

דמשימה דcode

לפניכם פעולה במחלקה Reservation:

java
1public void printDetails () {
2    for (int i = 0; i < payments.length; i++) {
3        System.out.println (payments[i].getDetails());
4    }
5}

הפעולה מדפיסה עבור כל סועד פרט לפי צורת התשלום: משלם במזומן — שמו; משלם באפליקציה — מספר הטלפון שלו; משלם בכרטיס אשראי — מספר כרטיס האשראי שלו. הוסיפו את הפעולות הנחוצות לפרויקט כדי שהפעולה printDetails תבצע את הנדרש, וציינו עבור כל פעולה שהוספתם לאיזו מחלקה או לאיזה ממשק היא שייכת. אין לשנות את הפעולה printDetails.

שאלה 11מבני נתונים2023 קיץ מועד א

מערכת תשלומים למסעדה

במסעדת "הרמה" אפשר להזמין מקום עבור סועד אחד או יותר. בסוף הארוחה כל אחד מן הסועדים משלם בנפרד על מה שאכל. כל סועד יכול לבחור לשלם במזומן, באמצעות אפליקציה, או בכרטיס אשראי. למשלמים בכרטיס אשראי יש אפשרות לפצל את החשבון לכמה תשלומים שווים.

כדי לנהל את מערכת התשלומים פותחו עבור המסעדה הממשק IPayment והמחלקות Restaurant, Reservation, Credit, App, Cash, כמפורט להלן:

  • IPayment — תשלום (ממשק): מגדיר את הפעולה double getPrice().
  • Cash — תשלום במזומן: sumCash (הסכום לתשלום, ממשי), name (שם הלקוח, מחרוזת).
  • App — תשלום באמצעות אפליקציה: sumApp (הסכום לתשלום, ממשי), phoneNumber (מספר טלפון, מחרוזת).
  • Credit — תשלום בכרטיס אשראי: num (מספר התשלומים, שלם), part (הסכום בכל תשלום, ממשי), creditNumber (מספר כרטיס האשראי, מחרוזת).
  • Reservation — הזמנה: date (תאריך ההזמנה, מחרוזת), total (סך החשבון של כל הסועדים באותה הזמנה, ממשי), payments (מערך מטיפוס IPayment השומר את התשלום ששילם כל אחד מן הסועדים באותה הזמנה; המערך ללא ערכי null).
  • Restaurant — המסעדה: array (מערך בגודל 10,000 מטיפוס Reservation), current (כמות ההזמנות השמורות, שלם). ההזמנות נשמרות ברצף במערך ואין ביניהן ערכי null.

הניחו שבכל מחלקה הוגדרו פעולות get ו-set ופעולות בונות.

משימות

אמשימה אdiagram

סרטטו תרשים הייררכייה המתאר את הקשרים בין המחלקות והממשק של הפרויקט. סמנו מימוש ממשק בעזרת חץ מקווקו (◁- - -) והכלה בעזרת מעוין מלא (◆——).

במשימה בcode

המסעדה מעניקה הנחות לפי צורת התשלום: סועד המשלם במזומן סכום מעל 200 ש"ח זכאי ל-10% הנחה; סועד המשלם באמצעות האפליקציה זכאי תמיד ל-5% הנחה; סועד המשלם בכרטיס אשראי משלם מחיר מלא. פעולת הממשק getPrice מחזירה את סך התשלום שכל סועד משלם לאחר שקלול ההנחה (כאשר אין הנחה — מחיר מלא). ממשו את getPrice בכל אחת מן המחלקות הנדרשות.

גמשימה גcode

כתבו במחלקה Reservation פעולה ששמה cashTotal המחזירה את סכום הכסף במזומן שהתקבל בהזמנה (לאחר שקלול ההנחה).

דמשימה דcode

לפניכם פעולה במחלקה Reservation:

java
1public void printDetails () {
2    for (int i = 0; i < payments.length; i++) {
3        System.out.println (payments[i].getDetails());
4    }
5}

הפעולה מדפיסה עבור כל סועד פרט לפי צורת התשלום: משלם במזומן — שמו; משלם באפליקציה — מספר הטלפון שלו; משלם בכרטיס אשראי — מספר כרטיס האשראי שלו. הוסיפו את הפעולות הנחוצות לפרויקט כדי שהפעולה printDetails תבצע את הנדרש, וציינו עבור כל פעולה שהוספתם לאיזו מחלקה או לאיזה ממשק היא שייכת. אין לשנות את הפעולה printDetails.