国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

cpp12.10

2019-11-11 02:37:09
字體:
供稿:網(wǎng)友

queue.h

#PRagma onceclass Customer{private:	long arrive;	int processtime;public:	Customer() { arrive = processtime = 0; }	void set(long when);	long when() const { return arrive; }	int ptime() const { return processtime; }};typedef Customer Item;class Queue{private:	struct Node { Item item; struct Node*next; };	enum{Q_SIZE=10};	Node*front;	Node*rear;	int items;	const int qsize;	Queue(const Queue & q):qsize(0){}	Queue & Operator=(const Queue & q) { return *this; }public:	Queue(int qs = Q_SIZE);	~Queue();	bool isempty() const;	bool isfull() const;	int queuecount() const;	bool enqueue(const Item &item);	bool dequeue(Item &item);};queue.cpp

#include"queue.h"#include<cstdlib>Queue::Queue(int qs) : qsize(qs){	front = rear = NULL;	items = 0;}Queue::~Queue(){	Node*temp;	while (front != NULL)	{		temp = front;		front = front->next;		delete temp;	}}bool Queue::isempty() const{	return items == 0;}bool Queue::isfull() const{	return items == qsize;}int Queue::queuecount() const{	return items;}bool Queue::enqueue(const Item & item){	if (isfull())		return false;	Node*add = new Node;	add->item = item;	add->next = NULL;	items++;	if (front == NULL)		front = add;	else		rear->next = add;	rear = add;	return true;}bool Queue::dequeue(Item & item){	if (front == NULL)		return false;	item = front->item;	items--;	Node*temp = front;	front = front->next;	delete temp;	if (items == 0)		rear = NULL;	return true;}void Customer::set(long when){	processtime = std::rand() % 3 + 1;	arrive = when;}

bank.cpp

#include<iostream>#include<cstdlib>#include<ctime>#include "queue.h"const int MIN_PER_HR = 60;bool newcustomer(double x);int main(){	using std::cin;	using std::cout;	using std::endl;	using std::ios_base;	std::srand(std::time(0));	cout << "Case Stady: Bank of Heather Automatic Teller/n";	cout << "Enter maximum Size of queue: ";	int qs;	cin >> qs;	Queue line(qs);	cout << "Enter the number of simulation hours: ";	int hours;	cin >> hours;	long cyclelimit = MIN_PER_HR*hours;	cout << "Enter the average number of customers per hours: ";	double perhour;	cin >> perhour;	double min_per_cust;	min_per_cust = MIN_PER_HR / perhour;	Item temp;	long turnaways = 0;	long customers = 0;	long served = 0;	long sum_line = 0;	int wait_time = 0;	long line_wait = 0;	for (int cycle = 0; cycle < cyclelimit; cycle++)	{		if (newcustomer(min_per_cust))		{			if (line.isfull())				turnaways++;			else			{				customers++;				temp.set(cycle);				line.enqueue(temp);			}		}		if (wait_time <= 0 && !line.isempty())		{			line.dequeue(temp);			wait_time = temp.ptime();			line_wait += cycle - temp.when();			served++;		}		if (wait_time > 0)			wait_time--;		sum_line += line.queuecount();	}	if (customers > 0)	{		cout << "customers accepted: " << customers << endl;		cout << " customers served: " << served << endl;		cout << "     turnaways: " << turnaways << endl;		cout << "average queue size: ";		cout.precision(2);		cout.setf(ios_base::fixed, ios_base::floatfield);		cout << (double)sum_line / cyclelimit << endl;		cout << " average wait time: "			<< (double)line_wait / served << " minutes/n";	}	else		cout << "No customers!/n";	cout << "Done!/n";	system("pause");	return 0;}bool newcustomer(double x){	return ((std::rand())*x / RAND_MAX < 1);}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 义乌市| 黔西县| 铜鼓县| 宁乡县| 南安市| 长沙市| 郯城县| 桐柏县| 尼勒克县| 淮南市| 白城市| 淳安县| 田东县| 横峰县| 台山市| 宁德市| 读书| 丹江口市| 桐柏县| 古丈县| 密山市| 那曲县| 深泽县| 友谊县| 铜梁县| 临漳县| 丰宁| 泽普县| 温宿县| 贵南县| 青河县| 梨树县| 山阴县| 太白县| 祁东县| 大宁县| 怀仁县| 昌都县| 三门峡市| 米脂县| 陆良县|