Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ---------- Node.h -------------
- #include <iostream>
- using namespace std;
- #pragma once
- // Node.h
- class Node {
- public:
- Node();
- Node(string, double = 0);
- void set_name(string name) { _name = name; }
- void set_money(double money) { _money = money; }
- void reset_node();
- string get_name() { return _name; }
- double get_money() { return _money; }
- int get_num() { return _num; }
- void print_node();
- private:
- string _name;
- double _money;
- int _num;
- };
- // ---------- Queue.h -------------
- #include <iostream>
- using namespace std;
- #pragma once
- #include "Node.h"
- // Queue.h
- // init -- initializes a new empty queue -- creates a stack
- // addnode -- gets a node (client) and adds to the last index of the queue
- //getnode -- returns and removes the top object from the queue.
- //top node -- view inside the queue. returns the top node of the queue but the object remains
- //is empty - true if queue is empty
- class Queue {
- public:
- Queue(int = 5);
- Queue();
- //void init(int);
- void add_node(Node);
- Node get_node();
- Node top_node() { return _queue_arr[0]; }
- bool is_empty() { return _counter == 0 ? 1 : 0; }
- void print_queue();
- //// Getters
- //int get_counter();
- //int get_id();
- private:
- int _counter;
- int _id;
- int _size;
- Node* _queue_arr;
- };
- // ---------- Node.cpp -------------
- #include <iostream>
- using namespace std;
- #include "Node.h"
- // Class Function Creation - Node.cpp
- static int account_num = 1;
- Node::Node(string name1, double money1)
- {
- _name = name1;
- _money = money1;
- _num = account_num++;
- }
- Node::Node()
- {
- _money = 0;
- _name = "";
- _num = 0;
- }
- void Node::print_node()
- {
- cout << "Name: " << _name << endl;
- cout << "Money: " << _money << endl;
- cout << "Accout Number: " << _num << endl;
- cout << endl;
- }
- void Node::reset_node()
- {
- _money = 0;
- _name = "";
- _num = 0;
- }
- // ---------- Queue.cpp -------------
- #include <iostream>
- using namespace std;
- #include "Queue.h"
- #include "Node.h"
- // Queue
- int id = 1;
- Queue::Queue(int size)
- {
- _counter = 0;
- _id = id++;
- _size = size;
- _queue_arr = new Node[size];
- }
- Queue::Queue()
- {
- _counter = 0;
- _size = 0;
- _id = 0;
- }
- void Queue::add_node(Node n1)
- {
- if (_counter < _size) {
- _queue_arr[_counter] = n1;
- _counter++;
- }
- else {
- cout << endl << "Queue is full!" << endl; // TO FIX
- }
- }
- Node Queue::get_node()
- {
- Node temp = _queue_arr[0];
- for (int i = 0; i < _size - 1; i++)
- {
- _queue_arr[i] = _queue_arr[i + 1];
- }
- _counter--;
- _queue_arr[_size - 1].~Node();
- cout << endl << "Node (" << _id << "): Top-level node removed." << endl << endl << endl;
- return temp;
- }
- void Queue::print_queue()
- {
- cout << "------ (Queue " << _id << ") ------" << endl << endl;
- for (int i = 0; i < _counter; i++)
- {
- _queue_arr[i].print_node();
- }
- if (Queue::is_empty())
- cout << "- Queue " << _id << " is empty -" << endl << endl;
- else
- cout << "Queue " << _id << " Generated Successfully." << endl;
- }
- // add init
- // ---------- Source.cpp -------------
- #include <iostream>
- using namespace std;
- #include "Queue.h"
- #include "Node.h"
- // Source.cpp
- int main()
- {
- int size;
- cout << "Enter queue size: " << endl;
- cin >> size;
- Queue q1(size);
- Queue q2(4);
- Node n1("I", 10000);
- Node n2("L", 999);
- Node n3("N", 1000);
- q1.add_node(n1);
- q1.add_node(n2);
- q1.print_queue();
- cout << endl << endl;
- q2.add_node(n3);
- q2.print_queue();
- q2.get_node();
- q2.print_queue();
- return 0;
- }
RAW Paste Data