משך הבחינה 2 ½ :שעות המחלקה לניהול ובקרה תעשייתית חומר עזר 2 :עמודים תכנות מתקם ושפת Java המרצה :ד"ר יואש חסידים מבחן מועד ב' -סמסטר א' תשפ"ב מתרגלים :יוסי טקיאר ,שלום דדון בהצלחה !!
קרא בעיון רב:
יש לרשום את התשובות לכל השאלות הבאות בצורה ברורה ,מובנת ובכתב קריא במחברת הבחינה. בסוף הבחינה יש להגיש את מחברות הבחינה למשגיחים. הניקוד במבחן סוכם ל .110ציון מירבי למבחן .100
שאלה - 1בניית מחלקות ( 20נק') :יש לכתוב מחלקות על פי ההנחיות הבאות:
מחלקה :PERSON א.
משתני מופע :שם פרטי ,שם משפחה ,גיל ,ת.ז (את הטיפוס יש לקבוע על פי היגיון השימוש) .לדוגמא -שם פרטי חייב להיות ערך STRING בנאים :בנאי המקבל גיל ומוודא כי הגיל הוא מעל ,16במידה וכן מעדכן את הערך במידה ולא מדפיס הודעה" :הגיל אינו תקין" ומעדכן את ערך הגיל. בנאי שני מקבל את כל ארבעת הפרמטרים ומשתמש בבנאי שבודק את הגיל. בנאי שלישי -בנאי מעתיק :יש לכתוב 2אפשרויות לבנאי מעתיק המשתמש ב 2הבנאים הקיימים במחלקה. שיטה: יש לבנות שיטה checkAgeהבודקת האם גיל האדם הוא מתחת לגיל ,16בין 16ל25 או מעל גיל .25 במידה והגיל מתחת ל 16יודפס "קטין" ,במידה ובטווח של 16עד 25יודפס "בוגר", מעל 25הודעה "מבוגר".
מחלקת יורשת :EPMLOYEE ב.
משתני מופע: - JOBמסוג .STRING - GENDERמסוג ( CHARזכר ,M -נקבה .)F - בנאים :בנאי ללא פרמטרים וקובע ערכים למשתני המופע של המחלקה. בנאי העתקה שיטה :יש לבנות שיטה - myGenderAndAgeהשיטה תשתמש בשיטה הבודקת גיל ממחלקה PERSONותדפיס בנוסף את כל משתני המופע הקיימים.
שאלה - 2השלמה והרצה ( 20נק' 5נק' לכל סעיף) :נתונות המחלקות הבאות המייצגת סטודנט ומבחן במכללה. { public class Professor ;public String name, id )public Professor(String n, String i { ;name=n ;id=i } )'השלמה סעיף א(public Professor { ;)'השלמה סעיף א(this } }
{ public class Exam
;public String course ;private boolean open_material ;public Professor prof )public Exam(String c, Professor prof1 { ;course=c ;prof=prof1 ;open_material=false } )(public Exam { 'השלמה סעיף ב } )public boolean checkProf(String id { 'השלמה סעיף ג } }
השלימו את בנאי ההעתקה במחלקת .Professor א.
השלימו את הבנאי ללא פרמטרים של מחלקת Examכך ששם הקורס “ ”Javaחומר ב. מותר יעודכן ל) true (open_materialופרופסור בשם “ ”Zofiעם ת"ז .123 השלימו את שיטת checkProfבמחלקת ,Examעל השיטה להחזיר אמת במידה ג. ות"ז הפרופסור שווה לפרמטר id יש להוסיף שיטה בשם changeProfשמקבלת אובייקט של פרופסור ומעדכן את ד. משתנה המופע profבהתאם.
שאלה - 3כתיבת שיטה ( 20נק'):
יש לכתוב שיטה בשם shitaהמקבלת כפרמטר 2שלמים aו .bהשיטה תבנה מערך של שלמים בגודל סכום הערכים המוחלטים של a+bותכניס למערך מספרים אקראיים בטווח בין הערכים המוחלטים של aו .bהשיטה תחזיר את מערך השלמים שנוצר. ניתן להשתמש בשיטת Math.Absובמחלקת Random
שאלה – 4כתיבת מחלקה ( 20נק'): יש להוסיף מחלקה בשם Exam_listאשר תכיל מערך של אובייקטים של Examמשאלה 2 (שם המערך .)ex_listיש להוסיף בנאי שיקבל כפרמטר מערך קיים של מבחנים ויעדכן את ex_listבהצבעה כפולה (לא העתקה עמוקה) .בנוסך יש להוסיף שיטה בשם checkProf שתקבל מחרוזת שם פרופסור ,nameהשיטה תחזיר את מספר המבחנים שהפרופסור משויך אליהם (כלומר מספר המבחנים שהמשתנה profמכיל את המחרוזת )name
שאלה - 5מה הפלט מחלקות ( 20נק') :נתונה התוכנית הבאה (הכוללת 3מחלקות):
מהו הפלט המדוייק של התוכנית? שימו לב להדפסות בתוך הבנאים ( 14נק') א. כמה אובייקטים ומאילו מחלקות נוצרו במהלך ריצת התוכנית? ( 3נק') ב. האם קיימות הצבעות כפולות ואם כן בין אילו אובייקטים? ( 3נק') ג.