‫תכנות מכוון עצמים‬

‫חזרה‪ :‬שאלות תכנון קצרות‬
‫יש להגדיר את המחלקות הדרושות עבור מימוש המערכת המתוארת‪.‬‬
‫שימו לב‪ :‬יש לכתוב תרשים ‪ ,UML‬ללא מימושים!‬

‫מפתח שאלות‬
‫‪........................................................................................1‬תכנות מכוון עצמים‬
‫‪..............................................................................1‬חזרה‪ :‬שאלות תכנון קצרות‬
‫‪....................................................................................................1‬מפתח שאלות‬
‫‪..............................................................................................1‬ניהול משתלה‬
‫‪................................................................................1‬ניהול אפליקציות במחשב‬
‫‪................................................................................................2‬ניהול מכולת‬
‫‪...........................................................................................3‬ניהול חדר כושר‬
‫‪................................................................................4‬ניהול תוכנת צייר במחשב‬
‫‪ DP)..................................................7‬ניהול תוכנת צייר במחשב )גירסא למימוש עם‬
‫‪...................................................................................7‬מערכת כתיבת מבחנים‬
‫‪ DP).............................................................8‬מערכת כתיבת מבחנים )למימוש עם‬
‫‪...................................................8‬מערכת ניהול המוצרים בקליניקה של הפסיכולוגית‬

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

‫ניהול אפליקציות במחשב‬
‫יש להגדיר את המערכת הבאה לניהול הקבצים והאפליקציות במחשב‪:‬‬
‫לכל קובץ יש שם‪ ,‬תאריך יצירה‪ ,‬תאריך עדכון אחרון‪ ,‬גודל וסיומת‪.‬‬

‬‬ .‬‬ ‫ישנם מוצרי‪-‬מאפה אשר נאפים במכולת עצמה‪ .‬אפליקצית‬ ‫לעריכת קבצים גם שומרת את הקובץ האחרון שערכה‪ .‬ועבורם צריך לשמור בנוסף גם את שעת‬ ‫האפיה שלהם )לא שומרים עבורם תאריך תפוגה(‪.‬לכל‬ ‫אפליקציה נשמור את שמה‪ .‬למוצרי מזון צריך לשמור גם את תאריך התפוגה שלהם‪.‬לכל תיקיה יש שם‪ .‬‬ ‫במחשב יש תיקיה אחת ראשית שבתוכה יש את כל הקבצים והתיקיות )נדמה לכונן ‪.‬יצרן וקטגוריה‬ ‫)למשל – מוצרי ניקיון(‪ .‬‬ ‫מערכת הניהול הנ"ל תדע לספק את השירותים הבאים‪:‬‬ ‫•‬ ‫שם הקובץ הגדול ביותר ושם התיקיה המכילה אותו )קובץ‪ .‬תאריך ההתקנה שלה ותאריך שימוש אחרון‪ .‬לא תיקיה(‬ ‫•‬ ‫שם התיקיה המכילה הכי הרבה תת‪-‬תיקיות‬ ‫•‬ ‫כמות תיקיות בתיקיה מסויימת‬ ‫•‬ ‫זיהוי אפליקציית המשחק בה שיחקו הכי הרבה אנשים‬ ‫‪Computer‬‬ ‫‪1‬‬ ‫][‪-allApllications : App‬‬ ‫‪-mainFolder : Folder‬‬ ‫‪+getBiggestFile () : File‬‬ ‫‪+getFolderWithMostSubFolder() : Folder‬‬ ‫‪+getGameWithMostPlayers () : Game‬‬ ‫‪1‬‬ ‫*‬ ‫*‬ ‫‪App‬‬ ‫][‪-name : char‬‬ ‫‪-installationDate : Date‬‬ ‫‪-lastUsed : Date‬‬ ‫‪Item‬‬ ‫][‪-name : char‬‬ ‫‪-creationDate : Date‬‬ ‫‪-lastUpdate : Date‬‬ ‫‪-size : int‬‬ ‫‪+show() : void =0‬‬ ‫‪+clone() : Item* =0‬‬ ‫‪1‬‬ ‫‪Date‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪Folder‬‬ ‫‪File‬‬ ‫][‪-allItems : Item‬‬ ‫‪+getNumOfSubFolders() : int‬‬ ‫][‪-extension : char‬‬ ‫‪1‬‬ ‫‪Game‬‬ ‫‪Editor‬‬ ‫‪-file : File‬‬ ‫‪1‬‬ ‫][‪-history : GameRecord‬‬ ‫‪+getNumOfPlayers() : int‬‬ ‫*‬ ‫‪GameRecord‬‬ ‫‪1‬‬ ‫][‪-player : char‬‬ ‫‪-score : int‬‬ ‫‪-date : Date‬‬ ‫ניהול מכולת‬ ‫התוכנה היא תוכנה לניהול מלאי של מכולת‪.‬‬ ‫תאריך עדכון אחרון וגודל‪.‬ואפליקציית משחקים שומרת‬ ‫מערך ממוין של היסטוריית המשחקים )שם שחקן‪ .‬שם מוצר‪ .‬‬ ‫במחשב יש אפליקציות לעריכת קבצים )כמו אקסל‪ .‬‬ ‫כל קובץ או תיקיה יודעים להדפיס את תוכנם )קובץ את התוכן שלו ותיקיה את רשימת‬ ‫הקבצים והתיקיות שבתוכה(‪.‬‬ ‫לכל מוצר יש מספר קטלוגי הניתן באופן אוטומטי ע"י המערכת‪ .‫כמו כן יש תיקיות המכילות אוסף של קבצים ותיקיות‪ .‬תוצאה ותאריך(‪.‬וורד וכד'( ואפליקציות משחקים‪ .‬תאריך יצירה‪.\:C‬‬ ‫ונניח שיש רק כונן אחד(‪.

‬רכישת מוצר מהספק‬ ‫)הגדלת המלאי(‪ .‬ולכל מתאמן נשמור את שמו ואת תוכנית האימונים האישית‬ ‫שלו‪ .‬‬ ‫בחדר הכושר יש מתאמנים‪ .‬עדכון פרטי מוצר‪ .‬מאפה‪ .‬כולל מעקב מלאי‪.‬יש לאפשר שינוי מחירים למוצר בודד וכן לאפשר שינוי מחירים‬ ‫גורף באחוזים לקבוצת מוצרים לפי יצרן )זאת כדי לאפשר עדכון מחירים מהיר כאשר יצרן‬ ‫כלשהו מעלה את מחירי כל מוצריו בשיעור מסויים(‪.‬‬ ‫•‬ ‫הדפסת כל תרגילי הכוח שבתוכנית האימונים של מתאמן מסויים‪.‬ועבור תרגיל על מכשיר אירובי את כמות הזמן )בדקות( שעליו לעבוד ודופק היעד‬ ‫שאליו אמור להגיע‪.‫יש לתמוך בניהול של קטלוג המוצרים בחנות‪ .‬‬ ‫עבור תרגיל במכשיר כוח יש לשמור את כמות הסטים וכמות החזרות בכל סט שעליו‬ ‫לבצע‪ .‬הכוללת את תאריך העדכון האחרון של התוכנית ואת רשימת התרגילים שעליו‬ ‫לעשות באימון‪ .‬לכל מכשיר יש מספר סידורי ושם‪.‬‬ ‫הפונקציות שצריך לספק הן‪ :‬הוספת מוצר חדש‪ .‬‬ ‫בכל בוקר יש לסדר את המדפים באופן הבא‪ :‬כל מוצרי המאפה מאתמול נזרקים וכל‬ ‫מוצרי המזון שתוקפם יפוג השבוע מובאים לחזית המדף‪.‬‬ ‫ניהול חדר כושר‬ ‫בחדר הכושר יש כל מיני מכשירים‪ .‬‬ ‫לא ניתן להסיר קטגוריה או לשנות את שמה אם יש מוצרים המשוייכים אליה‪.‬תרגיל הוא עבודה על מכשיר כוח‪ .‬אין להוסיף תרגיל עבור מכשיר‬ ‫שכבר קיים בתוכנית‪.‬‬ ‫המכשירים מתחלקים ל‪ 3 -‬קבוצות‪:‬‬ ‫•‬ ‫מכשירי כוח‪ :‬עבורם גם יש לשמור את שם קבוצת השרירים המרכזית‬ ‫עליהם הם עובדים‪.‬מכשיר אירובי או מכשיר כוח‪-‬אירובי‪.‬‬ ‫•‬ ‫מכשירי אירובי‪ :‬עבורם יש לשמור גם את כמות הקלוריות הממוצעת‬ ‫הנשרפת בשעה‪.‬מזון‪ .‬שימו לב שיתכנו כמה מוצרי‪-‬מזון‬ ‫זהים עם תאריכי תפוגה שונים!‬ ‫נדרש לנהל גם את הקטגוריות‪ .‬‬ ‫לכל מוצר נקבע מחיר‪ .‬‬ ‫שאלת מחשבה‪ :‬מדוע יש את ההפרדה בין "מכשיר" לבין "תרגיל"?‬ ‫יש לתמוך בפעולות הבאות‪:‬‬ ‫•‬ ‫הוספת מתאמן לחדר הכושר‬ ‫•‬ ‫הוספת מכשיר לחדר הכושר‬ ‫•‬ ‫הוספת תרגיל לתוכנית האימון של המתאמן‪ .‬‬ ‫מוצרי ניקיון וכד' – אך כמובן ניתן להוסיף קטגוריות נוספות ‪ .‬החזרת מוצר לספק )הקטנת המלאי(‪ .‬להסירן או לשנות את שמן‪.‬‬ ‫•‬ ‫עריכה של תרגיל מסוים )בהינתן מספר מזהה של מכשיר(‪.‬‬ ‫•‬ ‫מכשיר כוח‪-‬אירובי‪ :‬משלב את התכונות של מכשיר כוח ומכשיר אירובי‪.‬מוצרי בית‪.‬שמתחלקות לכלים חד פעמיים‪ .‬‬ .

‫הדפסת כל תרגילי האירובי שבתוכנית האימונים של מתאמן מסויים‬ • ‫הסרת תרגיל מתוכנית האימונים של מתאמן מסויים )בהינתן מספר מזהה של‬ ..(‫מכשיר‬ • :++C -‫פתרון ב‬ HealthClub 1 Trainer -allTrainers : Trainer* -allDevices : Device 1 * -name : char* -program : Program 1 -lastUpdateDate : Date -allExercises : Exercise* 1 * 1 * Program 1 1 * Date Device 1 #serialNumber : int #name : char* +Device(in name : char*) Exercise #relatedDevice : Device* PowerExercise PowerDevice AerobicsDevice -mainMuscles : char* -day : int -month : int -year : int -avgCalories : int* AerobivsExercise -numOfSets : int -rehearsalsInSet : int -minutes : int -heartBit : int PowerAerobicExercise :JAVA -‫פתרון ב‬ HealthClub 1 Trainer -allTrainers : Trainer[] -allDevices : Device[] 1 * -name : char[] -program : Program 1 1 * 1 * Date * #serialNumber : int #name : char[] +Device(in name : char*) -mainMuscles : char[] -lastUpdateDate : Date -allExercises : Exercise[] 1 Device PowerDevice Program 1 -day : int -month : int -year : int «interface» Exercise AerobicsDevice 1 «interface» AerobicExercise «interface» PowerExercise Exercise #relatedDevice : Device -avgCalories : int PowerExercise -numOfSets : int -rehearsalsInSet : int AerobivsExercise -minutes : int -heartBit : int PowerAerobicExercise ‫ניהול תוכנת צייר במחשב‬ ..‫תוכנת הצייר הינה תוכנה גראפית לציור אובייקטים‬ .

(rotation‬‬ ‫לכל הצורות הסגורות מוגדר גם צבע למילוי‪ .‬‬ ‫צורות גיאומטריות מתחלקות לשתי קטגוריות‪ :‬צורות פתוחות וצורות סגורות‪.1‬‬ ‫‪.‬‬ ‫מחברים )‪ .(paste‬בנוסף‪ .(connectors‬מחבר נראה כדמוי חץ המקשר שני אובייקטים‬ ‫‪.2‬‬ ‫‪.‬והמשתמש יכול לשנות את צבעו‪.(ungroup‬‬ ‫פתרון ב‪:++C -‬‬ .‬פעולה זו נקראת ‪ .‬‬ ‫פרט למחברים‪ .‬‬ ‫כל האובייקטים של הצייר יודעים לצייר את עצמם ולשכפל את עצמם )‪copy and‬‬ ‫‪ .underlined‬‬ ‫המשתמש יכול לאגד קבוצת אובייקטים לאובייקט אחד‪ .‬כל אובייקט מחזיק צבע‪ .‬ניתן לפרק קבוצה של אובייקטים למרכיביה המקוריים )‪.‫האובייקטים המוגדרים עבור תוכנת הצייר מתחלקים למספר קטגוריות‪:‬‬ ‫צורות גיאומטריות‪.‬ומשתמש יכול לעדכן אותו כרצונו‪. (reallocation‬גודלם )‪ .‬‬ ‫הפונקציונאליות הנוספת הנדרשת עבור תיבת טקסט היא שינוי גודל האות ושינוי ה –‬ ‫‪ font‬לטקסט שהוא ‪ bold‬או ‪.3‬‬ ‫קיימים‪.group‬באופן‬ ‫סימטרי‪ .‬כל האובייקטים של ‪ Painters‬יודעים לשנות את מיקומם )‬ ‫‪.‬‬ ‫כל אובייקט יכול מקושר להיות ע" י כמה מחברים‪.‬‬ ‫תיבת טקסט‪. (scaling‬ולהסתובב סביב מרכז האובייקט )‪.

Painter 1 * GraphicItem 2 1 +group() +ungroup() * #color : string +paint() : void =0 +clone() : GraphicItem =0 +setColor() : void MoveableItem ConnectorItem +reallocation() +scale() +rotate() TextItem OpenGeometricItem GroupedItem -isUnderline : bool -isBold : bool -fontSize : int 1 CloseGeometricItem -fillColor : string JAVA -‫פתרון ב‬ Painter 1 +group() +ungroup() * * GraphicItem 2 1 #color : string +paint() : void =0 +clone() : GraphicItem =0 +setColor() : void «interface» Moveable +reallocation() +scale() +rotate() ConnectorItem OpenGeometricItem TextItem -isUnderline : bool -isBold : bool -fontSize : int CloseGeometricItem -fillColor : string GroupedItem 1 .

‫הזמן המוקצה למבחן‬ ‫ או שאלה עם‬.(‫מעבדה‬/‫ מיקום המבחן )כיתה‬.‫שאלה פתוחה או אמריקאית‬ .‫כנ"ל‬ ‫ כל אחד מהאובייקטים הנ"ל‬.‫במכללה יש מערכת להעלאת נתוני מבחנים וכן שמירת היסטורית המבנים‬ .‫אחר‬ .‫ וכן אוסף השאלות‬.‫מבחן מורכב משאלות‬ ‫ כל סעיף יכול להיות‬.('‫סעיפים וכו‬-‫סעיפים )שגם לכל סעיף בה יכולים להיות תתי‬-‫תתי‬ ‫ ועבור‬.(DP ‫ניהול תוכנת צייר במחשב )גירסא למימוש עם‬ :‫ בצירוף הדרישה‬.‫מיוצר באופן שונה ע"י כל אחת מהתוכנות‬ 1 Painter 1 +group() +ungroup() * * 1 GraphicItem «interface» PainterFactory +createConnector() : ConnectorItem +createOpenGeometricItem() : OpenGeometricItem +createClosedGeometricItem() : CloseGeometricItem +createTextItem() : TextItem +createGroupedItem() : GroupedItem PowerPointPainterFactory 2 1 #color : string «interface» Moveable +reallocation() +scale() +rotate() +paint() : void =0 +clone() : GraphicItem =0 +setColor() : void ConnectorItem VisioPainterFactory OpenGeometricItem TextItem GroupedItem -isUnderline : bool -isBold : bool -fontSize : int 1 CloseGeometricItem OpenPP OpenVisio GroupedPP -fillColor : string CloseP CloseVisio TextPP ConnectorPP GroupedVisio TextVisio ConnectorVisio ‫מערכת כתיבת מבחנים‬ .‫שאלה אמריקאית יש לספק אוסף תשובות אפשריות‬ ‫יש לתמוך באופציה של שכפול שאלה על מנת שניתן יהיה להשתמש בה בקלות במבחן‬ .‫ בשאלה פתוחה יש להשאיר מקום לכתיבת התשובה‬.Visio -‫ ו‬PowerPoint :‫ תוכנות ציור‬2 ‫ יש‬Windows -‫ב‬ .‫ שם הקורס‬:‫עבור כל מבחן יש לספק את הנתונים הבאים‬ .‫ כך שכל שאלה יכולה להיות שאלה עם סעיף אחד‬.

‬וחצי שאלות פתוחות‪.‬‬ ‫שיטת הלימוד כוללת חוברות לתלמיד ומדריכים למורה‪ .‬‬ ‫מבחן מורכב משאלות‪ .‬וכן מקוטלג כמדריך למורה או‬ ‫כחוברת עבודה לתלמיד‪ .‬‬ ‫עבור כל מבחן יש לספק את הנתונים הבאים‪ :‬שם הקורס‪ .‬‬ ‫יש לאפשר תמיכת המערכת עבור המבחנים הבאים‪:‬‬ ‫מבחן בהנדסת תוכנה תמיד יהיה במעבדה‪ .‬בעוד שלחוברת העבודה לתלמיד נוספים עזרים שהם מדבקות וערכת טושים‬ ‫צבעוניים )יש לשמור את הצבע השולט בפריט(‪.‬לכל פריט במערכת יש מספר סידורי ומחיר‪ .‬‬ ‫הזמן המוקצה למבחן‪ .‬יש לאפשר עדכון הזמנה )הוספת‪/‬הסרת פריט וכן שינוי‬ ‫כמות(‪.‬אורכו ‪ 4‬שעות‪ .‬‬ ‫מבחן בהנדסת חשמל תמיד יהיה בכיתה‪ .‬או לערכת הקניית הקריאה‪ .‬‬ .‬אורכו ‪ 3‬שעות‪ .‬וכן אוסף השאלות‪.‬‬ ‫יש לתמוך באופציה של שכפול שאלה על מנת שניתן יהיה להשתמש בה בקלות במבחן‬ ‫אחר‪.‬כל סעיף יכול להיות‬ ‫שאלה פתוחה או אמריקאית‪ .‬ויש לציין הפניה לפריט אותו רוצים‬ ‫להזמין וכן את הכמות המבוקשת‪ .‬ויש לה קטלוג המכיל את כל החוברות והספרים בשיטה‪.‬כך שכל שאלה יכולה להיות שאלה עם סעיף אחד‪ .‬מיקום המבחן )כיתה‪/‬מעבדה(‪.‫‪College‬‬ ‫‪1‬‬ ‫*‪-examsHistory : Exam‬‬ ‫*‬ ‫*‪+createExam() : Exam‬‬ ‫*‪+addExam() : Exam‬‬ ‫‪Exam‬‬ ‫*‬ ‫‪Quetsion‬‬ ‫‪+clone() : Quetsion* =0‬‬ ‫*‪1‬‬ ‫*‪-courseName : char‬‬ ‫‪-isLab : bool‬‬ ‫‪-time : int‬‬ ‫**‪-allQuestions : Quetsion‬‬ ‫‪1‬‬ ‫‪ComposedQuestion‬‬ ‫‪-numOfSubQuestions : int‬‬ ‫**‪-subQuestions : Quetsion‬‬ ‫*‪+clone() : Quetsion‬‬ ‫‪CloseQuestion‬‬ ‫‪OpenQuestion‬‬ ‫‪-numOfOptions : int‬‬ ‫‪-linesForAnswer : int‬‬ ‫*‪+clone() : Quetsion‬‬ ‫*‪+clone() : Quetsion‬‬ ‫מערכת כתיבת מבחנים )למימוש עם ‪(DP‬‬ ‫במכללה יש מערכת להעלאת נתוני מבחנים וכן שמירת היסטורית המבנים‪.‬‬ ‫מערכת ניהול המוצרים בקליניקה של הפסיכולוגית‬ ‫צפורה כ"ץ היא פסיכולוגית קלינית‪-‬חינוכית אשר כתבה שיטת לימוד להוראת החשבון‬ ‫והקריאה לכיתות א' עד ה'‪ .‬או שאלה עם‬ ‫תתי‪-‬סעיפים )שגם לכל סעיף בה יכולים להיות תתי‪-‬סעיפים וכו'(‪ .‬לפריט אשר הינו‬ ‫מדריך למורה נוספים גם עזרים נוספים שהם פלקטים לכיתה )יש לשמור את הכמות‬ ‫שלהם(‪ .‬כל פריט בשיטת הלימוד שייך או‬ ‫לערכת הקניית החשבון‪ .‬‬ ‫ניתן לבצע הזמנת פריטים מהקטלוג דרך הפקס‪ .‬כל חומר עזר מותר לשימוש‬ ‫ובכל המבחן יש שאלה אחת גדולה למימוש על מחשב‪.‬בשאלה פתוחה יש להשאיר מקום לכתיבת התשובה‪ .‬ועבור‬ ‫שאלה אמריקאית יש לספק אוסף תשובות אפשריות‪.‬כל חומר עזר מותר לשימוש‬ ‫וחצי מהשאלות הן שאלות אמריקאיות‪ .

in newQuantity : int) 1 * * Item -serialNumber : int -id : int -isMathItem : bool -price : float TeacherItem -numOfPlacats : int 1* PupilItem -color : char* 1 ItemInOrder -item : Item* -quantity : int .:‫כמו כן על המערכת לתמוך בפעולות הבאות‬ ‫מציאת פריט מסויים עפ"י המספר הסידורי שלו‬ • ‫הוספת פריט חדש לקטלוג‬ • ‫מחיקת פריט מהקטלוג‬ • ‫חישוב מחיר הזמנה‬ • Clinic Order -allItems : Item** -allItems : ItemInOrder** +findItem(in id : int) : Item* +addItem(in newItem : Item*) +removeItem(in id : int) +calcOrder(in order : Order) +addItem(in newItem : ItemInOrder) +removeItem(in toRemove : ItemInOrder*) +updateQuantity(in item : Item*.

Sign up to vote on this title
UsefulNot useful