5- Write a program that implements the equivalent functionality of strlen. This function takes a pointer to a char and determines the length of the array.

C++ for Engineers and Scientists
4th Edition
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Bronson, Gary J.
Chapter12: Adding Functionality To Your Classes
Section12.4: Class Inheritance And Polymorphism
Problem 6E
icon
Related questions
Question

I want part 5 in the image plz

please give me the full final code not ex5 only

check if it contains something wrong

this is the soution for the first 4

#include <iostream>
#include <algorithm>
using namespace std;

// Global constant variable
const int PI = 3.1415;

// Cylinder class definition
class cylinder{

// Private member variables
private:
double radius,height,diameter;
static int count;
public:

// Default constructor
cylinder(){
radius = 1;
height = 1;
count=count+1;
}

// Parametrized constructor to check that the
// variable is positive and less than 20, otherwise
// variable will be assigned its default value of 1.
cylinder(double r,double h){
if(r>0 && r<=20)
radius = r;
else
radius = 1;

if(h>0 && h<=20)
height = h;
else
height = 1;
count=count+1;
}

cylinder(const cylinder &c)
{
radius=c.radius;
height=c.height;
diameter=c.diameter;
}

// A reader for radius variable
double getRadius(){
return radius;
}

// A reader for height variable
double getHeight(){
return height;
}

// A writer for radius variable
void setRadius(double r){
radius = r;
}

// A writer for height variable
void setHeight(double h){
height = h;
}

// A reader for diameter
double getDiameter(){
return diameter;
}

// A writer for daimeter
void setDiameter(double d){
diameter = d;
}

int getCount(){
return count;
}

// A member function “volume” which
// calculates the volume of a cylinder.
double volume(){
return PI*radius*radius*height;
}

// A member function “print” which prints
// the radius, diameter, and height of a cylinder.
void print(){
cout<<"\nRadius = "<<radius;
cout<<"\nDiameter = "<<diameter;
cout<<"\nHeight = "<<height;
}

// A member function display_name() which displays “cylinder
void display_name(){
cout<<"\nCylinder volume = "<<this->volume();
}

~cylinder()
{
count=0;
}
};

int cylinder::count=0;

bool sort_by_height(cylinder* c1, cylinder *c2)
{
return (c1->getHeight()<c2->getHeight());
}

// Driver Program
int main()
{
int radius,height;
cylinder arr[5];
for (int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
{
cout<<"Enter radius: ";
cin>>radius;
cout<<"Enter height: ";
cin>>height;
cylinder c(radius,height);
//storing the value of radius in the array
arr[i]=c;
}
cylinder *head[5];
head[0]=&arr[0];
head[1]=&arr[1];
head[2]=&arr[2];

head[3]=&arr[3];

head[4]=&arr[4];

sort(head, head+5, sort_by_height);
cout<<"Cylinders sorted in ascending order of height"<<endl;
for(int i=0;i<5;i++)
{
cout<<head[i]->getHeight()<<" ";
}
return 0;
}

 

1- Implement the class “cylinder" with member variables radius and height, which
are private of type double. Define the global constant PI=3.1415 and use it in
calculating the volume of the cylinder (PI*radius*radius*height).
Implement in the class cylinder the following functions:
a- A default constructor with default values of one.
b- One constructor with two arguments. This constructor should check that the
variable is positive and does not exceed 20, otherwise the variable will be
assigned its default value of one.
c- A reader for each variable.
d- A writer for each variable.
e- A reader and a writer for diameter.
f- A member function "volume" which calculates the volume of a cylinder.
g- A member function “print" which prints the radius, diameter, and height of a
cylinder.
h- Á member function display_name() which displays "cylinder".
2- Write a program which declares an array of n cylinders (use n=5). Initialize the
array values by writing a loop which asks the user to input the radius and the
height of each array element.
3- Add to the class cylinder a private static variable which is used to count the
number of cylinders generated. For this purpose, you need to perform the
following:
a- Declare and initialize the variable and add a reader to read this variable.
b- Modify the constructors as needed and add a destructor.
c- Add also a copy constructor which uses a call by reference.
4- Declare an array of n pointers to cylinders (use n=5) and initialize it to the
addresses of the array of question 2. Sort this array of pointers to facilitate access
to cylinders in ascending order of height.
5- Write a program that implements the equivalent functionality of strlen. This
function takes a pointer to a char and determines the length of the array.
Transcribed Image Text:1- Implement the class “cylinder" with member variables radius and height, which are private of type double. Define the global constant PI=3.1415 and use it in calculating the volume of the cylinder (PI*radius*radius*height). Implement in the class cylinder the following functions: a- A default constructor with default values of one. b- One constructor with two arguments. This constructor should check that the variable is positive and does not exceed 20, otherwise the variable will be assigned its default value of one. c- A reader for each variable. d- A writer for each variable. e- A reader and a writer for diameter. f- A member function "volume" which calculates the volume of a cylinder. g- A member function “print" which prints the radius, diameter, and height of a cylinder. h- Á member function display_name() which displays "cylinder". 2- Write a program which declares an array of n cylinders (use n=5). Initialize the array values by writing a loop which asks the user to input the radius and the height of each array element. 3- Add to the class cylinder a private static variable which is used to count the number of cylinders generated. For this purpose, you need to perform the following: a- Declare and initialize the variable and add a reader to read this variable. b- Modify the constructors as needed and add a destructor. c- Add also a copy constructor which uses a call by reference. 4- Declare an array of n pointers to cylinders (use n=5) and initialize it to the addresses of the array of question 2. Sort this array of pointers to facilitate access to cylinders in ascending order of height. 5- Write a program that implements the equivalent functionality of strlen. This function takes a pointer to a char and determines the length of the array.
Expert Solution
steps

Step by step

Solved in 2 steps with 3 images

Blurred answer
Knowledge Booster
Data members
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning