פורסם 2006 במאי 819 שנים class Product{public: Product(){ID=-1;} Product(int id){ID=id;} Product(const Product & p){ID=p.ID;} ~Product(){ID=-999;}; int getNumber(){return ID;} private: int ID;};איך אוכל ליצור מערך מגודל N כך שתהיה לי אפשרות להוסיף עליו אובייקטים של PRODUCTS.האם אני חייב ליצור פונקצייה שיכולה לשנות את ה-ID?הראיון היחיד שעלה לי לראש זה ליצור מערך Product kits[N];להוסיף את הפונ' ל-Product שיכולה לשנות את ה-ID ואחרי זה פשוט לשנות את ה-IDs של האובייקטים במערך.אבל נראה לי שיש שיטה יותר טובה.
פורסם 2006 במאי 819 שנים מה הכוונה "להוסיף אובייקטים"?למערך כמו שהגדרת יש גודל קבוע. כל האובייקטים נוצרים כשאתה מגדיר את המערך (ע"י ה- default constructor) ואז אתה לא באמת מכניס ומוציא איברים אלא רק משנה להם את הערך, ואז אתה צריך פונקציה שמשנה את ה- ID, או אופרטור השמה.עוד דבר - אין שום סיבה הגיונית לשים -999 ב- destructor.מה שאתה יכול לעשות זה להחזיק מערך או רשימה של מצביעים ל- Product, ואז להכניס כל פעם אובייקט חדש, שאותו אתה מאתחל עם ה- constructor השני.
פורסם 2006 במאי 819 שנים מחבר הרעיון של התוכנה שמשתמש מזין מס' , ואני אמור ליצור מחסנית של האובייקטים והמשך לעבוד עם המחנית (לדוג' לרוקן אותה) חשבתי לעבוד עם רשימה מקושרת של האובייקטים, להוסיף Product *next;למחלקה.האם זאת תהיה הצורה הנכונה לפתרון?
פורסם 2006 במאי 819 שנים מחבר משהו כזה? Product *top=NULL; Product *tmp=NULL; for(int i=0; i<5; i++) { tmp=top; top=new Product(i); top->setNext(tmp); }
פורסם 2006 במאי 819 שנים ל- SDF - אני מניח שהם רוצים שהוא יממש את זה.לפי דעתי, הפתרון הנכון יהייה ע"י רשימה מקושרת של האיברים. את המחסנית אתה יוצר ע"י מחלקה אחרת שיורשת אותה בPROTECTED, שבה יש אפשרות לבצע פעולות שמתאימות רק למחסנית.
פורסם 2006 במאי 819 שנים מחבר איני יודע מה זה SDF אבל כן, התחלתי לעשות את התרגיל ברשימה מקושרת.אני מבין שזו השיטה המתאימה?
פורסם 2006 במאי 819 שנים STL - STANDARD TEMPLATE LIBRARY, ספרייה של C++ שמכילה מימושים של כל המבנים הבסיסים שצריך לשפת OOP, הכל בצורת TEMPLATES, יש שם LINKEDLIST, QUEUE, STRING וכו'...
פורסם 2006 במאי 819 שנים מחבר מגניב את זה לא גילו לנו, כנרה שהמרצה רוצה שנלמד את השיטות. ואני מגלה את זה אחרי שישבתי מהבוקר על התוכנה? נו טוב, לפחות תירגלתי
פורסם 2006 במאי 819 שנים תראה, אני מניח שאם הוא לא גילה לכם, זה בגלל שהוא רוצה שתממשו את זה לבד כמו שנאמר, אבל כדאי להכיר
פורסם 2006 במאי 819 שנים ל- SDF - אני מניח שהם רוצים שהוא יממש את זה.לפי דעתי, הפתרון הנכון יהייה ע"י רשימה מקושרת של האיברים. את המחסנית אתה יוצר ע"י מחלקה אחרת שיורשת אותה בPROTECTED, שבה יש אפשרות לבצע פעולות שמתאימות רק למחסנית.זה לא נחוץ. עדיף להשתמש ב-containment בצורה הבאה:class List_of_products // better use templates if you can{// ....};class Stack {// ....private: List_of_products my_list;};
פורסם 2006 במאי 819 שנים Zelig - לא ממש ברור לי מה הקשר כאן למחסנית.אם אין פעולות של הכנסת/הוצאת איבר, אלא רק יצירת אוסף בגודל קבוע של אובייקטים, אין שום סיבה בעולם להשתמש ברשימה מקושרת.אפשר להשתמש במערך של אובייקטים שמוקצה דינאמית, או מערך של מצביעים.
פורסם 2006 במאי 819 שנים איני יודע מה זה SDF אבל כן, התחלתי לעשות את התרגיל ברשימה מקושרת. אני מבין שזו השיטה המתאימה? SDF זה זה שהגיב מעלי זה לא נחוץ. עדיף להשתמש ב-containment בצורה הבאה: זה שגוי. מחסנית לא מכילה רשימת אלא היא סוג של רשימה. לכן צריך להשתמש בירושה. לבומרנג - כנראה ההוראות בתרגיל(לפי מה שהבנתי) מבקשות מחסנית. לפותח התראד: למדת בסיסי נתונים? מהן הפעולות שאתה מתבקש לעשות על הנתונים(הכנסה/חיפוש/WHATEVER)? כדאי לתכנן את הצורה שאתה שומר אותם לפי הצרכים והשימוש שאתה הולך לעשות בהם.
פורסם 2006 במאי 919 שנים מחבר בקצרה מה צריכה לעשות התוכנית:1. תחילה תוכנית שואללת כמה ציוד להיצתייד2. התוכנית מדפיסה פלט עבור כל ציוד שהוכנס למחסן (יוצרים מחסנית)3. התוכנית שואלת כמה לקןחות\עובדים יש.4. מודפסת בקשה לשמו של עובד5. קולטים מהמשתמש את השם (יוצרים טור)6. חזור על 4, 5 עד כליטת כל העובדים7. שלוף עובד מסוף הטור8. העבר אותו למחסן לקבל ציוד9. הנפק לו ציוד מהמחסנית10. הדפס את שם העובד וספר הציוד שהונפק לו11. חזור על 7, 8, 9, 10 כל עוד ניתן12. שחרר זיכרון13. סייםבנוסף לכך נתונות פרוטוטיפים של הפונ' שצריך לבנות עם אופצייה שאפשר להוסיף פונ' משלנו.האמת, בזמן ששאלתי את השאלות אתמול עשיתי את רוב העבודה, נראה לי שזה לא הכי יפה אבל עם הזמן זה יבו.
פורסם 2006 במאי 919 שנים SDF זה זה שהגיב מעלי זה שגוי. מחסנית לא מכילה רשימת אלא היא סוג של רשימה. לכן צריך להשתמש בירושה. בקצרה: מחסנית אינה רשימה, אלא ממומשת ע"י רשימה. ועדיין ירושה אינה הפתרון המתאים. פתחתי דיון נפרד על מנת לדון בכך: http://hwzone.co.il/community/index.php?topic=180866.0
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.