4.מחלקות ומתודות .

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

דוגמה לשימוש ותיעוד פונקציות ציבוריות ותפריט:

Stroke.h – ספריית זיהוי כתב-יד
זוהי הספרייה המרכזית בתוכנית, והיא האחראית על ייצוג האותיות, הזנת הנתונים לתוכן וביצוע הפעולות הנחוצות לזיהוי. בספרייה עצמה מצויה מחלקת האות יחד עם מספר פונקציות שמשמשות את המחלקה. לצורך פעולתה, משתמשת הספרייה במחלקת list.
Strk_add.h – תוספות לספריית זיהוי כתב-היד
בספרייה זו מצויות פונקציות ספציפיות לתוכנית זו, הקשורות ל-stroke.h.
List.h – ספריית רשימה
ספרייה שתפקידה להכיל את מחלקת רשימה והפונקציות וטיפוסי נתונים אשר נלווים לה.
Mouse.h – ספריית העכבר
ספרייה שתפקידה להכיל את כל הפונקציות שנוגעות לקלט ע"י סמן העכבר.
Gui.h – ספריית ממשק המשתמש
ספרייה שתפקידה להכיל את המחלקות והפונקציות הנחוצות לבניית ממשק המשתמש.
Dialogs.h – ספריית חלונות הדו-שיח
ספרייה שתפקידה להכיל את החלונות שיוצגו למשתמש במקרים מסוימים. ביניהם: תיבת האישור\ביטול וסייר הקבצים.
Main.cpp – הקובץ הראשי
זהו הקובץ שמאגד תחתיו את הפרויקט. הוא מכיל בתוכו את הפונקציות הנחוצות לבניית מסכי התוכנית.

קבצי התוכנית המהודרת
Scribble.exe – קובץ ההרצה של התוכנית.
Font.chr – קובץ הגופן של התוכנית (נחוץ להצגת עברית).

English.ltr    Hebrew.ltr קבצי הנתונים: אנגלית, עברית ומספרים.



המחלקות בתוכנית

Stroke.h
מחלקת "אות" –Letter
המחלקה נועדה לייצג את האותיות כפי שנקלטו בידי המשתמש אל המסך. המחלקה מורכבת מרשימה של נקודות אשר מרכיבות את הצורה השלמה של האות. תחת מחלקה זו מאוגדות הפונקציות של הכנסת נקודה חדשה, השלמת החלקים החסרים באות, השמתה בתבנית שנקבעה, שמירתה לקובץ וזיהויה.
List.h
מחלקת רשימה – List
מחלקה זו נועדה לייצג רשימה מקושרת. הרשימה יכולה להכיל ערכים מכל טיפוס משתנה קיים. תחת מחלקה זו, יתאפשרו הפעולות הבאות על גבי הרשימה: אתחול הרשימה, "דחיפת" ערך חדש (בתחילת הרשימה) והוצאתו, הכנסת ערך לכל מקום מוגדר, עדכון ערכים קיימים ומעבר בין המצביעים לאיברים ברשימה.
Gui.h
מחלקת לחצן –Button
מחלקה אשר נועדה לייצג לחצן גרפי לחיץ אשר יוצג למשתמש. צבעו של הלחצן יחד עם מיקומו על המסך יינתנו לבחירה בעת יצירת איבר מטיפוס הלחצן. ללחצן שלושה מצבים: מצב רגיל, מצב נבחר (העכבר מרחף מעל הלחצן) ומצב לחוץ. הלחצן יעודכן למצב העכבר והצגתו תשונה בהתאם.


מחלקת לחצן בחירה – Option Button
מחלקה אשר נועדה לייצג לחצן בחירה בתוכנית. ללחצן שני מצבים אשר מהווים את בחירתו של המשתמש יחד עם מצב נבחר (בדומה לזה שבמחלקה לחצן). לחצן הבחירה מעדכן עצמו ע"פ מצב העכבר.


מחלקת חלון – Active Window
מחלקת אשר נועדה לייצג חלון על המסך עליו יוצגו הודעות או שאלות למשתמש. החלון בנוי כך שישמור בזיכרון את האזור שבו הוא מצוי (ונמחק לצורך הצגת החלון) ויחזיר את המסך למצבו הקודם בסיום תפקידו


מחלקת תיבת טקסט – Text Box
מחלקה אשר נועדה לשמור ולהציג טקסט. הגדרת תיבת הטקסט כוללת גם את גודלה המרבי. באמצעותה, ניתן להזין טקסט למערכת, להתאימו לשפה העברית, ולשומרו לקובץ.


ספריית רשימה – טיפוסים ופונקציות

הספרייה כולה משתמשת בתבנית מחלקה מסוג <Template <class T
כלומר, ניתן להשתמש ברשימה על כל טיפוס נתונים.
לפעולתה, הרשימה משתמשת ברשומה node המוגדרת בצורה הבאה:
הרשימה תורכב מרשומות אלו (חוליות), כאשר בכל אחת מהן ישנו מידע (מטיפוס לא מוגדר) ומצביע לחוליה שאחריה ברשימה.


הרשימה עצמה תוגדר בצורה הבאה: כאשר העוגן – anchor, הוא למעשה מצביע לחוליה הראשונה ברשימה.


הפונקציות בספריית הרשימה:

node<T>* next_node(node<T>*current);
פונקציה אשר תפקידה להחזיר את החוליה הבאה ברשימה.
טענת כניסה: מקבלת מצביע לחוליה הנוכחית – current.
טענת יציאה: מחזירה מצביע לחוליה הבאה ברשימה.

;(T retrieve_data(node<T>*source
פונקציה שתפקידה להחזיר את המידע השמור בחוליה.
טענת כניסה: מקבלת מצביע לחוליה הנוכחית – source.
טענת יציאה: מחזירה את המידע מסוג T שבחוליה עליה מצביע source.

;()<Void list<T>::list<T
פונקצית בנייה למחלקת רשימה. מאתחלת את הרשימה ע"י השמת ערך NULL בעוגן.
טענת כניסה: פועלת על משתנה מסוג רשימה בעת יצירתו.
טענת יציאה: מאתחלת את הרשימה.

;(Void list<T>::list<T>( const list<T>& source
פונקצית בנייה למחלקת רשימה. מאתחלת ע"פ רשימה קיימת.
טענת כניסה: פועלת על משתנה מסוג רשימה בעת יצירתו.
טענת יציאה: מאתחלת את הרשימה ומעתיקה לתוכה את ערכי הרשימה הקיימת.

;()<Void list<T>::~list<T
פונקצית פירוק למחלקת רשימה.
טענת כניסה: פועלת על משתנה מסוג רשימה בסוף תחום הכרתו.
טענת יציאה: מוחקת את כל חוליות הרשימה ומשחררת את הזיכרון שהוקצה להם.

;()node<T>* list<T>::list_anchor
פונקציה אשר נועדה לקבלת עוגן הרשימה.
טענת כניסה: פועלת על משתנה מסוג רשימה.
טענת יציאה: מחזירה את ערך anchor.

;(Void list<T>::operator =(const list<T>& source
העמסת אופרטור '=' במחלקת רשימה. נועדו להעביר ערכי רשימה אחת לאחרת.
טענת כניסה: פועלת במסגרת המחלקה ומקבלת טיפוס נוסף מסוג רשימה – source .
טענת יציאה: מעתיקה את כל ערכי source לתוך הרשימה עליה הופעלה.

;(Int list<T>::push(const T& info
פונקציה אשר נוצרה לצורך הכנסת ערך לראש הרשימה.
טענת כניסה: פועלת על משתנה מסוג רשימה ומקבלת ערך info מסוג T.
טענת יציאה: מקצה את הזיכרון הנחוץ, מכניסה את הערך שהתקבל לראש הרשימה ומחזירה ערך האם הפעולה הצליחה או לא.

;()T list<T>::pop
פונקציה שיעודה להוציא את הערך מראש הרשימה ולמחקו.
טענת כניסה: פועלת על משתנה מסוג רשימה.
טענת יציאה: מחזירה ערך מסוג T שנמצא בראש הרשימה, ומוחקת את החוליה הראשונה.

;()int list::empty
פונקציה אשר נועדה לקבוע האם הרשימה ריקה או לא.
טענת כניסה: פועלת על משתנה מסוג רשימה.
טענת יציאה: ערך אמת (1) אם הרשימה ריקה ושקר (0) אם היא איננה ריקה.

;()Void list<T>::clear
פונקציה אשר נועדה למחוק את כל ערכי הרשימה.
טענת כניסה: פועלת על משתנה מסוג רשימה.
טענת יציאה: מוחקת את כל ערכי הרשימה ומשחררת את הזיכרון שהוקצה להם.

;(Int list<T>::insert_list(node<T>* x ,const T& info
פונקציה אשר נועדה להכניס ערך חדש לתוך הרשימה.
טענת כניסה: פועלת על משתנה מסוג רשימה ומקבלת מצביע לחוליה- x ונתון info מסוג T .
טענת יציאה: מקצה את הזיכרון הנחוץ , יוצרת חוליה חדשה עם הערך infoמיד אחרי החוליה שנתקבלה ומחזירה ערך האם הפעולה הצליחה או לא.

;(Void list<T>::delete_after(node<T>* prior
פונקציה שתפקידה למחוק חוליה מן הרשימה.
טענת כניסה: פועלת על משתנה מסוג רשימה ומקבלת מצביע לחוליה prior-.
טענת יציאה: מוחקת את החוליה שלאחר prior ומשחררת את הזיכרון התפוס, תוך שמירה על סדר הרשימה.

;()node<T>* list<T>::list_end
פונקציה שמטרתה להחזיר את המצביע לחוליה האחרונה ברשימה.
טענת כניסה: פועלת על משתנה מסוג רשימה.
טענת יציאה: מחזירה את המצביע לחוליה האחרונה.

;(node<T>* list<T>::list_prev(node<T>* curr
פונקציה שמטרתה להחזיר את המצביע לחוליה הקודמת לחוליה כלשהי.
טענת כניסה: פועלת על משתנה מסוג רשימה ומקבלת מצביע לחוליה -curr.
טענת יציאה: מחזירה את המצביע לחוליה הקודמת ל-curr

;()Int list<T>::list_length
פונקציה שמטרתה להחזיר את מספר האיברים ברשימה.
טענת כניסה: פועלת על משתנה מסוג רשימה.
טענת יציאה: מחזירה משתנה שלם המבטא את אורך הרשימה.

 
לראש הדף  | לדף הקודם   | לדף הבא

 
   האתר פותח ע"י    אורט ישראל