פרויקט גמר - מודול OOP << קורס אונליין חינם
Menu
עברית Русский Srbija
מכללת פרקטיקיו
קורסים אונליין בעברית
עם הסרטונים שלנו פשוט להיות מקצוען

פרויקט גמר - מודול OOP

קורסים למנהלי רשת שלב 1 - טכנאי מחשבים - Help Desk שלב 2 - מנהל רשת מוסמך מיקרוסופט שלב 3 -מומחה בתקשורת מוסמך סיסקו שלב 4 - מומחה לינוקס ו-DevOps התמחות בשרתי דואר ווירטואליזציה התמחות ב-Storage התמחות במסדי נתונים - SQL התמחות בסייבר האקינג ואבטחת מידע קורסים נוספים למנהלי רשת
קורסי תכנות שלב 1 - יסודות התכנות שלב 2 - בניית אתרים צד שרת - Back End שלב 3 - בניית אתרים צד לקוח - Front End שלב 4 - פיתוח אפליקציות לאנדרואיד ואייפון התמחות במסדי נתונים – SQL קורסים מתקדמים בדיקות תוכנה - QA
פרוייקט סיום מודול OOP

סוג הפרוייקט: Console Application

המטלה: שומר מסך המציג צורות שונות, בצבעים שונים, בגדלים שונים ובמיקומים שונים על מסך ה-Console.

 

אפיון הפרוייקט:

על שומר המסך להכיל את הצורות הבאות:

א.      ריבוע (מכיל X ו-Y כמיקום על המסך, המהווים את מרכז הריבוע, צבע ואורך צלע)

ב.      מלבן (מכיל X ו-Y כמיקום על המסך, המהווים את מרכז המלבן, צבע, רוחב וגובה)

ג.       עיגול (מכיל X ו-Y כמיקום על המסך, המהווים את מרכז העיגול, צבע ורדיוס)

ד.      קו אנכי (מכיל X ו-Y המהווים נקודה אחת של הקו, ו-X ו-Y המהווים נקודה שנייה של הקו, צבע ועובי)

ה.     קו אופקי (מכיל X ו-Y המהווים נקודה אחת של הקו, ו-X ו-Y המהווים נקודה שנייה של הקו, צבע ועובי)

לכל יישות יש לבנות את הפעילויות הבאות:

·         ToString

·         Equals

·         InitWithRandomValues – מאתחלת את האובייקט בערכים רנדומליים כולל מיקום, גודל וצבע רנדומליים. יש לשים לב שאסור לצורה לגלוש מעבר למסך ה-Console, שהינו סה"כ 80 תווים לרוחב ו-25 תווים לגובה.

·         Draw – מציירת את הצורה על המסך ע"י כוכביות, במיקום שלה, בגודל שלה ובצבע שלה.

·         GetArea – מחזירה את שטח הפנים של הצורה

·         GetPerimeter – מחזירה את היקף הצורה

·         ShowDetails – מציגה את פרטי הצורה על חלקו השמאלי העליון של מסך ה-Console, הכוללים את מיקום הצורה, את שם הצבע שלה, את שטח הפנים של הצורה, את ההיקף שלה וכל מידע נוסף על הצורה (לדוגמה עבור עיגול יש להציג את הרדיוס, עבור מלבן, יש להציג רוחב וגובה וכו')

·         Constructor ריק.

·         Constructor מלא.

 

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

 

יש ליצור יישות נוספת הנקראת ScreenSaver שמכילה פונקציה סטטית בשם Start המריצה את שומר המסך באופן ב-Loop, באופן הבא:

א.      יש לבנות צורה אחת מבין הצורות הנ"ל, באופן רנדומלי לחלוטין (כלומר על המחשב להגריל איזו צורה תיבנה).

ב.      יש לאתחל אותה ע"י הפונקציה InitWithRandomValues.

ג.       יש להציג אותה ע"י Draw.

ד.      יש להמתין חצי שנייה ע"י הפקודה Thread.Sleep(500).

ה.     יש להציג את הפרטים שלה ע"י ShowDetails.

ו.        יש להמתין חצי שנייה נוספת.

ז.       יש לנקות את המסך ע"י Console.Clear()

ח.     יש לחזור שוב בלולאה אינסופית על הצעדים הנ"ל.

 

 

 

במידה והמשתמש לוחץ על מקש כלשהו – יש להפסיק את שומר המסך ולצאת מהתוכנית.

במידה וצורה מוגרלת כך שהמיקום שלה הינו בדיוק על מרכז המסך – יש להעלות ארוע מתוך הצורה החוצה, לתפוס את הארוע הזה ובפונקציית ה-CallBack שלו – להשמיע צליל כלשהו ע"י Console.Beep.

 

דגשים נוספים:

·         יש לבנות כל מחלקה בקובץ cs. משלה.

·         ניתן לחפש בגוגל את הנוסחאות עבור שטח פנים והיקף של כל צורה וצורה (שטח פנים של קו הינו תמיד 0. היקף הקו הינו האורך שלו.

·         ציור העיגול הוא הכי בעייתי, ולכן ניתן להוריד מהאינטרנט קוד פשוט לציור עיגול על ה-Console, או לחילופין פשוט לצייר משהו שדומה לעיגול לפי בחירתכם.

·         על הפרוייקט להיות בנוי לפי כללי OOP, מחלקות, הורשה, פולימורפיזם, אבסטרקטיות וכו'.

·         אסור שיהיו שום שגיאות קומפילציה ושום הערות קומפילציה.

·         על התוכנית לרוץ ללא שום קריסות.

·         יש לתעד כל פונקציה שבונים ע"י תיעוד XML מעל הפונקציה, וכל תיעוד קודים מורכבים או טריקיים במהלך הקוד.

·         על הקוד להיות אסתטי וברור, ללא שום מרווחים מיותרים ועם Indentations נכונים.

 

 

בהצלחה J