You are on page 1of 1

‫‪Clients waiting for a table‬‬

‫‪seats table 2‬‬ ‫‪seats table 4‬‬ ‫‪seats table 8‬‬ ‫‪seats table 4‬‬ ‫‪seats table 2‬‬ ‫‪seats table 6‬‬

‫‪Order‬‬ ‫‪Order‬‬ ‫‪Order‬‬


‫‪machine‬‬ ‫‪machine‬‬ ‫‪machine‬‬

‫‪Orders waiting for the kitchen‬‬

‫‪Kitchen‬‬

‫‪.‬תוכנית המדמה סימולציה של מסעדה‬


‫תרגול ‪.Object Oriented Programming‬ונושא הקשרים בין האובייקטים בסימולציה‬
‫‪.‬הסימולציה מתארת קבוצות של אנשים המגיעות למסעדה לסירוגין‬
‫‪.‬לאחר ההגעה למסעדה‪ ,‬קבוצה נכנסת לתור ההמתנה לשולחן‬
‫‪.‬כאשר נמצא שולחן לקבוצה‪ -‬הקבוצה מתיישבת‪ ,‬ומתחילה ההמתנה למכונת הזמנה‬
‫‪.‬מכונת ההזמנה לוקחת הזמנה משולחן‪ ,‬נוצר אובייקט "הזמנה"‪ ,‬והוא מועבר לתור ההזמנות‬
‫‪.‬בתור ההזמנות יש המתנה למטבח שיתפנה ויוכל לטפל בהזמנה‬
‫‪.‬בשלב מסוים ההזמנה נמסרת להכנה במטבח‪ ,‬לאחר שהיא מוכנה‪ -‬היא מועברת לשולחן‬
‫‪.‬בשולחן‪ ,‬הקבוצה שהזמינה‪ -‬אוכלת את ההזמנה‬
‫‪.‬לאחר סיום האכילה‪ ,‬הקבוצה מפנה את השולחן ועוזבת את המסעדה‬
‫‪(.‬הלקוחות‪ ,‬השולחנות‪ ,‬מכונות ההזמנה‪ ,‬המטבח‪ -‬כולם ממומשים ע"י מחלקות (אובייקטים‬
‫‪-‬בסימולציה יש משתנה ‪. pulse‬המערכת‪ ,‬בהתחלה הוא שווה ל‪ ,0-‬בכל איטרציה ערכו גדל‬
‫‪-‬כל עוד לא מתקבלת הודעת "עצירה" לולאת ה ‪.while‬המתארת את הסימולציה ‪ -‬מתבצעת‬
‫‪-‬כל איטרציה מתארת את הפעולות שצריכות להתבצע ב ‪.pulse‬שעון אחד‬
‫בכל איטרציה יש ‪ 3‬שלבים‪ :‬עדכון‪ ,‬ביצוע ‪ events‬ביצוע‪.commands ,‬‬

‫‪pulse = -1‬‬
‫{ ‪do‬‬
‫‪pulse++‬‬
‫‪A. Update system‬‬
‫‪B. Execute the events of pulse eventPulse.‬‬
‫‪C. Execute the commands of day commandPulse.‬‬
‫;(‪} while (termination command has not been found‬‬

‫(‪(Ronnen Nagal‬‬

‫‪1‬‬