main.cpp
Code:
#include <iostream>
#include <string>
#include "Queue.h"
#include "myData.h"
using namespace std;
void main(void)
{
myData a;
int mySize; //the amount of queue for the clinic
int number;
string name;
int Id;
cout << "Enter the queue you want for the maximum for the clinic: " ;
cin >> mySize;
cout << endl;
while (mySize <= 0)
{
cout << "Please enter number greater than 0: " ;
cin >> mySize;
cout << endl;
}
Queue * theQueue = new Queue(mySize);
system ("cls");
cout << "Welcome to my Clinic queuing system!" << endl;
cout << "-Press <1> to get a queue number" << endl;
cout << "-Press <2> to get the first patient in the queue" << endl;
cout << "-Press <3> to print all in the queue" << endl;
cout << "-Press <4> to exit from this program" << endl;
cin >> number;
bool go = false;
while (number <= 0 || number > 4)
{
cout << "Wrong input! Enter again: ";
cin >> number;
}
if (number == 1)
{
system ("cls");
cout << "Enter your name: " ;
cin >> name;
cout << "Enter your ID: ";
cin >> Id;
theQueue ->addQueue(a);
theQueue ->PrintQueueNumber();
}
else if (number == 2)
{
}
system ("pause");
}
queue.cpp
Code:
#include "Queue.h"
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
bool Queue::IsEmptyQueue(void) const
{
return (count == 0);
}
bool Queue::IsFullQueue(void) const
{
return (count == maxQueuesize);
}
void Queue::initializeQueue(void)
{
front = 0;
back = maxQueuesize - 1;
count = 0;
}
int Queue::Myfront(void) const
{
if (!IsEmptyQueue())
{
return list[front];
}
/*
else
{
return 0;
}
*/
}
int Queue::Myback(void) const
{
if (!IsFullQueue())
{
return list[back];
}
/*
else
{
return 0;
}
*/
}
void Queue::addQueue(myData )
{
if (!IsFullQueue())
{
back = (back + 1) % maxQueuesize;
count++;
list[back] = element;
}
else
{
cout << "Unable to add a full queue: " << endl;
}
}
myData Queue::removeQueue(void)
{
if (!IsEmptyQueue())
{
count --;
front = (front + 1) % maxQueuesize;
}
else
{
cout << "Cannot remove from an emty queue." << endl;
}
}
Queue::Queue(int size)
{
if (size <= 0)
{
cout << "Size must be positive." << endl;
//cout << "An array of size 10 is created for you." << endl;
//maxQueuesize = 10;
}
else
{
maxQueuesize = size;
}
front = 0;
back = maxQueuesize - 1;
count = 0;
list = new int[maxQueuesize];
}
Queue::~Queue(void)
{
delete[] list;
}
void Queue::PrintNumber(void)
{
for (int i = 0; i < maxQueuesize; i ++)
{
cout << i << "\t:\t" << list[i] << endl;
}
}
void Queue::PrintQueueNumber(void)
{
cout << "Your queue number is " << front << endl;
cout << "Your queue number is #" << back << endl;
}
queue.h
Code:
#ifndef QUEUE_H_
#define QUEUE_H_
#include <string>
using namespace std;
class Queue
{
public:
bool IsEmptyQueue(void) const;
bool IsFullQueue(void) const;
void initializeQueue(void);
int Myfront(void) const;
int Myback(void) const;
void addQueue( myData);
myData removeQueue(void);
Queue(int);
~Queue(void);
void PrintNumber(void);
void PrintQueueNumber(void);
private:
int maxQueuesize;
int count;
int front;
int back;
myData * list;
};
#endif
mydata..cpp
Code:
#include <iostream>
#include "myData.h"
#include <string>
using namespace std;
myData::myData(string myName, int idNumber)
{
name = myName;
id = idNumber;
}
myData.h
Code:
#ifndef MYDATA_H_
#define MYDATA_H_
#include <iostream>
#include <string>
using namespace std;
class myData
{
private:
string name;
int id;
public:
myData(string myName, int idNumber);
};
#endif
Seriously, i am very lousy in c++ in using composition or templates, so I wonder if there are other ways to solve the problem.