⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 control.js

📁 单服务台排队系统仿真程序.该程序采用的是事件调度法
💻 JS
字号:
//清空仿真结果
function resetEmluator() {
	go('resultarea').value = '';
	evnStack = [];
}

//初始化页面
function initializePage() {
	var theight;
	theight = document.body.offsetHeight-20
				-go('header').offsetHeight
				-go('controlpane').offsetHeight
				-go('footer').offsetHeight + ' px';
	go('resultarea').style.height=go('result').style.height=theight;
}

//显示参数设定窗口
function showPopwin(win) {
	go(win).style.visibility = 'visible';
	go(win).style.top = Math.floor((Math.floor(document.body.offsetHeight*2/3)-go(win).offsetHeight)/2) + ' px';
	go(win).style.left = Math.floor((document.body.offsetWidth-go(win).offsetWidth)/2) + ' px';
}

//隐藏参数设定窗口
function hidePopwin(win) {
	go(win).style.visibility = 'hidden';
}

//激活参数设置
function activeSetting() {
	if (!checkit()) return false;
	emulateTime = parseInt(go('emulateTime').value);
	minSpaceTime = parseInt(go('minSpaceTime').value);
	maxSpaceTime = parseInt(go('maxSpaceTime').value);
	minServeTime = parseInt(go('minServeTime').value);
	maxServeTime = parseInt(go('maxServeTime').value);
}

//恢复默认参数设置
function activeDefault() {
	go('emulateTime').value = emulateTime = 500;
	go('minSpaceTime').value = minSpaceTime = 1;
	go('maxSpaceTime').value = maxSpaceTime = 50;
	go('minServeTime').value = minServeTime = 1;
	go('maxServeTime').value = maxServeTime = 30;
}

//退出参数设置时提示是否激活参数
function ifActive() {
	if (emulateTime != go('emulateTime').value
		|| minSpaceTime != go('minSpaceTime').value
		|| maxSpaceTime != go('maxSpaceTime').value
		|| minServeTime != go('minServeTime').value
		|| maxServeTime != go('maxServeTime').value) {
		ifok = window.confirm('参数已经发生改变,是否要激活参数?');
		if (ifok) activeSetting();
		else {
			go('emulateTime').value = emulateTime;
			go('minSpaceTime').value = minSpaceTime;
			go('maxSpaceTime').value = maxSpaceTime;
			go('minServeTime').value = minServeTime;
			go('maxServeTime').value = maxServeTime;
		}
		hidePopwin('setting');
	}
	else
		hidePopwin('setting');
}

//检查参数正确性
function checkit() {
	var max;
	max = 5000;	//最大数值
	var a = go('emulateTime');
	var b = go('minSpaceTime');
	var c = go('maxSpaceTime');
	var d = go('minServeTime');
	var e = go('maxServeTime');
	if (a.value == '') { alert('请输入仿真时间长度!'); a.focus(); return false; }
	if (b.value == '') { alert('请输入最小事件间隔时间!'); b.focus(); return false; }
	if (c.value == '') { alert('请输入最大事件间隔时间!'); c.focus(); return false; }
	if (d.value == '') { alert('请输入最小服务时间!'); d.focus(); return false; }
	if (e.value == '') { alert('请输入最大服务时间!'); e.focus(); return false; }
	if (!isNumeric(a.value)) { alert('仿真时间长度必须为整数!'); a.focus(); return false; }
	else { a.value = a.value>max?max:a.value; };
	if (!isNumeric(b.value)) { alert('最小事件间隔时间必须为整数!'); b.focus(); return false; }
	else { b.value = b.value>max?max:b.value; }
	if (!isNumeric(c.value)) { alert('最大事件间隔时间必须为整数!'); c.focus(); return false; }
	else { c.value = c.value>max?max:c.value; }
	if (!isNumeric(d.value)) { alert('最小服务时间必须为整数!'); d.focus(); return false; }
	else { d.value = d.value>max?max:d.value; }
	if (!isNumeric(e.value)) { alert('最大服务时间必须为整数!'); e.focus(); return false; }
	else { e.value = e.value>max?max:e.value; }
	if (a.value <= 0) { alert('仿真时间长度必须大于0!'); a.focus(); return false; }
	if (b.value <= 0) { alert('最小事件间隔时间必须大于0!'); b.focus(); return false; }
	if (c.value <= 0) { alert('最大事件间隔时间必须大于0!'); c.focus(); return false; }
	if (d.value <= 0) { alert('最小服务时间必须大于0!'); d.focus(); return false; }
	if (e.value <= 0) { alert('最大服务时间必须大于0!'); e.focus(); return false; }
	if (b.value >= c.value) { alert('最小事件间隔时间必须小于最大事件间隔时间!'); b.focus(); return false; }
	if (d.value >= e.value) { alert('最小服务时间必须小于最大服务时间!'); d.focus(); return false; }
	return true;
}

//判断一个字符串中是否只含数字
function isNumeric(str) {
	var pattern = /\D/;
	return !pattern.test(str);
}

//显示统计结果
function showStatics() {
	go('staticsDiv').innerHTML = outputStatics();
	showPopwin('statics');
}

//退出程序提示
function ifExit() {
	if (window.confirm('确定要退出该程序?')) {
		window.opener = null;
		window.close()
	}
	else return false;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -