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

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

cpp12.10

2019-11-11 03:59:22
字體:
供稿:網(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ā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 北碚区| 大港区| 周至县| 惠州市| 马尔康县| 六枝特区| 汉川市| 永仁县| 隆尧县| 邯郸县| 杂多县| 勐海县| 普兰县| 天全县| 平顶山市| 黄冈市| 彩票| 错那县| 常山县| 肥东县| 潢川县| 水富县| 西贡区| 涟水县| 张家港市| 菏泽市| 乌拉特前旗| 桃江县| 泸水县| 东兰县| 当阳市| 和平区| 平果县| 鄄城县| 察隅县| 延边| 富锦市| 四平市| 盖州市| 东海县| 鲜城|