<< קורס אונליין חינם
Menu
עברית Русский
מכללת פרקטיקיו
- מתחילים ללמוד חינם -
קורסי תכנות / סייבר / ניהול רשת
קורסים למנהלי רשת מסלול מנהלי רשת
עם התמחות בשרתי מיקרוסופט
מסלול סייבר והאקינג - Hacking מסלול תקשורת ואבטחת מידע
Cisco CCNA & FortiGate & Checkpoint
מומחה ווירטואליזציה
VMware & Hyper-V
מסלול לינוקס ו-DevOps מומחה ענן של אמזון - AWS מומחה ענן של מיקרוסופט - Azure מומחה ענן של גוגל - GCP מומחה שרתי SCCM - System Center
של מיקרוסופט לארגונים גדולים
קורסי תכנות מסלול Full Stack דוט-נט
יסודות התכנות
מסלול Full Stack דוט-נט
צד שרת - Backend
מסלול Full Stack דוט-נט
צד לקוח - Frontend
מסלול Full Stack Node.JS קורסי תכנות נוספים
Java / Python / PHP
מפתח אפליקציות - אנדרואיד - אייפון מפתח משחקי מחשב - Unity מפתח תוכנות לוונדוס - WinForms מסלול DBA
התמחות במסדי נתונים – SQL
בדיקות תוכנה - QA - אוטומציה בדיקות תוכנה - QA - בדיקות ידניות בדיקות תוכנה - QA - קורסים נוספים המלצות תלמידים על PracticU
פרוייקט סיום מודול 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