Victor Szultka
/
CPS_Lab4_OOPS
Creating class for shapes that incorporates data for squares, rectangles and circles from root data
main.cpp@0:65dee2095b54, 2020-12-05 (annotated)
- Committer:
- saltire78
- Date:
- Sat Dec 05 13:01:33 2020 +0000
- Revision:
- 0:65dee2095b54
.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
saltire78 | 0:65dee2095b54 | 1 | #include "mbed.h" // include mbed header |
saltire78 | 0:65dee2095b54 | 2 | |
saltire78 | 0:65dee2095b54 | 3 | Serial pc(USBTX,USBRX);//tx,rx // include serial port |
saltire78 | 0:65dee2095b54 | 4 | |
saltire78 | 0:65dee2095b54 | 5 | float pi = 3.14159; // define abreviated value for pi |
saltire78 | 0:65dee2095b54 | 6 | |
saltire78 | 0:65dee2095b54 | 7 | class Shape{ // create parent class for shapes |
saltire78 | 0:65dee2095b54 | 8 | |
saltire78 | 0:65dee2095b54 | 9 | protected: // create values protected for use of child classes |
saltire78 | 0:65dee2095b54 | 10 | int _a, _b; // global variables for length/radius and breadth |
saltire78 | 0:65dee2095b54 | 11 | |
saltire78 | 0:65dee2095b54 | 12 | public: // publicly viewable data |
saltire78 | 0:65dee2095b54 | 13 | Shape(int a) // constructor for single integer (square or circle) |
saltire78 | 0:65dee2095b54 | 14 | { |
saltire78 | 0:65dee2095b54 | 15 | _a = a; |
saltire78 | 0:65dee2095b54 | 16 | } |
saltire78 | 0:65dee2095b54 | 17 | |
saltire78 | 0:65dee2095b54 | 18 | Shape(int a, int b) // constructor for 2 integers (rectangle) |
saltire78 | 0:65dee2095b54 | 19 | { |
saltire78 | 0:65dee2095b54 | 20 | _a = a; |
saltire78 | 0:65dee2095b54 | 21 | _b = b; |
saltire78 | 0:65dee2095b54 | 22 | } |
saltire78 | 0:65dee2095b54 | 23 | |
saltire78 | 0:65dee2095b54 | 24 | int area() // constructor for output |
saltire78 | 0:65dee2095b54 | 25 | { |
saltire78 | 0:65dee2095b54 | 26 | pc.printf ("Parent class area"); |
saltire78 | 0:65dee2095b54 | 27 | return 0; |
saltire78 | 0:65dee2095b54 | 28 | } |
saltire78 | 0:65dee2095b54 | 29 | |
saltire78 | 0:65dee2095b54 | 30 | int perimeter() // constructor for output |
saltire78 | 0:65dee2095b54 | 31 | { |
saltire78 | 0:65dee2095b54 | 32 | pc.printf ("Parent class perimeter"); |
saltire78 | 0:65dee2095b54 | 33 | return 0; |
saltire78 | 0:65dee2095b54 | 34 | } |
saltire78 | 0:65dee2095b54 | 35 | |
saltire78 | 0:65dee2095b54 | 36 | }; |
saltire78 | 0:65dee2095b54 | 37 | |
saltire78 | 0:65dee2095b54 | 38 | class Rectangle: public Shape // class for rectangles |
saltire78 | 0:65dee2095b54 | 39 | { |
saltire78 | 0:65dee2095b54 | 40 | public: // linking to parent class |
saltire78 | 0:65dee2095b54 | 41 | Rectangle(int a, int b ):Shape(a, b) { } |
saltire78 | 0:65dee2095b54 | 42 | |
saltire78 | 0:65dee2095b54 | 43 | int area () // calculations for area |
saltire78 | 0:65dee2095b54 | 44 | { |
saltire78 | 0:65dee2095b54 | 45 | int area = _a*_b; // length * breadth |
saltire78 | 0:65dee2095b54 | 46 | pc.printf ("Rectangle - area : %d\n\r", area); // print statement |
saltire78 | 0:65dee2095b54 | 47 | return 0; // return class |
saltire78 | 0:65dee2095b54 | 48 | } |
saltire78 | 0:65dee2095b54 | 49 | |
saltire78 | 0:65dee2095b54 | 50 | int perimeter() // calculation for perimeter length |
saltire78 | 0:65dee2095b54 | 51 | { |
saltire78 | 0:65dee2095b54 | 52 | int perimeter = (2*_a)+(2*_b); // 2*length + 2*breadth |
saltire78 | 0:65dee2095b54 | 53 | pc.printf ("Rectangle - perimeter : %d\n\r", perimeter); // print statement |
saltire78 | 0:65dee2095b54 | 54 | return 0; // return class |
saltire78 | 0:65dee2095b54 | 55 | } |
saltire78 | 0:65dee2095b54 | 56 | |
saltire78 | 0:65dee2095b54 | 57 | }; |
saltire78 | 0:65dee2095b54 | 58 | |
saltire78 | 0:65dee2095b54 | 59 | class Square: public Shape // class for squares |
saltire78 | 0:65dee2095b54 | 60 | { |
saltire78 | 0:65dee2095b54 | 61 | public: |
saltire78 | 0:65dee2095b54 | 62 | Square(int a): Shape(a) { } // linking to parent class |
saltire78 | 0:65dee2095b54 | 63 | |
saltire78 | 0:65dee2095b54 | 64 | int area () // calculations for area |
saltire78 | 0:65dee2095b54 | 65 | { |
saltire78 | 0:65dee2095b54 | 66 | int area = _a*_a; // length squared |
saltire78 | 0:65dee2095b54 | 67 | pc.printf ("Square - area : %d\n\r", area); // print statement |
saltire78 | 0:65dee2095b54 | 68 | return 0; // return class |
saltire78 | 0:65dee2095b54 | 69 | } |
saltire78 | 0:65dee2095b54 | 70 | int perimeter() // calculations for perimeter |
saltire78 | 0:65dee2095b54 | 71 | { |
saltire78 | 0:65dee2095b54 | 72 | int perimeter = 4*_a; // 4*length |
saltire78 | 0:65dee2095b54 | 73 | pc.printf ("Square - perimeter : %d\n\r", perimeter); // print statement |
saltire78 | 0:65dee2095b54 | 74 | return 0; // return class |
saltire78 | 0:65dee2095b54 | 75 | } |
saltire78 | 0:65dee2095b54 | 76 | }; |
saltire78 | 0:65dee2095b54 | 77 | |
saltire78 | 0:65dee2095b54 | 78 | class Circle: public Shape // class for circles |
saltire78 | 0:65dee2095b54 | 79 | { |
saltire78 | 0:65dee2095b54 | 80 | public: |
saltire78 | 0:65dee2095b54 | 81 | Circle(int a): Shape(a) { } // linking to parent class |
saltire78 | 0:65dee2095b54 | 82 | |
saltire78 | 0:65dee2095b54 | 83 | int area () // calculation for area |
saltire78 | 0:65dee2095b54 | 84 | { |
saltire78 | 0:65dee2095b54 | 85 | float area = pi*_a*_a; // pi r squared |
saltire78 | 0:65dee2095b54 | 86 | pc.printf ("Circle - area : %.2f\n\r", area); // print statement |
saltire78 | 0:65dee2095b54 | 87 | return 0; // return class |
saltire78 | 0:65dee2095b54 | 88 | } |
saltire78 | 0:65dee2095b54 | 89 | int perimeter() // calculation for circumference |
saltire78 | 0:65dee2095b54 | 90 | { |
saltire78 | 0:65dee2095b54 | 91 | float perimeter = 2*pi*_a; // 2 pi r |
saltire78 | 0:65dee2095b54 | 92 | pc.printf ("Circle - circumference : %.2f\n\r", perimeter); // print statement |
saltire78 | 0:65dee2095b54 | 93 | return 0; // return class |
saltire78 | 0:65dee2095b54 | 94 | } |
saltire78 | 0:65dee2095b54 | 95 | }; |
saltire78 | 0:65dee2095b54 | 96 | |
saltire78 | 0:65dee2095b54 | 97 | // Main function for the program |
saltire78 | 0:65dee2095b54 | 98 | int main() // main program |
saltire78 | 0:65dee2095b54 | 99 | { |
saltire78 | 0:65dee2095b54 | 100 | |
saltire78 | 0:65dee2095b54 | 101 | Rectangle myRectangle(10,7); // call class for rectangle |
saltire78 | 0:65dee2095b54 | 102 | myRectangle.area(); |
saltire78 | 0:65dee2095b54 | 103 | myRectangle.perimeter(); |
saltire78 | 0:65dee2095b54 | 104 | |
saltire78 | 0:65dee2095b54 | 105 | Square mySquare(10); // Call class for square |
saltire78 | 0:65dee2095b54 | 106 | mySquare.area(); |
saltire78 | 0:65dee2095b54 | 107 | mySquare.perimeter(); |
saltire78 | 0:65dee2095b54 | 108 | |
saltire78 | 0:65dee2095b54 | 109 | Circle myCircle(10); // call class for circle |
saltire78 | 0:65dee2095b54 | 110 | myCircle.area(); |
saltire78 | 0:65dee2095b54 | 111 | myCircle.perimeter(); |
saltire78 | 0:65dee2095b54 | 112 | |
saltire78 | 0:65dee2095b54 | 113 | } |