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

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

cpp12.10

2019-11-11 02:05:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(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ā)表
主站蜘蛛池模板: 囊谦县| 巴塘县| 肃北| 黄龙县| 织金县| 民丰县| 乡城县| 白城市| 迁西县| 舟曲县| 禹城市| 门源| 沛县| 砚山县| 施秉县| 澎湖县| 临夏县| 博湖县| 石林| 江口县| 册亨县| 桂林市| 文山县| 浦江县| 华容县| 泰安市| 阳西县| 黄石市| 神池县| 青田县| 绵竹市| 衢州市| 荣昌县| 莆田市| 金昌市| 景泰县| 兰坪| 嘉禾县| 潞城市| 芮城县| 琼结县|