Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I need help with the code below. It is a C program, NOT C++. It can only include '.h' libraries. I believe the program is

I need help with the code below. It is a C program, NOT C++.

It can only include '.h' libraries. I believe the program is in C++, but it must be a C program. Please help.

//

// main.c

// float_stack_class_c_9_29

//

//

/* Given the API for a (fixed size), floating point stack class, write the code to create a stack class (in C).

*/

#include

#include

#include

#include

header file to read and print the output on console

using namespace std; // Namespaces are used to organize code into logical groups and to prevent name collisions that can occur especially

//when your code base includes multiple libraries.

class float_stack

{

public:

float_stack();

size_t size() const;

bool empty() const;

float peek() const;

void pop();

void push(float value);

friend std::ostream& operator<<(std::ostream& os, const float_stack& st);

private:

void check_empty() const; // exit if true (throw exception in C++)

void check_overflow() const; // ditto

private:

static const size_t maxStack_ = 30;

size_t size_;

float data_[maxStack_];

};

float_stack::float_stack()

{

size_ = 0;

}

size_t float_stack::size() const

{

return size_;

}

bool float_stack::empty() const

{

return size_ == 0;

}

float float_stack::peek() const

{

return data_[size_-1];

}

void float_stack::pop()

{

size_--;

}

void float_stack::push(float value)

{

if(size_ < maxStack_)

{

data_[size_] = value;

size_++;

}

}

std::ostream& operator<<(std::ostream& os, const float_stack& st)

{

size_t size = st.size();

for(int i = size-1; i >= 0; i--)

os << st.data_[i] << " ";

os << endl;

return os;

}

void float_stack::check_empty() const // exit if true (throw exception in C++)

{

if(empty())

exit(1);

}

void float_stack::check_overflow() const // ditto

{

if(size_ == maxStack_)

exit(1);

}

int main(int argc, const char * argv[])

{

float_stack stack;

stack.push(23.2);

stack.push(3.12);

stack.push(54.3);

stack.push(98.0);

cout<

stack.pop();

cout<

return 0;

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

What is the basis for Security Concerns in Cloud Computing?

Answered: 1 week ago

Question

Describe the three main Cloud Computing Environments.

Answered: 1 week ago