Creating class for shapes that incorporates data for squares, rectangles and circles from root data

Dependencies:   mbed

Committer:
saltire78
Date:
Sat Dec 05 13:01:33 2020 +0000
Revision:
0:65dee2095b54
.

Who changed what in which revision?

UserRevisionLine numberNew 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 }