מימוש מלבן
חלק מהיחידה תכנות מונחה עצמים במסלול ה-C של Coddy. שיעור 46 מתוך 61.
אתגר
קלנמשיך לבנות את פרויקט Shape Drawer באמצעות מימוש של Rectangle: צורה קונקרטית נוספת שמכילה את המבנה הבסיסי Shape, בדיוק כפי שעשינו עם Circle.
בהתבסס על הפרויקט הקיים שלך, תוסיף פונקציונליות של מלבן בקבצים הבאים:
shape.h: השאר את ממשק הבסיסShapeשלך, עם טיפוסי מצביעי הפונקציותDrawFuncו-AreaFuncמהשיעורים הקודמים.circle.hו-circle.c: השאר את המימוש של Circle מהשיעור הקודם.rectangle.h: הגדר כאן את המבנהRectangleשלך. מלבן מכיל אתShapeבתור האיבר הראשון שלו, ומוסיף שדותwidthו-height(שניהם מסוגdouble). הצהר על פונקציית בנאיcreate_rectangleשמקבלת פרמטרים של רוחב וגובה ומחזירהRectangleלפי ערך.rectangle.c: ממש את ההתנהגות הייחודית למלבן:draw_rectangle: מדפיסהDrawing Rectangle with width: X.XX and height: X.XX(שני הערכים מוצגים עם 2 ספרות אחרי הנקודה העשרונית)area_rectangle: מחזירה רוחב × גובהcreate_rectangle: מאתחלתRectangle, מחברת את מצביעי הפונקציות שלShapeהמוטמע לפונקציות של המלבן, מגדירה את הממדים ומחזירה את המלבן
main.c: הדגם ששתי הצורות פועלות דרך אותו ממשק. קרא שני קלטים: רוחב וגובה עבור מלבן. צור מלבן באמצעות פונקציית הבנאי שלך, ואז קרא גם ל-drawוגם ל-areaדרך מצביעי הפונקציות שלShapeהמוטמע. הדפס את השטח עם 2 ספרות אחרי הנקודה העשרונית.
התוכנית שלך תקבל שני קלטים: ערכי width ו-height (כמספרים עשרוניים).
פלט לדוגמה כאשר הקלטים הם 4.0 ו-3.0:
Drawing Rectangle with width: 4.00 and height: 3.00
Area: 12.00פלט לדוגמה כאשר הקלטים הם 7.5 ו-2.5:
Drawing Rectangle with width: 7.50 and height: 2.50
Area: 18.75בדיוק כמו עם Circle, ה-Rectangle מכיל את Shape בתור האיבר הראשון שלו, וכך אפשר לגשת למצביעי הפונקציות דרך האיבר המוטמע. הדפוס העקבי הזה הוא שמאפשר פולימורפיזם: אפשר להתייחס לשתי הצורות באופן אחיד דרך ממשק ה-Shape שלהן. זכור להשתמש בשומרי הכללה בכל קובצי הכותרת.
נסו בעצמכם
#include <stdio.h>
#include "shape.h"
#include "rectangle.h"
int main() {
double width, height;
scanf("%lf", &width);
scanf("%lf", &height);
// TODO: צור מלבן באמצעות create_rectangle(width, height)
// TODO: קרא ל־draw דרך מצביע הפונקציה של Shape המוטמע
// TODO: קרא ל־area דרך מצביע הפונקציה של Shape המוטמע
// TODO: הדפס את השטח עם 2 ספרות אחרי הנקודה העשרונית: "Area: %.2f\n"
return 0;
}כל השיעורים ביחידה תכנות מונחה עצמים
4כימוס
המושג של מצביעים אטומיםהגדרת מבנים אטומיםפונקציות Get ו-Setאימות ב-Settersסיכום: הקופסה הסודית2אובייקטים ומתודות
מבנים כאובייקטיםמצביע 'Self'נכונות constמצביע לעומת ערךמתודות עזרחזרה: מנהל נקודות5פרויקט: חשבון בנק פשוט
הגדרת הפרויקטמימוש החשבוןתרגלו בעצמכם: קומפיילר C אונליין